Раздутый DF в результатах lsmeans для модели lmer

Я использовал lmer из пакета lme4 для запуска линейной модели смешанных эффектов. У меня есть данные о температуре за 3 года для необработанных (5) и обработанных участков (10). Модель:

modela<-lmer(ave~yr*tr+(1|pl), REML=FALSE, data=mydata)

Модель проверена на нормальность остатков; qqnorm plot Мои данные:

'data.frame':   6966 obs. of  7 variables:

$ yr : Factor w/ 3 levels "yr1","yr2","yr3": 1 1 1 1 1 1 1 1 1 1 ...

$ pl : Factor w/ 15 levels "C02","C03","C05",..: 1 1 1 1 1 1 1 1 1 1 ...

$ tr : Factor w/ 2 levels "Cont","OTC": 1 1 1 1 1 1 1 1 1 1 ...

$ ave: num  14.8 16.1 11.6 10.3 11.6 ...

Взаимодействие является значительным, поэтому я использовал lsmeans:

lsmeans(modela, pairwise~yr*tr, adjust="tukey")

В контрасты я получаю (только выдержки)

contrast                estimate        SE      df t.ratio p.value

yr1,Cont - yr2,Cont -0.727102895 0.2731808 6947.24  -2.662  0.0832

yr1,OTC - yr2,OTC   -0.990574030 0.2015650 6449.10  -4.914  <.0001

yr1,Cont - yr1,OTC  -0.005312771 0.3889335   31.89  -0.014  1.0000

yr2,Cont - yr2,OTC  -0.268783907 0.3929332   32.97  -0.684  0.9825

Мой вопрос касается высоких значений dfs для некоторых контрастов и связанных с ними, но бессмысленных низких значений p.

Может ли это быть связано с:

-присутствие АН в моем наборе данных (некоторое улучшение после удаления)

- неравные размеры выборки (например, 5 из одного лечения, 10 из другого - однако, те (год-1, продолжение-год-1, ОТС), кажется, не проблема.

Другие вопросы?

Я искал вопросы о stakverflow и проверял их.

Спасибо за любые ответы, идеи, комментарии.

1 ответ

В этом примере обработки назначаются экспериментально на участки. Наличие небольшого количества графиков, назначенных для лечения, серьезно ограничивает доступную информацию для статистического сравнения обработок. (Если бы у вас был только один участок на обработку, было бы невозможно даже сравнить обработки, потому что вы не смогли бы отделить эффект обработок от эффекта графиков.) У вас есть 10 графиков, назначенных одному лечение и 5 к другому. С точки зрения основного эффекта от лечения, таким образом, у вас есть (10-1)+(5-1) = 13 df для основного эффекта лечения, и если вы делаете

lsmeans(modela, pairwise ~ tr)

вы увидите около 13 df (возможно, меньше из-за дисбаланса и отсутствия) для этой статистики. Когда вы сравниваете комбинации лет и лечения, вы получаете примерно в 3 раза больше df, потому что есть 3 года. Однако в некоторых из этих сравнений год является одинаковым в каждой сравниваемой комбинации, и в этих сравнениях различия в графиках в основном сводятся на нет (это сравнение внутри графика); и в этих случаях df в основном происходит от остаточной ошибки для модели, которая имеет тысячи df. Из-за дисбаланса в данных эти сравнения немного загрязняются межплановыми вариациями, делая df несколько меньшим, чем остаточный дф

Похоже, вы не особенно заинтересованы в перекрестных сравнениях, таких как лечение1, год1 против лечения2, год3. Я предлагаю использовать переменные "by", чтобы сократить количество проверенных сравнений, потому что, когда вы проверяете их все, коррекция множественности излишне консервативна. Было бы что-то вроде этого:

modela.lsm = lsmeans(modela, ~ tr * yr)
pairs(modela.lsm, by = "yr")   # compare tr for each yr
pairs(modela.lsm, by = "tr")   # compare yr for each tr

Эти вызовы будут применять поправку Тьюки отдельно для каждой группы "по". Если вы хотите исправить множественность для каждой семьи, сделайте следующее:

rbind(pairs(modela.lsm, by = "yr"))
rbind(pairs(modela.lsm, by = "tr"))

По умолчанию используется многомерная коррекция t (Тьюки здесь не правильный метод). Вы даже можете сделать

rbind(pairs(modela.lsm, by = "yr"), pairs(modela.lsm, by = "tr"))

сгруппировать все сравнения в одну семью и применить многомерную поправку t.

Другие вопросы по тегам