编写程序生成 5000 个混合正态分布0.6𝑁(5,1) + 0.4𝑁(15,2 2 ) 随机数,并绘 制直方图、核密度估计和密度函数(在同一张图上绘制)。(可使用 R 函数: rnorm,dnorm,density,hist(freq=F),lines)
时间: 2023-05-29 08:03:28 浏览: 101
```r
set.seed(123)
n <- 5000
x <- c(0.6*rnorm(n, 5, 1), 0.4*rnorm(n, 15, 2))
hx <- hist(x, breaks = 50, plot = FALSE)
dens <- density(x)
plot(hx$mids, hx$density, type = "h", col = "blue", xlim = c(-5, 25), ylim = c(0, 0.2), xlab = "x", ylab = "Density")
lines(dens$x, dens$y, col = "red")
curve(0.6*dnorm(x, 5, 1) + 0.4*dnorm(x, 15, 2), add = TRUE, col = "green")
```
解释:
首先设置随机数种子,以确保每次运行程序时生成的随机数相同。
然后定义样本量 n,使用 rnorm 函数生成混合正态分布随机数 x,其中 0.6 为第一组正态分布的权重,5 和 1 分别为第一组正态分布的均值和标准差;0.4 为第二组正态分布的权重,15 和 2 为第二组正态分布的均值和标准差。
使用 hist 函数生成直方图,其中指定 breaks = 50 表示将 x 的值域分为 50 个区间,plot = FALSE 表示不绘制直方图。
使用 density 函数生成核密度估计,得到密度函数。
最后使用 plot 函数绘制直方图和密度函数,其中 hx$mids 和 hx$density 分别表示直方图的中心点和各区间的密度值,type = "h" 表示绘制直方图,col = "blue" 表示指定直方图的颜色为蓝色;dens$x 和 dens$y 分别表示核密度估计的横坐标和纵坐标,用 lines 函数绘制,col = "red" 表示指定核密度估计的颜色为红色;最后使用 curve 函数绘制理论密度函数,其中 0.6*dnorm(x, 5, 1) + 0.4*dnorm(x, 15, 2) 表示混合正态分布的密度函数,add = TRUE 表示将该函数添加到已有图形上,col = "green" 表示指定理论密度函数的颜色为绿色。
阅读全文