第一次发帖!
我正在尝试使用循环模拟创建一个 logit 估计器,其中循环检测正确预测的数量(我的代码如下)。在一定数量的正确预测之后,是否有可能改变分布中的冲击(定义为 rnorm 分布中的标准偏差)?我正在尝试使用下面初始化的 f 变量,但收效甚微。例如,我在想 f 变量可能会在 20 次正确预测后变为 2。下面的代码有效 - 哈希隐藏了一些工作代码 - 但结果不会因冲击而变化(标准偏差是恒定的)。
谢谢!
x<-1:7
y<-c(0,0,0,1,0,1,1)
n=2000
bin1<-rep(NA,n)
bin2<-rep(NA,n)
right<-NULL
b0<-rnorm(1,-4,.1)
b1<-rnorm(1,1,.1)
n=1000
ti=0
f<-1
iter<-0
bin1<-NULL
bin2<-NULL
right=-1
for (i in 1:n) {
nright<-NULL
nb0<-b0 + rnorm(1,0,1/f)
nb1<- b1+ rnorm(1,0,1/f)
predict<-((1/(1+exp(- nb0- nb1*x))))
for (j in 1:7) {
ifelse ( y[j]==1,nright[j]<-predict[j],nright[j]<-1-predict[j]) }
nright <- prod(nright)
if (nright>right) b0 <-nb0
if (nright>right) b1<- nb1
bin1[i]<-b0
bin2[i]<-b1
# ifelse ( nright > right, iter<-0, iter<-iter+1)
# if (iter > 50) f<- f/2
# if (f<.05) stop("Done")
if (nright>right) right<-nright
ti<-ti+1
}
f
ti
b0
b1