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