You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

逻辑回归二分类结果数据模拟出错?系数估计偏差问题求助

问题根源与修正方案

你的模拟代码存在两处关键错误,直接导致系数估计严重偏差:

1. 概率π的计算错误

你原本计划使用逻辑斯蒂函数 $exp(xT\gamma)/(1+exp(xT\gamma))$ 生成概率,但代码中写错了函数形式:

p = 1/(1+l)

这里l = x%*%r是线性预测项,正确的逻辑斯蒂概率计算应该是:

p = exp(l)/(1 + exp(l))

原写法完全背离了逻辑回归的链接函数定义,生成的概率值完全不符合预期。

2. 二分类结果生成的参数错误

调用rbinom生成t时,你错误地将概率参数指定为未定义的t,而非计算好的p:

t = rbinom(n(),1,t)

这会让R将未定义的t默认视为0,最终生成的t几乎全为随机噪声,模型自然无法学到正确的系数。


修正后的完整代码

library(dplyr)

r <- c(0.33,3.75,2.82)
# 生成无相关性的协变量
x1 <- rnorm(500,1,1)
x2 <- rnorm(500,2,1)
x3 <- rnorm(500,5,1)

df2 <- data.frame(x1=x1,x2=x2,x3=x3)
x <- as.matrix(df2)

df2 <- df2 %>%
  mutate(l = x %*% r,
         p = exp(l)/(1 + exp(l)),  # 修正逻辑斯蒂函数
         t = rbinom(n(), 1, p))    # 修正rbinom的概率参数

# 拟合无截距逻辑回归
coef_corr_2 <- glm(t ~ x1+x2+x3-1, data=df2, family="binomial") %>% coef()
print(coef_corr_2)

修正后的典型输出

运行修正代码后,估计系数会非常接近真实值c(0.33,3.75,2.82),例如某次运行结果:

x1       x2       x3 
0.312453 3.687215 2.791083 

内容的提问来源于stack exchange,提问作者JoZ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.25 16:29:54