Скорректированные прогнозы с использованием ANOVA в Stata

У меня есть переменная результата x и три независимые переменные a, b, c, которые являются категориальными переменными. В моем примере a имеет 8 уровней, b имеет 4 уровня и c имеет 35 уровней, но не все комбинации трех переменных имеют наблюдения (это, вероятно, неважно).

Если я запустил следующую аддитивную модель дисперсионного анализа в Stata

anova x a b c
adjust, by(a b) gen(y)

затем я получаю прогнозы переменной x, скорректированные с помощью переменных a и b. Команда adjust выводит следующую таблицу в окне результатов, а также генерирует переменную y с скорректированными прогнозами.


      |                 b                 
    a |       2        4        8       16
----------+-----------------------------------
   50 | .016655  .018487                  
   75 | .008286  .011237                  
  100 | .005937  .006677  .012467         
  150 | .001905  .004038  .009454         
  200 | .001774  .003107  .007592  .010081
  400 |          .004982  .006853  .009342
  800 |                   .002126   .00521
 1000 |                   .002732  .005221
----------------------------------------------
 Key:  Linear Prediction

Моя проблема в том, что переменная y имеет значение для каждой комбинации a, b и c, тогда как в приведенной выше таблице есть значения только для каждой комбинации a и b. Как мне сохранить результаты из таблицы, чтобы я мог с ними работать? Какая связь между значениями в таблице и значениями в y?

Заранее спасибо.

Обновление: я нашел это в help adjust:

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

Это верно и для моих данных. Например, если a=75 и b=2, тогда c принимает значения 12,13,14,15,16. Значение y, соответствующее c=14 (которое является средним), в точности соответствует тому, что отображается в таблице. Но что, если среднее значение не является значением, которое оно принимает?


person Stefan Hansen    schedule 16.01.2013    source источник
comment
Среднее значение набора значений не обязательно должно быть одним из этих значений. Stata показывает условные прогнозы, а не повторяет данные.   -  person Nick Cox    schedule 16.01.2013
comment
Совершенно верно, но как мне получить прогнозируемое значение для средних значений c? Таблица ничего не оставляет в списке возврата, поэтому я думаю, что мне нужно использовать параметры генерации с настройкой. Но использование gen, как я сказал, оставляет только прогнозы для исходных значений.   -  person Stefan Hansen    schedule 16.01.2013
comment
Переключитесь на margins. adjust по-прежнему работает, но был заменен на margins. (Если у вас устаревшая версия Stata, у вас не будет margins, но рекомендуется указать, какая версия у вас установлена, в сообщениях здесь.)   -  person Nick Cox    schedule 16.01.2013
comment
Я использую Stata / SE 12.1. Но adjust, by(a b) не дает такого же результата, как margins a#b. Разве не должно?   -  person Stefan Hansen    schedule 16.01.2013


Ответы (1)


Это ответ на комментарий Стефана Хансена к adjust и margins.

В общем, нет; но все зависит от модели и наличия других ковариат, кроме названных. Но рассмотрим результаты

sysuse auto, clear 
anova mpg foreign rep78
adjust, by(foreign rep78)
margins foreign#rep78

Здесь результаты совпадают.

Я не владею margins свободно, кроме элементарного использования, поэтому любые более сложные вопросы нужно будет решать кому-то другому.

person Nick Cox    schedule 16.01.2013