如何在R中的这两个场景中为高斯分布生成数据?

苏菲亚

在Tibshirani的“统计学习的要素”中,比较最小二乘/线性模型和knn时,陈述了以下两种情况:

场景1:每个类别中的训练数据都是从具有不相关成分和不同均值的双变量高斯分布中生成的。

方案2:每个班级中的训练数据均来自10个低方差高斯分布的混合物,各个平均值均以高斯分布。

这个想法是,第一个更适合最小二乘/线性模型,第二个更适合类似knn的模型(由于knn考虑了最接近的点而不是所有点,所以与我理解的模型相比方差更大)。

在R中,如何模拟两种情况的数据?

最终目标是能够重现两种情况,以证明线性模型比第二种更好地解释了第一种情况。

谢谢!

克里斯多夫·汉克

这可能是场景1

library(mvtnorm)

N1 = 50
N2 = 50
K = 2

mu1 = c(-1,3)
mu2 = c(2,0)

cov1 = 0
v11 = 2
v12 = 2
Sigma1 = matrix(c(v11,cov1,cov1,v12),nrow=2)

cov2 = 0
v21 = 2
v22 = 2
Sigma2 = matrix(c(v21,cov2,cov2,v22),nrow=2)

x1 = rmvnorm(N1,mu1,Sigma1)
x2 = rmvnorm(N2,mu2,Sigma2)

这可能是从高斯混合中模拟的候选者:

BartSimpson <- function(x,n = 100){ 
   means <- as.matrix(sort(rnorm(10)))
   dens <- .1*rowSums(apply(means,1,dnorm,x=x,sd=.1)) 
   rBartSimpson <- c(apply(means,1,rnorm,n=n/10,sd=.1))
   return(list("thedensity" = dens,"draws" = rBartSimpson))
}

x <- seq(-5,5,by=.01)

plot(x,BartSimpson(x)$thedensity,type="l",lwd=4,col="yellow2",xlim=c(-4,4),ylim=c(0,0.6))

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章