nlme和lme4忽略平方术语

时间:2013-08-30 08:28:21

标签: r statistics regression lme4 mixed-models

我正在尝试建立标准的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的等价物。

平方项只是没有出现在摘要(模型)中,我知道它们被忽略了,因为我用平方项创建了单独的向量并将其传递出来并且估计值不同。

有人有什么建议吗?

1 个答案:

答案 0 :(得分:8)

在公式中,术语^2用于创建变量的交互。例如,(x+y+z)^2创建主效应以及与两个变量的所有可能交互,即x + y + z + x:y + x:z + y:z。因此,公式中的x^2x相同。

此外,*也用于创建互动,例如x*y创建x + y + x:y。因此,公式中的x*xx相同。

要在公式中创建平方值,您必须使用函数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)