Додавання випадкових ефектів впливає на оцінки коефіцієнта


10

Мене завжди вчили, що випадкові ефекти впливають лише на дисперсію (помилку), а фіксовані ефекти впливають лише на середню. Але я знайшов приклад, коли випадкові ефекти впливають також на середнє значення - оцінку коефіцієнта:

require(nlme)
set.seed(128)
n <- 100
k <- 5
cat <- as.factor(rep(1:k, each = n))
cat_i <- 1:k # intercept per kategorie
x <- rep(1:n, k)
sigma <- 0.2
alpha <- 0.001
y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma)
plot(x, y)

# simulate missing data
y[c(1:(n/2), (n*k-n/2):(n*k))] <- NA

m1 <- lm(y ~ x)
summary(m1)

m2 <- lm(y ~ cat + x)
summary(m2)

m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit)
summary(m3)

Видно, що розрахунковий коефіцієнт для xмоделі m1становить -0,013780, тоді як для моделі m3- 0,0011713 - обидва значно відрізняються від нуля.

Зауважте, що коли я видаляю рядок, що імітує відсутні дані, результати однакові (це повна матриця).

Чому так?

PS: зауважте, я не професійний статистик, тому якщо ви збираєтесь відповісти з великою кількістю математики, то, будь ласка, складіть також простий підсумок для манекенів :-)


Я думаю, ви хочете сказати "від моделі m3це 0,0011713" замість m2.
usεr11852

Вибачте @ user11852, так, ви праві, дякую. (BTW, бо m2він дійсний також (що є предметом іншого питання ).
Цікаво,

Відповіді:


11

"Мене завжди вчили, що випадкові ефекти впливають лише на дисперсію (помилку), і що фіксовані ефекти впливають лише на середню".

Як ви виявили, це справедливо лише для збалансованих, повних (тобто відсутніх даних) наборів даних без постійних прогнозів. Іншими словами, для тих типів даних / моделей, які обговорюються в класичних текстах ANOVA. За цих ідеальних обставин фіксовані ефекти та випадкові ефекти можуть бути оцінені незалежно один від одного.

Коли ці умови не виконуються (як це дуже часто не відбувається в «реальному світі»), фіксовані та випадкові ефекти не є незалежними. Як цікавий бік, саме тому "сучасні" змішані моделі оцінюються за допомогою методів ітеративної оптимізації, а не для того, щоб їх точно вирішували за допомогою матричної алгебри, як у класичному змішаному випадку ANOVA: щоб оцінити фіксовані ефекти, ми повинні знати випадкові ефекти, але для того, щоб оцінити випадкові ефекти, ми повинні знати фіксовані ефекти! Більш актуальне для цього питання, це також означає, що коли дані є неврівноваженими / неповними та / або в моделі є безперервні прогнози, то коригування структури випадкових ефектів змішаної моделі може змінити оцінки нерухомої частини моделі , і навпаки.

Редагувати 05.07.2016 З коментарів: " Чи могли б ви розробити або надати посилання на те, чому постійні прогнози впливатимуть на оцінки нерухомої частини моделі? "

Оцінки для нерухомої частини моделі залежатимуть від оцінок для випадкової частини моделі - тобто від оціночних дисперсійних компонентів - якщо (але не тільки якщо) дисперсія предикторів відрізняється в кластерах. Що майже напевно буде істинним, якщо будь-який з предикторів є безперервним (принаймні, в даних "реального світу" - теоретично це можливо, щоб це не було правдою, наприклад, у побудованому наборі даних).


Не могли б ви розробити або надати цитування того, чому постійні прогнози впливатимуть на оцінки нерухомої частини моделі?
robin.datadrivers

@ robin.datadrivers Добре, я трохи додав про це
Джейк Вестпад

3

На першому рівні я думаю, що все, що ви ігноруєте, зменшення цінності населення; " нахили та перехоплення на кожну тему з моделі змішаних ефектів ближче до оцінок кількості населення, ніж оцінки мінімумів у межах суб'єкта ". 1]. Наступне посилання, ймовірно, також допоможе ( Які правильні описи слід шукати на моїх змішаних моделях? ), Див. Відповідь Майка Лоуренса).

Крім того, я вважаю, що вам не пощастило в прикладі іграшки, тому що у вас ідеально збалансований дизайн, який викликає у вас точно таку ж оцінку у випадку відсутності значень.

Спробуйте наступний код, який має той самий процес, у якого немає пропущеного значення:

 cat <- as.factor(sample(1:5, n*k, replace=T) ) #This should be a bit unbalanced.
 cat_i <- 1:k # intercept per kategorie
 x <- rep(1:n, k)
 sigma <- 0.2
 alpha <- 0.001
 y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma) 

 m1 <- lm(y ~ x)  
 m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit) 

 round(digits= 7,fixef(m3)) ==  round(digits=7, coef(m1)) #Not this time lad.
 #(Intercept)           x 
 #      FALSE       FALSE 

Де зараз, оскільки ваш дизайн не ідеально збалансований, ви не маєте однакових оцінок коефіцієнта.

Насправді, якщо ви граєте разом зі своїм пропущеним шаблоном значення нерозумно (так, наприклад:), y[ c(1:10, 100 + 1:10, 200 + 1:10, 300 + 1:10, 400 +1:10)] <- NAтак що ваш дизайн все ще ідеально збалансований, ви знову отримаєте однакові коефіцієнти.

 require(nlme)
 set.seed(128)
 n <- 100
 k <- 5
 cat <- as.factor(rep(1:k, each = n))
 cat_i <- 1:k # intercept per kategorie
 x <- rep(1:n, k)
 sigma <- 0.2
 alpha <- 0.001
 y <- cat_i[cat] + alpha * x + rnorm(n*k, 0, sigma)
 plot(x, y)

 # simulate missing data in a perfectly balanced way
 y[ c(1:10, 100 + 1:10, 200 + 1:10, 300 + 1:10, 400 +1:10)] <- NA

 m1 <- lm(y ~ x)  
 m3 <- lme(y ~ x, random = ~ 1|cat, na.action = na.omit) 

 round(digits=7,fixef(m3)) ==  round(digits=7, coef(m1)) #Look what happend now...
 #(Intercept)           x 
 #       TRUE        TRUE 

Вас маргінально оманливий ідеальний дизайн вашого оригінального експерименту. Коли ви вставляли НС в неврівноважений спосіб, ви змінили схему того, скільки "сили" могли окремі суб'єкти запозичити один у одного.

Коротше кажучи, різниці, які ви бачите, зумовлені ефектами усадки, а точніше, тому, що ви спотворили свій оригінальний ідеально збалансований дизайн з не ідеально збалансованими відсутніми значеннями.

Посилання 1: Дуглас Бейтс lme4: Моделювання змішаних ефектів з R , сторінки 71-72

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.