Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R中循环optim:你能帮我调整我的循环代码吗_R_Optimization_Loops - Fatal编程技术网

在R中循环optim:你能帮我调整我的循环代码吗

在R中循环optim:你能帮我调整我的循环代码吗,r,optimization,loops,R,Optimization,Loops,你能帮我纠正我的循环函数吗 我想让optim估计al_j;au_j;西格玛;b_j通过查看0到20、21到40、41到60个数据点 最终结果应包含4列估计值和4行0到20、21到40、41到60 我的代码是: n=20 runs=4 out=matrix(0,nrow=runs) llik = function(x) { al_j=x[1]; au_j=x[2]; sigma_j=x[3]; b_j=x[4] sum(na.rm=T, ifelse(a$R_j

你能帮我纠正我的循环函数吗

我想让optim估计al_j;au_j;西格玛;b_j通过查看0到20、21到40、41到60个数据点

最终结果应包含4列估计值和4行0到20、21到40、41到60

我的代码是:

n=20
runs=4
out=matrix(0,nrow=runs)

llik = function(x)
{
    al_j=x[1]; au_j=x[2]; sigma_j=x[3];  b_j=x[4]
    sum(na.rm=T,
        ifelse(a$R_j< 0, -log(1/(2*pi*(sigma_j^2)))-
                        (1/(2*(sigma_j^2))*(a$R_j+al_j-b_j*a$R_m))^2,
        ifelse(a$R_j>0 , -log(1/(2*pi*(sigma_j^2)))-
                        (1/(2*(sigma_j^2))*(a$R_j+au_j-b_j*a$R_m))^2,
                        -log(pnorm(au_j,mean=b_j*a$R_m,sd=sqrt(sigma_j^2))-
                        pnorm(au_j,mean=b_j*a$R_m,sd=sqrt(sigma_j^2)))))

    )

}

start.par = c(0, 0, 0.01, 1)
out1 = optim(llik, par=start.par, method="Nelder-Mead")


for (i in 1: runs)
{
index_start=20*(i-1)+1
index_end= 20*i
out[i]=out1[index_start:index_end]
}
out

当我尝试运行您的代码时,当调用
llik
时,我会收到错误消息“
a
notfound”。您应该重构代码,以便将
llik
需要的所有变量传递到代码中或在函数中创建


out[i]=out1[index\u start:index\u end]
看起来也很可疑,因为您将一系列值分配给一个位置。

您能否将其推广到更大的R社区?我创建了一个代码,可以使用optim在R中估计变量。我希望代码执行循环(正如我在底部尝试的那样)但我遗漏了一些东西?a的后续部分是数据所在的位置。代码如下>a=read.table(“E:/data.txt”,header=T)>a中的附件(a)是R_j和R_m所在的位置。谢谢Edward
R_j            R_m
-0.0625       0.002320654
0             -0.004642807
0.033333333   0.005936332
0.032258065   0.001060848
0             0.007114057
0.015625      0.005581558
0             0.002974794
0.015384615   0.004215271
0.060606061   0.005073116
0.028571429  -0.006001279
0            -0.002789594
0.013888889   0.00770633
0             0.000371663
0.02739726   -0.004224228
-0.04         0.008362539
0            -0.010951605
0             0.004682924
0.013888889   0.011839993
-0.01369863   0.004210383
-0.027777778  -0.04658949
0             0.00987272
-0.057142857 -0.062203157
-0.03030303  -0.119177639
0.09375       0.077054642
0            -0.022763619
-0.057142857  0.050408775
0             0.024706076
-0.03030303   0.004043701
0.0625        0.004951088
0            -0.005968731
0            -0.038292548
0             0.013381097
0.014705882   0.006424728
-0.014492754  -0.020115626
0             -0.004837891
-0.029411765  -0.022054654
0.03030303    0.008936428
0.044117647   8.16925E-05
0             -0.004827246
-0.042253521  0.004653096
-0.014705882 -0.004222151
0.029850746   0.000107267
-0.028985507 -0.001783206
0.029850746  -0.006372981
0.014492754   0.005492374
-0.028571429 -0.009005846
0             0.001031683
0.044117647   0.002800551