我正在尝试建立标准的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的等价物。
平方项只是没有出现在摘要(模型)中,我知道它们被忽略了,因为我用平方项创建了单独的向量并将其传递出来并且估计值不同。
有人有什么建议吗?
答案 0 :(得分:8)
在公式中,术语^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)