F-тест для нескольких парных образцов

У меня есть два набора данных: Set1 и Set2.

Для каждого набора у нас есть одни и те же переменные A, B, C, D, E.

Я хочу выполнить F-тест, чтобы понять, верны ли одновременно следующие отношения:

Set1_A = Set2_A, Set1_B = Set2_B, Set1_C = Set2_C, Set1_D = Set2_D, Set1_E = Set2_E

Set1_A и Set2_A могут быть векторами разного размера.

Как мне добиться этого в R?

Спасибо

Пример данных для Set1:

A       B       C
11.0    11.0    11.0
23.3    23.3    23.3
44.6    -1.3    -7.1
-1.9    -1.9    -1.9

Пример данных для Set2:

A        B      C
3.9      3.9    3.9
-6.1    -6.1    -6.1
-34.6   -95.7   -102.4
 7.0    7.0     7.0

person Zanam    schedule 04.03.2013    source источник
comment
Вам нужно предоставить более подробную информацию о том, с какими данными вы имеете дело, но я предполагаю, что вы ищете, как выполнить тест ANOVA в R.   -  person    schedule 05.03.2013
comment
Вы можете дать нам немного больше контекста? это домашнее задание?   -  person Ben Bolker    schedule 05.03.2013
comment
Нет, это не ХВ. У меня есть 10 столбцов разного размера. 5 столбцов принадлежат Set1, а остальные 5 столбцов — Set2. Какие еще детали вы ищете? Спасибо   -  person Zanam    schedule 05.03.2013
comment
Я провел небольшое исследование в Google. Моя проблема в основном заключается в совместной проверке гипотез с использованием F-теста, но я не знаю, как это оформить в R.   -  person Zanam    schedule 05.03.2013
comment
Можете ли вы просто скопировать и вставить подмножество ваших данных? Если вы собираетесь использовать ANOVA, вам необходимо иметь непрерывный ответ и категориальные ковариаты.   -  person    schedule 05.03.2013


Ответы (1)


Это иллюстрирует, как получить сравнение для Set1_A и Set2_A. Чтобы определить, являются ли они одновременными «истинными», вам необходимо использовать многомерный анализ.

Set1 <- read.table(text="A       B       C
 11.0    11.0    11.0
 23.3    23.3    23.3
 44.6    -1.3    -7.1
 -1.9    -1.9    -1.9", header=TRUE)

 Set2<- read.table(text="A        B      C
 3.9      3.9    3.9
 -6.1    -6.1    -6.1
 -34.6   -95.7   -102.4
  7.0    7.0     7.0", header=TRUE)
 combset <- rbind(Set1, Set2)
 combset$grp <- rep(c("Set1", "Set2"), times=c(nrow(Set1), nrow(Set2) ) )
 combset
#----------------
      A     B      C  grp
1  11.0  11.0   11.0 Set1
2  23.3  23.3   23.3 Set1
3  44.6  -1.3   -7.1 Set1
4  -1.9  -1.9   -1.9 Set1
5   3.9   3.9    3.9 Set2
6  -6.1  -6.1   -6.1 Set2
7 -34.6 -95.7 -102.4 Set2
8   7.0   7.0    7.0 Set2

Теперь, когда у вас есть данные в так называемом длинном формате, вы можете использовать идентификатор группы в качестве фактора в вызове lm.formula:

 lm(A ~ grp, data=combset)

Call:
lm(formula = A ~ grp, data = combset)

Coefficients:
(Intercept)      grpSet2  
      19.25       -26.70  

Warning message:
In model.matrix.default(mt, mf, contrasts) :
  variable 'grp' converted to a factor
> anova(lm(A ~ grp, data=combset))
Analysis of Variance Table

Response: A
          Df Sum Sq Mean Sq F value  Pr(>F)  
grp        1 1425.8 1425.78  3.8004 0.09913 .
Residuals  6 2251.0  375.16                  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 
Warning message:
In model.matrix.default(mt, mf, contrasts) :
  variable 'grp' converted to a factor

Можно построить многомерную модель. НО... уверены ли вы, что можете правильно интерпретировать это и знаете о статистической проблеме, которая может возникнуть?

>  lm( A + B + C ~ grp, combset)

Call:
lm(formula = A + B + C ~ grp, data = combset)

Coefficients:
(Intercept)      grpSet2  
      33.35       -87.92  

Warning message:
In model.matrix.default(mt, mf, contrasts) :
  variable 'grp' converted to a factor
> anova(lm( A + B + C ~ grp, combset))
Analysis of Variance Table

Response: A + B + C
          Df Sum Sq Mean Sq F value Pr(>F)
grp        1  15462 15461.6   2.016 0.2055
Residuals  6  46017  7669.6               
Warning message:
In model.matrix.default(mt, mf, contrasts) :
  variable 'grp' converted to a factor

Меня беспокоил этот ответ, потому что я думал, что нужно было оценивать больше коэффициентов. Я вспомнил статью Питера Далгаарда в RNews и просмотрел ее. . Это должно было быть то, что я предложил:

>  lm( cbind(A, B, C) ~ grp, combset) 

Call:
lm(formula = cbind(A, B, C) ~ grp, data = combset)

Coefficients:
             A        B        C      
(Intercept)   19.250    7.775    6.325
grpSet2      -26.700  -30.500  -30.725

Warning message:
In model.matrix.default(mt, mf, contrasts) :
  variable 'grp' converted to a factor
> anova(lm( cbind(A, B, C) ~ grp, combset))
Analysis of Variance Table

            Df  Pillai approx F num Df den Df Pr(>F)
(Intercept)  1 0.51946  1.44130      3      4 0.3557
grp          1 0.42690  0.99318      3      4 0.4813
Residuals    6                                      
Warning message:
In model.matrix.default(mt, mf, contrasts) :
  variable 'grp' converted to a factor
> class(lm( cbind(A, B, C) ~ grp, combset))
[1] "mlm" "lm" 
Warning message:
In model.matrix.default(mt, mf, contrasts) :
  variable 'grp' converted to a factor

Обратите внимание, что представлена ​​«настоящая» многомерная статистика вывода (например, кривая Пиллаи или кривая Уилкса или Хотеллинга) и представлены три отдельных коэффициента для A, B и C, а класс выходных данных — «mlm», а не просто «lm». . Вы также должны посмотреть на ?anova.mlm.

person IRTFM    schedule 05.03.2013
comment
Нет, я не знаю о статистических проблемах, которые могут возникнуть. Не могли бы вы объяснить? - person Zanam; 05.03.2013
comment
И что вы имеете в виду, говоря, что вы уверены, что можете правильно это интерпретировать? - person Zanam; 05.03.2013
comment
Ну, учитывая, что я думаю, что мой первоначальный ответ был неправильным и что вы этого не заметили, тогда я думаю, что мы оба должны быть бдительны в отношении границ наших знаний. Спасибо, что попросили прокомментировать этот вопрос и дали мне возможность исправить мою ошибку. - person IRTFM; 05.03.2013