R Chi Squared Post Hoc Test - PullRequest
       19

R Chi Squared Post Hoc Test

0 голосов
/ 10 ноября 2018

Я новичок в R (и статистике в целом), поэтому заранее прошу прощения за этот, вероятно, очень коррективный вопрос, но я был бы признателен за любую помощь!

Я пытаюсь оценить, есть ли статистическое преимущество для начала автопробега в одной полосе перед другой.

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

#create lanes var
lane_num <- c(1:10)

#num wins per lane
num_wins <- c(8, 7, 10, 7, 6, 3, 6, 4, 1, 0)

#create df
df <- as.data.frame(cbind(lane_num, num_wins))

#convert lanes_num factor
df$lane_num <- as.factor(df$lane_num)

#check str
str(df)

#run chisq
chi_res <- chisq.test(df$num_wins)

#check results
chi_res

#check for sig diff between lanes
chisq.post.hoc(df) #this is where i'm having issues

Результат теста chisq.test дает следующие результаты, свидетельствующие о значительной разнице между ожидаемым наблюдаемым v;

    Chi-squared test for given probabilities

data:  df$num_wins
X-squared = 17.231, df = 9, p-value = 0.04522

Я испытываю затруднения, когда дело доходит до выполнения специального теста между полосами, чтобы точно определить, с каких из них значительно выгоднее начинать.

Просто работает:

chisq.post.hoc(df)

возвращает следующую ошибку;

Error in test(tbl[prs[, i], ], ...) : 
all entries of 'x' must be nonnegative and finite

Как я уже сказал, я новичок в R и в статистике, поэтому предоставленная документация, касающаяся chisq.post.hoc, не имеет для меня большого смысла - плюс, похоже, пакет больше не поддерживается, поэтому мне пришлось скачать архивная версия. Я пробовал разные вещи, но все выдают ошибки. Например;

chisq.post.hoc(df$num_wins, control = "bonferroni")
> Error in 1:nrow(tbl) : argument of length 0

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

Заранее спасибо!

1 Ответ

0 голосов
/ 02 февраля 2019

Это потому, что вы не должны использовать data.frame, а table. Я не могу установить fifer, так как он больше не поддерживается, поэтому вот решение с RVAideMemoire:

race <- matrix(c(8, 7, 10, 7, 6, 3, 6, 4, 1, 0),ncol=10)
colnames(race) <- c(1:10)
race<-as.table(race)
race

#run chisq
chi_res <- chisq.test(race)

#check results
chi_res
library(RVAideMemoire)
chisq.multcomp(race, p.method = "none")

выход:

> chi_res

    Chi-squared test for given probabilities

data:  race
X-squared = 17.231, df = 9, p-value = 0.04522

> chisq.multcomp(race, p.method = "none")

    Pairwise comparisons using chi-squared tests 

data:  race 

   0      1      3      4      6      6      7      7      8     
1  0.3173 -      -      -      -      -      -      -      -     
3  0.0833 0.3173 -      -      -      -      -      -      -     
4  0.0455 0.1797 0.7055 -      -      -      -      -      -     
6  0.0143 0.0588 0.3173 0.5271 -      -      -      -      -     
6  0.0143 0.0588 0.3173 0.5271 1.0000 -      -      -      -     
7  0.0082 0.0339 0.2059 0.3657 0.7815 0.7815 -      -      -     
7  0.0082 0.0339 0.2059 0.3657 0.7815 0.7815 1.0000 -      -     
8  0.0047 0.0196 0.1317 0.2482 0.5930 0.5930 0.7963 0.7963 -     
10 0.0016 0.0067 0.0522 0.1088 0.3173 0.3173 0.4669 0.4669 0.6374

P value adjustment method: none 
...