微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

R 中是否有可以生成数据的函数/包,您可以在其中指定变量之间的关系?

如何解决R 中是否有可以生成数据的函数/包,您可以在其中指定变量之间的关系?

我有兴趣运行一些多变量线性回归数据模拟来尝试一些新的统计方法,然后再将它们用于我的真实数据集,在那里我对结果(连续和分类)回归一组预测变量。

>

目标是生成包含三个假暴露和一个结果的数据,可选择设置每个暴露与结果(连续)之间关系的 beta 估计值,或结果的相对风险或优势比(分类结果)。这是否可以在 R 中轻松完成?

例如,最好设置一个 4 变量数据集,其中一个变量与我设置的 OR/RR 为 1.5 的分类结果相关,然后我会为该关系得到 1.5 的 RR/OR如果我对数据集进行逻辑回归。

谢谢!

解决方法

您可以生成随机分类变量,然后设置 B0=1、B1=log(1.5)、B2=1、B3=1,并生成适当的 XB。然后使用 logit 链接函数,您可以为每个观察值/行 x 生成 P(Y=1|x) 并使用 sample 以该概率选择 Y=1 或 0。使用二项式族拟合逻辑回归,最后对“a”的系数取幂以获得该变量的优势比。由于我们已将其设置为 log(1.5),因此求幂大约为 1.5。

dt=data.frame(a=sample(c(0,1),10000,replace=TRUE),b=sample(c(0,c=sample(c(0,replace=TRUE))
library(dplyr)
dt=mutate(dt,xb=1+log(1.5)*a+b+c,linked=1/(1+exp(-xb)))
y=numeric()
for (i in 1:10000) {
  y[i]=sample(c(1,0),prob=c(dt$linked[i],1-dt$linked[i]),size=1)
}
dt$y=y
m=glm(data=dt,y ~ a+b+c,family="binomial")
exp(m$coef["a"])

1.422448  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。