nlme和lme4忽略平方术语

cig*_*ger 2 statistics regression r lme4 mixed-models

我正在尝试建立标准的translog需求函数,它是:

lnY = lnP + lnZ + lnY*lnZ + lnY^2 + lnZ^2
Run Code Online (Sandbox Code Playgroud)

其中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)
Run Code Online (Sandbox Code Playgroud)

我试过了:

model <- lme(asinh(gallons) ~ asinh(rprc) + asinh(rexp) + asinh(rexp)^2 + asinh(rprc)^2 + asinh(rprc)*asinh(rexp), random=~1|cuid, data = data)
Run Code Online (Sandbox Code Playgroud)

我已经尝试过lmer的等价物.

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

有人有什么建议吗?

Sve*_*ein 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)
Run Code Online (Sandbox Code Playgroud)