我正在尝试使用 R 中的 optim() 函数来解决一个简单的问题,但我在如何实现它时遇到了一些问题:
e=tot_obs/(sum(Var1)+sum(Var2)+sum(Var3)+sum(Var4))
output=(Var1+Var2+Var3+Var4)*e
我知道观察结果和所有变量的总数。
# Fake datasets
# Considering that this are the observations c(1000,250,78,0,0,90)
#Known data
total_observations=1418
var1=c(1,0.3,0.5,0.01,0.05,0.6)
var2=c(500,40,40,0,0,100)
var3=c(1,0.1,0.2,0,0.1,0)
var4=c(2,0.04,0.003,0.003,0,0.05)
#Function
e=total_observations/(sum(var1)+sum(var2)+sum(var3)+sum(var4))
output=(var1+var2+var3+var4)*e
我可以在观察结果和输出之间做一个简单的关联,结果很好(~0.90)。这个给我0.97。
但现在我想测试为每个变量分配不同权重的效果。
e=tot_obs/(sum(w1*Var1)+sum(w2*Var2)+sum(w3*Var3)+sum(w4*Var4))
output=(w1*Var1+w2*Var2+w3*Var3+w4*Var4)*e
where w1+w2+w3+w4=1
and cor(observations,output)~1
我试图使用 optim() 函数,但是我完全迷路了。如果有人可以帮助我或为我指出如何做到这一点的一些好的参考资料,我将不胜感激。