我写了这么一段代码:
library( systemfit )
data( rd )
bas.formula <- bas ~(a1*S1+a2*S2)*SCI^a3*(1-exp(-(k1*S1+k2*S2)*(SDI/10000)^k3*AGE))^c
vol.formula <- vol ~ bas*H(d0/(H+d1))
labels <- list( "bas.growth", "vol.growth" )
inst <- ~ SCI + SDI + AGE + H
start.values <- c(a1=20, a2=20, a3=0.1, k1=3, k2=3,
+ k3=4, c=0.1, d0=20, d1=30 )
model <- list( bas.formula, vol.formula )
model.ols <- nlsystemfit( "OLS", model, start.values, data=rd, eqnlabels=labels )
提示错误:
The following object(s) are masked from 'data (position 3)':
AGE, DBH, H, NHA, S1, S2
The following object(s) are masked from 'rd':
AGE, DBH, H, NHA, S1, S2
错误于as.matrix(eval(as.formula(eqns[])[[2]])) :
在为'as.matrix'函数选择方法时评估'x'参数出了错: 错误于eval(expr, envir, enclos) : 找不到对象'bas'
上面的bas.formula和vol.formula为两模型,数据里面只有AGE, DBH, H, NHA, S1, S2,
bas是方程1的因变量作为方程2的自变量,是不是用到非线性度量误差联立方程组,请教您怎么写程序才能正确。希望得到您的指点。


雷达卡




京公网安备 11010802022788号







