我是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和stats的新手,所以提供的关于chisq.post.hoc的文档对我而言并没有多大意义-而且似乎不再支持该软件包,因此我不得不下载存档版本。我尝试过各种方法,但是都会产生错误。例如;
chisq.post.hoc(df$num_wins, control = "bonferroni")
> Error in 1:nrow(tbl) : argument of length 0
我真的很乐意在此方面或任何有关我可以使用的替代事后测试的建议,以及在运行之前如何构建数据等建议。
谢谢!
答案 0 :(得分:0)
这是因为您不应使用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