我正在尝试构建一个标准的 translog 需求函数,它是:
lnY = lnP + lnZ + lnY*lnZ + lnY^2 + lnZ^2
其中 Y
= 需求,P
= 价格,Z
= 收入。
但是,当我在 nlme 或 lme4 中包含平方项时,它们会忽略它们。我试过:
model <- lme(asinh(gallons) ~ asinh(rprc) + asinh(rexp) + asinh(rexp)*asinh(rexp) + asinh(rprc)*asinh(rprc) + asinh(rprc)*asinh(rexp), random=~1|cuid, data = data)
我试过了:
model <- lme(asinh(gallons) ~ asinh(rprc) + asinh(rexp) + asinh(rexp)^2 + asinh(rprc)^2 + asinh(rprc)*asinh(rexp), random=~1|cuid, data = data)
我已经尝试了 lmer 的等价物。
平方项只是没有出现在摘要(模型)中,我知道它们被忽略了,因为我用平方项创建了单独的向量并传递了它们,但估计值是不同的。
有人有什么建议吗?
最佳答案
在公式中,术语 ^2
用于创建变量的交互。例如,(x+y+z)^2
创建主效应和所有可能与两个变量的交互作用,即 x + y + z + x:y + x:z + y:z
。因此,公式中的 x^2
与 x
相同。
此外,*
也用于创建交互,例如,x*y
创建x + y + x:y
。因此,公式中的 x*x
与 x
相同。
要在公式中创建平方值,您必须使用函数 I
,即 I(x^2)
或 I(x* x)
.
lme(asinh(gallons) ~ asinh(rprc) + asinh(rexp) +
I(asinh(rexp)^2) + I(asinh(rprc)^2) + asinh(rprc)*asinh(rexp),
random=~1|cuid, data = data)
关于r - nlme 和 lme4 忽略平方项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18528311/