В чем разница "+" против "*" в модели ANOVA? - PullRequest
2 голосов
/ 21 марта 2020
       GG      AMB GGXAMB     ATF6.M
1    COBB CONFORTO     CC  1.7391386
2    COBB CONFORTO     CC  0.8269537
3    COBB CONFORTO     CC  0.3464495
4    COBB CONFORTO     CC  1.3126458
5    COBB CONFORTO     CC  1.3938351
6    COBB CONFORTO     CC  1.0969472
7    COBB   STRESS     CS  3.1431619
8    COBB   STRESS     CS  0.9023480
9    COBB   STRESS     CS  2.5106332
10   COBB   STRESS     CS  1.2833235
11   COBB   STRESS     CS  0.4485298
12   COBB   STRESS     CS  0.3553028
13 PELOCO CONFORTO     PC  0.3481456
14 PELOCO CONFORTO     PC  2.5095779
15 PELOCO CONFORTO     PC  0.8871572
16 PELOCO CONFORTO     PC  2.3148108
17 PELOCO CONFORTO     PC 73.2463832
18 PELOCO CONFORTO     PC 16.0056771
19 PELOCO   STRESS     PS 15.4836898
20 PELOCO   STRESS     PS  1.2041695
21 PELOCO   STRESS     PS  1.8424005
22 PELOCO   STRESS     PS  0.9193776
23 PELOCO   STRESS     PS  0.9451780
24 PELOCO   STRESS     PS  0.9715508

Извините, если вопрос слишком тупой, но я пока не нашел ответа.

Какова будет статистическая разница этих двух моделей при анализе ANOVA в R:

  1. aov (ATF6.M ~ G + AMB + GGXAMB, данные)
  2. aov (ATF6.M ~ G * AMB, data)

Из результатов я заметил, что при использовании "*" он вычисляет ANOVA для каждой независимой переменной, а также для взаимодействия ( например: GG: AMB). Но если вы посмотрите на мою таблицу, переменная GGXAMB - это именно то взаимодействие, но если сравнить результаты со значениями, полученными с помощью GG: AMB в сводке ANOVA, с данными формулы 1., они близки, но не то же. Мои модели правы?

1 Ответ

2 голосов
/ 21 марта 2020

Используя ваши данные:

data = structure(list(GG = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L
), .Label = c("COBB", "PELOCO"), class = "factor"), AMB = structure(c(1L, 
1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 1L, 1L, 1L, 1L, 1L, 
1L, 2L, 2L, 2L, 2L, 2L, 2L), .Label = c("CONFORTO", "STRESS"), class = "factor"), 
    GGXAMB = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 
    2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L
    ), .Label = c("CC", "CS", "PC", "PS"), class = "factor"), 
    ATF6.M = c(1.7391386, 0.8269537, 0.3464495, 1.3126458, 1.3938351, 
    1.0969472, 3.1431619, 0.902348, 2.5106332, 1.2833235, 0.4485298, 
    0.3553028, 0.3481456, 2.5095779, 0.8871572, 2.3148108, 73.2463832, 
    16.0056771, 15.4836898, 1.2041695, 1.8424005, 0.9193776, 
    0.945178, 0.9715508)), class = "data.frame", row.names = c("1", 
"2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", 
"14", "15", "16", "17", "18", "19", "20", "21", "22", "23", "24"
))

Мы делаем анову:

f1 = aov(ATF6.M ~ GG + AMB + GGXAMB, data=data)
f2 = aov(ATF6.M ~ GG * AMB, data=data)

Разница, которую можно объяснить, по сути та же самая:

summary(f1)
            Df Sum Sq Mean Sq F value Pr(>F)
GG           1    428   427.7   1.990  0.174
AMB          1    216   216.1   1.005  0.328
GGXAMB       1    240   239.9   1.116  0.303
Residuals   20   4299   214.9               
summary(f2)
            Df Sum Sq Mean Sq F value Pr(>F)
GG           1    428   427.7   1.990  0.174
AMB          1    216   216.1   1.005  0.328
GG:AMB       1    240   239.9   1.116  0.303
Residuals   20   4299   214.9 

Коэффициенты разные:

f1$coefficients
(Intercept)    GGPELOCO   AMBSTRESS    GGXAMBCS    GGXAMBPC    GGXAMBPS 
   1.119328   14.765964  -12.324231   12.645452          NA          NA 
f2$coefficients
       (Intercept)           GGPELOCO          AMBSTRESS GGPELOCO:AMBSTRESS 
         1.1193283         14.7659637          0.3212216        -12.6454525 

Это потому, что в первой регрессии комбинации GGXAMB могут возвращать вам коэффициенты GG, например, CC + CS дает вам COBB в GG, делая 3 ваших коэффициента избыточными. Это вызовет проблемы при оценке коэффициентов. Эффект в этом случае - AMBSTRESS получение небольшого значения, а остальные - NA.

Вы можете прочитать об этом немного в этом обсуждении и , может быть,, термин для этого - матрица с полным ранжированием.

Чтобы ответить на ваш вопрос, вы должны использовать aov(ATF6.M ~ GG*AMB, data) или aov(ATF6.M ~ GG+AMB+GG:AMB, data), это происходит из-за подгонки линейной модели к матрице с полным ранжированием, и все коэффициенты являются оценочными. -Возможно (как вы можете видеть сверху).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...