我正在使用引导算法来计算我的 normalmixEM 输出估计值的标准误差。我不确定它们是否可靠?
我的代码是(这里的数据):
# load package
install.packages("mixtools")
library(mixtools)
B = 1000 # Number of bootstrap samples
mu1sample <- mu2sample <- sigma1sample <- sigma2sample <- lambdasample <- vector()
# Bootstrap
for(i in 1:B){
print(i)
subsample = sample(mydatatest,rep=T)
normalmix <- normalmixEM(subsample, mu=c(-0.002294,0.002866),sigma=c(0.00836,0.02196), lambda=c(0.6746903,(1-0.6746903)),k=2, fast=FALSE, maxit=10000, epsilon = 1e-16, maxrestarts=1000)
mu1sample[i] = normalmix$mu[1] # $
mu2sample[i] = normalmix$mu[2] # $
sigma1sample[i] = normalmix$sigma[1] # $
sigma2sample[i] = normalmix$sigma[2] # $
lambdasample[i] = normalmix$lambda[1] # $
}
# standard errors
sd(mu1sample)
sd(mu2sample)
sd(sigma1sample)
sd(sigma2sample)
sd(lambdasample)
# show distribution of the bootstrap samples
hist(mu1sample)
hist(mu2sample)
hist(sigma1sample)
hist(sigma2sample)
hist(lambdasample)
这给出了以下图片:
亩1

亩2

西格玛1

西格玛2

拉姆达

编辑:如果您查看我的变量 mydatatest 并使用 KD 显示具有以下代码的分布
plot(density(mydatatest),col="red",main="",lwd=2,cex.axis=1.2,cex.lab=1.2)
看起来像

第二次编辑:我现在包括要修复的 mus 和 sigmas。我更新了代码和图片。现在又是我的问题,你怎么看?