我在python中使用rpy2模块来计算两个时间序列(ts1和ts2)之间的回归。残差是自相关的,因此我需要使用gls模型而不是lm。我应该能够将我的相关结构设置为corAR1(),如下面的代码所示。import rpy2.robjects as robjectsfrom rpy2.robjects import FloatVectorfrom rpy2.robjects.packages import importrnlme = importr('nlme')y = FloatVector(ts1)x = FloatVector(ts2)fmla = robjects.Formula('y ~ x - 1')env = fmla.environmentenv['x'] = xenv['y'] = yfit = nlme.gls(fmla, cor=corAR1(value=c(0.5))) 但是,我得到了错误*** NameError: name 'corAR1' is not defined 由于我不是R用户,而且不是rpy2的新手,所以我不确定这是怎么回事!任何想法将不胜感激。
1 回答
呼啦一阵风
TA贡献1802条经验 获得超6个赞
调用时importr('nlme')
,返回的对象就像一个Python包/命名空间。如果corAR1()
在nlme
包中定义了if,则应该告诉Python它在那里:
fit = nlme.gls(fmla, cor=nlme.corAR1(value=c(0.5)))
添加回答
举报
0/150
提交
取消