在R中拟合分段回归的psi项误差

时间:2014-06-04 15:07:50

标签: r

我正在尝试使用"分段"来拟合以下分段回归模型。包装在R。

lin.mod.1a <- lm(WTM[Treatment=="A"]~RE[Treatment=="A"])
seg.mod.1a <- segmented(lin.mod.1a,seg.Z=~RE[Treatment=="A"],psi=2) 

我收到以下错误

Error in segmented.lm(lin.mod.1a, seg.Z = ~RE[Treatment == "A"], psi = 2) : 
  'psi' should be a list with more than one covariate in `seg.Z

当没有定义治疗术语时,我没有任何问题来拟合分段模型,但是当治疗==&#34; A&#34;时我真的想要适合模型。我理解这个错误是什么,但我不知道如何绕过它。

1 个答案:

答案 0 :(得分:1)

来自seg.Z的帮助页面的?segmented部分:

  

目前,涉及函数的公式,例如seg.Z=~log(x1)或   不允许使用seg.Z=~sqrt(x1)或选择运算符,例如seg.Z=~d[,"x1"]seg.Z=~d$x1

所以听起来你应该在尝试这个方法之前对数据进行子集化

WTM.a <- WTM[Treatment=="A"]
RE.a <- RE[Treatment=="A"]
lin.mod.1a <- lm(WTM.a~RE.a)
seg.mod.1a <- segmented(lin.mod.1a,seg.Z=~RE.a,psi=2)