首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >R-关于基本单向排列测试的帮助

R-关于基本单向排列测试的帮助
EN

Stack Overflow用户
提问于 2013-09-11 13:53:41
回答 2查看 203关注 0票数 0

我在编写单向排列测试时遇到了困难。我有一场跑步比赛的数据,我正在查看两列,看看来自国外的跑步者和来自美国的跑步者哪个更快。左列是两个因素,A或D-国外或国内(国外跑步者显然要快得多)。右列是他们的时间,以分钟为单位。因为国外的样本量很小,所以我想做一个排列测试来回答这个问题:如果时间是随机分配的,国外跑步者被分配到最快时间的概率是多少?

如果您能给予指导,我将不胜感激。我唯一的代码就是把列转换成因子。我还尝试了一个置换测试,但我不知道它会去哪里。

代码语言:javascript
复制
abroaddomestic$City.f <- factor(abroaddomestic$City, labels = c("Abroad", "Domestic"))
msamp <- mean(abroad$TimeInMin) 
mpop <- mean(abroaddomestic$TimeInMin) 
msim <- replicate(10000, mean(sample(abroaddomestic$TimeInMin, 250))) 
sum(abs(msim-mpop) >= abs(msamp-mpop))/10000 
EN

回答 2

Stack Overflow用户

发布于 2013-09-12 01:29:02

与Carl Witthoft的答案类似,您可以将模拟视为来自二项分布。也就是说,模拟每个参赛者的国内或国外类型是随机抽签。

从那里,您可以将前十名中的跑步者数量(或任何阈值)作为您的统计数据,并根据模拟分布进行测试,其中国内/国外类型随机分配给所有跑步者。例如,假设有1000名跑步者,其中100人来自国外:

代码语言:javascript
复制
# calculate your test statistic
# as the number of abroad runners in top ten
statistic <- 3
# 5000 simulations of number of abroad in top ten times
# take number of values greater than statistic as p-value
sum(replicate(5000,sum(rbinom(1000,1,.1)[1:10])) > statistic)/5000
# or, equivalently:
sum(replicate(5000,rbinom(1,10,.1)) > statistic)/5000

在本例中,您的p值类似于0.01,因此拒绝了前十名中的位置是随机的(独立于国内/国外类型)的无效假设。

票数 1
EN

Stack Overflow用户

发布于 2013-09-11 19:52:28

我不认为你需要费心于因子,或者几乎任何你的源数据。比方说,你有1000名跑步者,其中10人“在国外”。然后,您需要做的就是计算(模拟) runif(1000)的前10个值位于生成的所有随机值的前X%的概率。生成的顺序是不相关的,因为你假设它是不相关的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18733605

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档