nlme и lme4 Игнорирование членов в квадрате

Я пытаюсь использовать стандартную функцию спроса на транслог, а именно:

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.

Элементы в квадрате просто не отображаются в сводке (модели), и я знаю, что они игнорируются, потому что я создал отдельные векторы с элементами в квадрате и пропустил их, а оценки разные.

У кого-нибудь есть совет?


person cigrainger    schedule 30.08.2013    source источник


Ответы (1)


В формулах термин ^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)
person Sven Hohenstein    schedule 30.08.2013
comment
Спасибо! Но я действительно пытаюсь наладить взаимодействие. Я хочу, чтобы цена взаимодействовала сама с собой, например, потому что предельное влияние цены изменяется в зависимости от цены. - person cigrainger; 30.08.2013
comment
@ user2611609 Разве вы не можете использовать термин в квадрате? - person Sven Hohenstein; 30.08.2013
comment
Да! Спасибо. Я неправильно понял. Я не понимал, что это так работает. Теперь я могу упростить и общий код формулы. Спасибо! - person cigrainger; 30.08.2013