r中公平博弈的卡方检验



我有来自游戏的数据。数值从1到10,我需要测试游戏是否公平。我制作了一个频率表,我想在r中进行卡方检验。

根据我的理解,"公平概率"必须等于1/10。

然后我重复这个值100次(作为我观察的长度),并运行卡方检验。

我的问题是我做错了什么,我得到相同的平方和p值当我插入概率,当我不?

我的代码是:
fair<-1/10
array<-rep(fair,length=100)
chisq.test(Data)
chisq.test(table(Data),p=array)

如果我在卡方检验中不使用table(Data),那么我得到错误:

概率之和必须为1。

chisq.test(table(Data), p=array)工作正常吗?我会很惊讶,因为p的长度需要等于table(x)的长度,而不是x的长度,因为它是唯一观测值的概率向量。例如

set.seed(1)
x <- round(runif(100, 0.1, 1), 1)*10
x
p <- rep(1/10, 10)
chisq.test(x=table(x), p=p)
# this errors because of too many probabilities provided
chisq.test(x=table(x), p=rep(1/10, 100))
# Error in chisq.test(x = table(x), p = rep(1/10, 100)) : 
#   'x' and 'p' must have the same number of elements
# this errors because x needs to be the count of observations
chisq.test(x=x, p=rep(1/10, 100))
# Error in chisq.test(x = x, p = rep(1/10, 100)) : 
#   probabilities must sum to 1.

edit:添加错误

最新更新