当前位置: 首页 > news >正文

R 语言 逻辑斯蒂回归

逻辑斯蒂回归用于二分类(0/1 因变量),因变量 y:只能取 0 或 1,事件发生概率,范围 (0,1)

# 加载内置数据集:mtcars(二分类变量vs:0=V型,1=直列) data(mtcars) # 查看数据 head(mtcars) # 目标:用mpg、wt、hp预测 vs(0/1二分类) # glm() 通用线性模型,family = binomial 就是逻辑斯蒂回归 logit_model <- glm( formula = vs ~ mpg + wt + hp, # 因变量~自变量 data = mtcars, family = binomial(link = "logit") ) # 输出模型详细结果 summary(logit_model)

Call:
glm(formula = vs ~ mpg + wt + hp, family = binomial(link = "logit"), data = mtcars)

Deviance Residuals: # 偏差残差,越小拟合越好
Min 1Q Median 3Q Max
-2.0157 -0.4043 -0.0158 0.4775 1.8834

Coefficients: # 核心系数表
Estimate Std. Error z value Pr(>|z|)
(Intercept) 18.57445 7.38663 2.515 0.01192 *
mpg -0.11965 0.14794 -0.809 0.41879
wt -4.24346 1.86899 -2.270 0.02317 *
hp -0.03237 0.01821 -1.778 0.07539 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

  • Estimate:回归系数(beta)
    • 正数:自变量越大,(y=1)概率越大
    • 负数:自变量越大,(y=1)概率越小
  • Std.Error:系数标准误
  • z value:Z 检验统计量
  • Pr(>|z|):P 值
    • (P<0.05):自变量显著影响分类结果
# 提取优势比 exp(系数) exp(coef(logit_model)) # 置信区间 exp(confint(logit_model))

Waiting for profiling to be done...
2.5 % 97.5 %
(Intercept) 1.720775e-22 1.062851e+09
mpg 7.432421e-01 5.813725e+00
wt 2.934997e-01 2.461978e+05
hp 8.035275e-01 9.713645e-01
共有25个警告 (用warnings()来显示)
(OR>1):自变量增大,发生事件概率上升
(OR<1):自变量增大,发生事件概率下降

预测与评价

# 1. 训练集内预测概率 pre_prob <- predict(logit_model, type = "response") # 2. 转为0/1分类结果(阈值0.5) pre_class <- ifelse(pre_prob > 0.5, 1, 0) head(pre_class) # 真实值 vs 预测值 table(真实值=mtcars$vs, 预测值=pre_class) # 计算准确率 acc <- mean(pre_class == mtcars$vs) acc

预测值
真实值 0 1
0 16 2
1 0 14

> # 计算准确率
[1] 0.9375

可视化

# 1. 生成自变量序列(连续取值,用于画平滑曲线) wt_seq <- seq(min(mtcars$wt), max(mtcars$wt), length.out = 100) # 2. 构造预测数据集(其余自变量取均值,控制变量) new_data <- data.frame( wt = wt_seq, mpg = mean(mtcars$mpg), hp = mean(mtcars$hp) ) # 3. 预测概率 prob_pred <- predict(logit_model, newdata = new_data, type = "response") # 4. 绘图:原始散点 + 拟合S曲线 plot( x = mtcars$wt, y = mtcars$vs, main = "逻辑斯蒂回归 S型概率曲线(车重vs分类)", xlab = "车重 wt", ylab = "分类 vs (0/1)", pch = 16, col = "steelblue" ) # 绘制拟合曲线 lines(wt_seq, prob_pred, lwd = 2, col = "red") # 添加0.5阈值线 abline(h = 0.5, lty = 2, col = "gray") legend("topright", legend = c("原始数据", "拟合概率曲线", "0.5阈值"), col = c("steelblue", "red", "gray"), pch = c(16, NA, NA), lty = c(NA, 1, 2))

http://www.jsqmd.com/news/990710/

相关文章:

  • 微软、谷歌、苹果等科技动态汇总:新品发布、功能更新及行业热点全知晓
  • 2026燃油传感器压装技术解析与专业厂家盘点:压装浮动头/压装监测仪/四柱伺服压机/多级电动缸/大负载伺服电动缸/选择指南 - 优质品牌商家
  • 51单片机液体气体流量计硬件+代码全套资料(原理图/PCB/源码/BOM)
  • 别再拍脑袋了!用Python模拟M/M/1排队系统,5分钟搞定客服中心容量规划
  • 如何在Linux系统上原生访问Microsoft OneDrive:onedriver完全指南
  • 数据的加密与解密(07:11)
  • Java中的集合框架有哪些核心接口
  • 2026南昌黄金回收全攻略 多家靠谱门店详解及避坑指南 - 润富黄金回收
  • 2025-2026年工程信息平台推荐:五大榜单全方位评测专业适用场景注意事项 - 品牌推荐
  • 用Python复现SIGCOMM‘14经典算法BBA:不到10行代码搞定视频码率自适应
  • 告别万用表手动测算!给老旧STC89C51开发板加个新功能:自动电路特性测试
  • C#工业视觉项目实战:Halcon 3D点云数据如何通过ActiViz在WinForm中流畅显示(附完整代码)
  • 手把手教你用FPGA驱动24位高精度ADC芯片ADS1256(附Verilog代码避坑指南)
  • 终极指南:高效扩展FossFLOW等距图表工具的完整方案
  • AMD Ryzen调试工具SMUDebugTool:免费开源硬件性能调优利器
  • 2026年6月郑州黄金回收店推荐:五大机构专业评测报价透明特点适用场景 - 品牌推荐
  • 2026年6月连云港黄金回收实战指南与四家商家深度评测 - 润富黄金回收
  • 2026最佳Chrome代理插件推荐:4个插件工具测评(附详细评测)
  • Electron Fiddle深度实践指南:快速构建桌面应用原型
  • 2026年好用的白蚁防治团队推荐,口碑怎么样 - 工业品牌热点
  • 用74LS160和74LS47D芯片,从零搭建一个能报时的数字电子钟(附完整电路图)
  • 褐矮星系统动力学:潮汐演化与轨道特性研究
  • 避坑指南:在Pico上玩转SD卡和I2S播放WAV,这些SPI速率和内存细节别忽略
  • STM32F407+FreeRTOS实战:用lwip的netconn接口打造一个支持热拔插的TCP服务器(附完整代码)
  • 2026 安徽安庆彩钢瓦翻新防水 TOP4 权威推荐(全区域服务 + 避坑指南) - 本地便民网
  • 2026年6月10日博客精选
  • 水机磁翻板液位计BNA31-600/1000/4-SC-MN-T31
  • 2026年白蚁防治品牌排名 - 工业品牌热点
  • 5分钟快速上手:让Switch手柄在电脑上完美运行的BetterJoy终极指南
  • 南宁黄金回收行情报价 本地变现避坑完整实用攻略 - 余生黄金回收