Как исключить нежелательные сравнения в двустороннем ANOVA в R

Я уже спрашивал об этом на stats.exchange (исходный вопрос), теперь я повторно разместил тот же контент здесь - надеясь получить помощь от более широких слоев населения.


Я хотел бы знать, как исключить все нежелательные пары из вывода, сгенерированного двусторонним дисперсионным анализом, поэтому, когда будет показан значительный результат из summary (aov ()), апостериорный тест не даст мне никаких сравнений Я не хочу. Подробности следующие:

У меня datTable содержатся данные о пропорциях под двумя факторами site (четыре уровня: A, B, C, D) и treatment (два уровня: контроль и лечение). В частности, я хочу провести парный тест среди всех site под каждым тем же treatment (например, control-A VS. control-B, control-A VS.control-C, treatment-A VS.treated-C и т. Д. ), в то время как исключает сравнения между разными sites и разными treatments (например, пары, такие как контроль-A VS. обработанный-B, контроль-B VS. обработанный-C).

Данные выглядят так:

> datTable
   site treatment proportion
     A   control  0.5000000
     A   control  0.4444444
     A   treated  0.1000000
     A   treated  0.4000000
     B   control  0.4444444
     B   control  0.4782609
     B   treated  0.0500000
     B   treated  0.3000000
     C   control  0.3214286
     C   control  0.4705882
     C   treated  0.1200000
     C   treated  0.4000000
     D   control  0.3928571
     D   control  0.4782609
     D   treated  0.4000000
     D   treated  0.4100000

Я провел двусторонний дисперсионный анализ (также не уверен, использовать ли его в рамках объекта site/treatment или между субъектами _10 _...) и обобщил результаты.

  m1 <- aov(proportion~site*treatment,data=datTable) # Or should I use 'site/treatment'?

Тогда мой summary(m1) дал мне следующее:

> summary(m1)
               Df  Sum Sq Mean Sq F value Pr(>F)  
site            3 0.02548 0.00849   0.513 0.6845  
treatment       1 0.11395 0.11395   6.886 0.0305 *
site:treatment  3 0.03686 0.01229   0.742 0.5561  
Residuals       8 0.13239 0.01655                 

Следующий шаг - использовать TukeyHSD апостериорный тест, чтобы увидеть, какая пара на самом деле вызвала * значимость в site факторе.

> TukeyHSD(m1)
  Tukey multiple comparisons of means
    95% family-wise confidence level

Fit: aov(formula = proportion ~ site * treatment, data = datTable)

$site
            diff        lwr       upr     p adj
B-A -0.042934783 -0.3342280 0.2483585 0.9631797
C-A -0.033106909 -0.3244002 0.2581863 0.9823452
D-A  0.059168392 -0.2321249 0.3504616 0.9124774
C-B  0.009827873 -0.2814654 0.3011211 0.9995090
D-B  0.102103175 -0.1891901 0.3933964 0.6869754
D-C  0.092275301 -0.1990179 0.3835685 0.7461309

$treatment
                      diff        lwr         upr     p adj
treated-control -0.1687856 -0.3171079 -0.02046328 0.0304535

$`site:treatment`
                            diff        lwr       upr     p adj
