我正在尝试使用"分段"来拟合以下分段回归模型。包装在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;时我真的想要适合模型。我理解这个错误是什么,但我不知道如何绕过它。
答案 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)