我正在尝试模拟逻辑回归的数据。假设我有以下设置,无耻地从Ocram的示例中解除(https://stats.stackexchange.com/questions/12857/generate-random-correlated-data-between-a-binary-and-a-continuous-variable/12858#12858):
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)
我的目标是通过根据需要调整b0的值,在结果变量y中使用固定或特定数量的成功来模拟此数据。我的粗略想法(在一个循环或应用调用内)是模拟数据,b0从均匀分布中随机抽取,检查成功的数量,并根据需要增加或减少b0,然后迭代重新检查,直到我确定值为b0有效。
但这非常不优雅,我希望有一种更明智的方式。