B:control-A:control -0.010869565 -0.5199109 0.4981718 1.0000000
C:control-A:control -0.076213819 -0.5852551 0.4328275 0.9979611
D:control-A:control -0.036663216 -0.5457045 0.4723781 0.9999828
A:treated-A:control -0.222222222 -0.7312635 0.2868191 0.6749021
B:treated-A:control -0.297222222 -0.8062635 0.2118191 0.3863364  # Not wanted
C:treated-A:control -0.212222222 -0.7212635 0.2968191 0.7154690  # Not wanted
D:treated-A:control -0.067222222 -0.5762635 0.4418191 0.9990671  # Not wanted
C:control-B:control -0.065344254 -0.5743856 0.4436971 0.9992203
D:control-B:control -0.025793651 -0.5348350 0.4832477 0.9999985
A:treated-B:control -0.211352657 -0.7203940 0.2976887 0.7189552  # Not wanted
B:treated-B:control -0.286352657 -0.7953940 0.2226887 0.4233804  # Not wanted
C:treated-B:control -0.201352657 -0.7103940 0.3076887 0.7583437  # Not wanted
D:treated-B:control -0.056352657 -0.5653940 0.4526887 0.9996991
D:control-C:control  0.039550603 -0.4694907 0.5485919 0.9999713
A:treated-C:control -0.146008403 -0.6550497 0.3630329 0.9304819  # Not wanted
B:treated-C:control -0.221008403 -0.7300497 0.2880329 0.6798628  # Not wanted
C:treated-C:control -0.136008403 -0.6450497 0.3730329 0.9499131 
D:treated-C:control  0.008991597 -0.5000497 0.5180329 1.0000000  # Not wanted
A:treated-D:control -0.185559006 -0.6946003 0.3234823 0.8168230  # Not wanted
B:treated-D:control -0.260559006 -0.7696003 0.2484823 0.5194129  # Not wanted
C:treated-D:control -0.175559006 -0.6846003 0.3334823 0.8505865  # Not wanted
D:treated-D:control -0.030559006 -0.5396003 0.4784823 0.9999950  
B:treated-A:treated -0.075000000 -0.5840413 0.4340413 0.9981528
C:treated-A:treated  0.010000000 -0.4990413 0.5190413 1.0000000
D:treated-A:treated  0.155000000 -0.3540413 0.6640413 0.9096378
C:treated-B:treated  0.085000000 -0.4240413 0.5940413 0.9960560
D:treated-B:treated  0.230000000 -0.2790413 0.7390413 0.6429921
D:treated-C:treated  0.145000000 -0.3640413 0.6540413 0.9326207

Однако есть некоторые пары, которые я не хочу включать в двухфакторный дисперсионный анализ, который я предварительно подготовил и обозначил как # not wanted.

Есть ли способ настроить функцию aov или TukeyHSD, чтобы исключить те возможности («нежелательные»), которые я перечислил выше? Я мог легко выбрать важные элементы, которые мне интересны (с *) из длинного списка, созданного с TukeyHSD. Но я не хочу, чтобы мои результаты от ановы были искажены ими! (В реальных данных случается, что значение на самом деле вызвано этими нежелательными парами!)

NB: Вы могли заметить, что site:treatment апостериорные тесты не показывают никакого значения, потому что я выбрал только небольшую выборку из исходных данных.


person katie lu    schedule 05.11.2015    source источник
comment
Вы ничего не исключаете из ANOVA. Вы можете ограничить свой апостериорный тест только релевантными сравнениями. Например, вы можете провести попарные t-тесты и использовать p.adjust для ручной корректировки инфляции альфа-ошибок.   -  person Roland    schedule 05.11.2015


Ответы (1)


Если вы хотите полностью исключить эти сравнения из вычислений, тест Тьюки работает, выполняя попарные сравнения для всех комбинаций условий. Нет смысла «исключать» какие-либо пары.

Если вы имеете в виду, что хотите исключить нежелательные сравнения из ваших окончательных результатов, тогда да, это возможно. Результат TukeyHSD - это просто список, а site:treatment - это просто матрица, которой вы можете манипулировать по своему усмотрению.

lst <- TukeyHSD(m1)
lst[['site:treatment']] <- lst[['site:treatment']][-c(5,6,7,10,11,12,15,16,18,19,20,21),]
person kliron    schedule 05.11.2015
comment
Спасибо за ответ. Я думал исключить эти сравнения из анализа ANOVA, так что если нет сигн. различия между теми парами, которые меня интересуют, ANOVA не даст мне никакого значения. полученные результаты. - person katie lu; 05.11.2015
comment
ANOVA так не работает. См. Комментарий Роланда выше. - person kliron; 05.11.2015