SampleNorm=function(n,mu,sigma,lambda){
U=rnorm(n,mean=mu,sd=sigma)
Gu=pnorm(lambda*U,mean=mu,sd=sigma)
p=runif(n);X1=U
for(i in 1:n){if(p>=Gu){X1=-X1}}
hist(X1)
return(X1)
}
SkewNorm=function(parameter){
n=length(bb)
mu=parameter[1]
sigma=parameter[2]
lambda=parameter[3]
p1=dnorm(bb,mu,sigma)
e1=sum(log(p1))
p2=pnorm(lambda*bb,mu,sigma)
e2=sum(log(p2))
Lfunction=n*log(2)+e1+e2
return(Lfunction)
}
b<-c(1:300)
b1<-as.matrix(b,ncol=3)
for(i in 1:100){
bb=SampleNorm(30,0,1,1)
d=SkewNorm(c(0,1,1))
b1[i,]=nlm(SkewNorm,c(0,1,1))$estimate
c=na.omit(b1)
}
colMeans(c)
目的是,每个样本容量n,模拟100次求平均,使估计误差相对较小。但是运行时,程序第三部分就出错了,麻烦大神看看到底该怎么修改。


雷达卡


京公网安备 11010802022788号







