R 用固定数量的Y=1或成功模拟逻辑回归

R 用固定数量的Y=1或成功模拟逻辑回归,r,R,我试图模拟逻辑回归的数据。假设我有以下设置,不知羞耻地从这里的Ocram示例中删除(): n均匀分布在哪个范围内?它是整数还是双精度?检查成功次数,并根据哪种情况增加或减少?你如何确定价值?条件是什么?抱歉LyzandeR,我的帖子不清楚。我不确定均匀分布的范围。举个简单的例子:假设我的目标是在20次成功中获得10次成功。我会检查y中1的数量。如果是9,则取b0,加1,重新模拟。然后重新检查y中1的数量,如果仍然是9,则将1添加到b0,然后重新模拟。一旦y中有精确的10个1,内部循环停止,模拟进

我试图模拟逻辑回归的数据。假设我有以下设置,不知羞耻地从这里的Ocram示例中删除():


n均匀分布在哪个范围内?它是整数还是双精度?检查成功次数,并根据哪种情况增加或减少?你如何确定价值?条件是什么?抱歉LyzandeR,我的帖子不清楚。我不确定均匀分布的范围。举个简单的例子:假设我的目标是在20次成功中获得10次成功。我会检查y中1的数量。如果是9,则取b0,加1,重新模拟。然后重新检查y中1的数量,如果仍然是9,则将1添加到b0,然后重新模拟。一旦y中有精确的10个1,内部循环停止,模拟进入下一个任务,这里不讨论。我知道这很混乱,你可以把最后几行包装成一个函数,返回值是0或1的比例。将其放入
sapply
中,在
b0
值的合理范围内,查看比率在哪里。一旦得到了
b0
的近似值,重复模拟过程,直到得到准确的比率。@LyzandeR你的答案是什么?我还没有机会详细看它。是的,我想它还不够好。我刚意识到你需要什么。你需要它来进行逻辑回归。因此,我对它进行了一些思考,因为您使用了
rbinom
函数,因此很难获得相同数量的y或n。
n <- 20
b0 <- -1.6
b1 <- 0.03
b2 <- 0.5
x1 <- runif(n=n, min=18, max=60)
x2 <- rnorm(n=n, 0, 2)
pi_x <- exp(b0 + b1 * x1 + b2 * x2) / (1 + exp(b0 + b1 * x1 + b2 * x2))
y <- rbinom(n=length(x1), size=1, prob=pi_x)
data <- data.frame(x1, x2, pi_x, y)
print(data)