Kolmogorov-Smirnov测试,D ^ - = 1

时间:2016-09-02 08:06:48

标签: r dice kolmogorov-smirnov

我需要一些帮助解释我的ks.test输出。 我有28个参与者,每个人掷三个骰子。 Vektor g显示了每人的滚动总和。

g <-c(16, 16, 18, 12, 12, 18, 18, 14,  9, 12, 15, 14, 13, 14, 10,  9, 12, 12, 11, 17, 17, 12,  8, 17, 13, 18, 15,  6)

我想将g与实际分布函数进行比较。我使用以下代码生成“true”分布函数:

library("gtools")
library("dice")
v<-seq(1:15) 
for (i in 3:18) {
  p<-getEventProb(nrolls = 1, ndicePerRoll = 3, nsidesPerDie = 6, eventList= i, orderMatters = FALSE)  
  v[i]<-p
}
v<-v[-c(1,2)]

以下ks.test产生的D为1,这是不正确的。

ks.test(g, cumsum(v), alternative = "less")
你能告诉我我犯了什么错吗?非常感谢你的回答!

1 个答案:

答案 0 :(得分:0)

问题是你要比较两个非常不同的东西:滚动总数的分布(范围从3到18)和概率分布(范围从0到1):

> g
 [1] 16 16 18 12 12 18 18 14  9 12 15 14 13 14 10  9 12 12 11 17 17 12  8 17 13 18 15  6
> v
 [1] 0.00462963 0.01388889 0.02777778 0.04629630 0.06944444 0.09722222 0.11574074 0.12500000 0.12500000 0.11574074
[11] 0.09722222 0.06944444 0.04629630 0.02777778 0.01388889 0.00462963

所以对于KS来说,这些显然是两个非常不同的东西。可能最简单的方法是确定经验分布中3:18的每个总数的频率(参与者总数),并将其与预期的可能分布进行比较。