2015-03-25 2 views
0

Интересно, существует ли какая-либо функция R для выполнения ANOVA и TukeyHSD из отсчета Среднее, SD и Размер выборки (n). Я нашел ind.oneway.second функцию от rpsychi, чтобы выполнить ANOVA в статистике выборочной статистики, но не смог найти какую-либо функцию для выполнения TukeyHSD по статистике выборки. Любая помощь будет высоко оценена. Заранее спасибо за вашу помощь.Функция R для выполнения ANOVA и TukeyHSD из образца Среднее значение, SD и n

library("rpsychi") 

Mean <- c(90,85,92,100,102,106) 
SD <- c(9.035613,11.479667,9.760268,7.662572,9.830258,9.111457) 
SampleSize <- c(9,9,9,9,9,9) 

fm1 <- ind.oneway.second(Mean, SD, SampleSize) 
fm1 
names(fm1) 
TukeyHSD(fm1$anova.table) 
+0

Я работал над пакетом, который бы сделал что-то вроде этого. У него была функция, которая подражала ind.oneway.второй в том, что она выполняла anova исключительно на выборках, sds и размерах выборки. Он также возвратил фактический объект lm и некоторые смоделированные данные, если это необходимо. Этого должно быть достаточно, чтобы продолжить то, что вы хотите, я думаю. На данный момент меня нет дома, поэтому у меня нет этого кода, но если есть интерес, я мог бы разбить его и на самом деле получить его на CRAN в ближайшее время (очевидно, я мог бы поставить его на github тем временем). – Dason

+0

Это было бы здорово @Dason. Жду вашего ответа. Спасибо – MYaseen208

+0

Сказав это, я с нетерпением жду, если кто-то еще сделает что-то подобное на CRAN. – Dason

ответ

2

Это должно сработать. В основном это просто имитирует данные, которые точно соответствуют данным средствам, стандартным отклонениям и размерам выборки. После этого вы можете подобрать интересующую модель и провести какие-либо анализы, которые вас интересуют.

Mean <- c(90,85,92,100,102,106) 
SD <- c(9.035613,11.479667,9.760268,7.662572,9.830258,9.111457) 
SampleSize <- c(9,9,9,9,9,9) 


gen_data <- function(means, sds, samplesizes){ 
    n.grp <- length(means) 
    grps <- factor(rep(1:n.grp, samplesizes)) 
    dat <- lapply(1:n.grp, function(i) {scale(rnorm(samplesizes[i]))*sds[i] + means[i]}) 
    y <- do.call(rbind, dat) 
    out <- data.frame(group = grps, y = y) 
    out 
} 

simulated_data <- gen_data(Mean, SD,SampleSize) 
av <- aov(y ~ group, data = simulated_data) 
summary(av) 
TukeyHSD(av) 
+0

Вы пропустили '.grp' после' n' внутри 'lapply'. – Molx

+0

Спасибо. Это то, что я получаю для того, чтобы не проверять его в чистой сессии R – Dason