gpt4 book ai didi

r - 在做 glm 之前洗牌数据,然后重复 x 次

转载 作者:行者123 更新时间:2023-12-04 11:15:13 24 4
gpt4 key购买 nike

我有一些包含组变量 (0/1) 和个人评分的数据,大约有 2000 个人。数据集看起来像这样:

ID group score  
A1 1 3.5
A2 1 3.2
A3 0 2.8
A4 0 2.5

我想测试是否可以通过分数预测组变量,并在 R 中使用了以下内容:
glm(group~score,family=binomial)

现在我想通过改组组变量来测试我的 p 值,然后再次执行 glm。我想这样做至少 10,000 次,甚至可能更多,每次打印文件中分数的 p 值,以便每个排列有一行。我看过 sample(),但我很难将它与 glm() 以及如何仅输出 p 值结合起来。在脚本/公式中,如果我选择添加协变量,我想轻松更改排列数,并更改 glm 公式。

感谢您的任何帮助!

最佳答案

你在正确的轨道上。

示例(我又添加了一个值来抑制有关“数值为 0 或 1 的拟合概率”的警告)

ex <- read.table(textConnection(
"ID group score
A1 1 3.5
A2 1 3.2
A3 0 2.8
A4 0 2.5
A5 1 2.4"),header=TRUE)

g0 <- glm(group~score,data=ex,family=binomial)

现在您需要一个函数来计算汇总 p 值(您可以执行
这在 replicate ,但这种方式更干净)。
pvalfun <- function() {
g <- update(g0,data=transform(ex,group=sample(group)))
coef(summary(g))["score","Pr(>|z|)"]
}
res <- replicate(1000,pvalfun())

或者
library(plyr)
res <- raply(1000,pvalfun(),.progress="text")

或者
library(glmperm)
ptest2 <- prr.test(group~score,"score",data=ex,family=binomial)
summary(ptest2)

关于r - 在做 glm 之前洗牌数据,然后重复 x 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19223945/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com