【R】【线性回归分析实验】

实验思维导图

在这里插入图片描述

1. 收集、探索和准备数据

1.1 收集数据

insurance <- read.csv("~\\insurance.csv",stringsAsFactors=TRUE)
#将character类型数据转换为factors类型(略)

在这里插入图片描述

1.2 探索和准备数据

str(insurance)
#查看变量及变量类型等

在这里插入图片描述

summary(insurance$charges)
#查看收入的分布:最小值/四分之一值/中位数/平均值/四分之三值/最大值

在这里插入图片描述

hist(insurance$charges)
#收入直方图,随着收入增多消费频率降低

在这里插入图片描述

table(insurance$region)
#查看region的统计,东南方居住的患者稍多一些

在这里插入图片描述

cor(insurance[c("age","bmi","children","charges")])
#age、bmi、children、charges四个变量的相关系数矩阵
#对称结构,其中age与charges两个变量相关系数最大

在这里插入图片描述

pairs(insurance[c("age","bmi","children","charges")])
#age、bmi、children、charges四个变量的散点图矩阵
#对称结构,其中age与charge呈正相关关系

在这里插入图片描述

2. 基于数据训练模型

2.1 使用线性回归函数

ins_model <- lm(charges~age+children+bmi+sex+smoker+region,data = insurance)
#lm()探索charges与其他变量的相关性

在这里插入图片描述

2.2 建立模型

ins_model <- lm(charges~.,data = insurance)
#lm()探索charges与除charges所有变量的相关性

在这里插入图片描述

3. 评估模型的性能

summary(ins_model)

在这里插入图片描述

#参数注释:
#1.Residuals(残差)部分提供了预测误差的主要统计量,其中有一些统计量明显是相当大的。
#由于残差是真实值减去预测值,所以最大误差值29992.8 表明该模型至少对一个案例的费用少预测了将近三万元
#2.星号表示模型中每个特征的预测能力。3 颗星的出现表示显著性水平为 0,即该特征极不可能是与因变量无关的变量
#而一个通常的做法局势使用 0.05 的显著性水平来表示统计意义上的显著变量。
#3.多元 R 方值(判定系数)提供了一种度量模型性能的方式,即从整体上,模型能多大程度解释因变量的值。#它类似于相关系数,因为它的值越接近于 1.0,模型解释数据的性能就越好。

#1.Residuals(残差)这个案例中最大误差值为29992.8,预测值与实际值
#2.星号越多相关性越强
#3.R-squared(R²)越接近1模型性能越好

4. 提高模型的性能

4.1 将年龄非线性化

insurance$age2 <- insurance$age^2
#使年龄变为非线性数据

在这里插入图片描述

4.2 数值转换二进制

insurance$bmi30 <- ifelse(insurance$bmi >= 30,1,0)
#大于30岁的bmi替换为1,否则替换为0,即肥胖人士指标
#添加新属性

在这里插入图片描述

4.3 改进模型

ins_model2 <- lm(charges~age+age2+children+bmi+sex+bmi30*smoker+region,data = insurance)
#使用新参数非线性的age2、肥胖与吸烟的相互作用bmi30*smoker
summary(ins_model2)

在这里插入图片描述
在这里插入图片描述

#1.优化后的残差最小值及最大值都变小了;
#2.拥有表示模型中每个特征的预测能力的星号的变量也变多了;
#3.多元 R 方值由原来的 0.75 变为 0.86,更接近于 1,说明模型解释数据的性能变好了。

资料

实验资料

Reference

R语言数据框中的stringsAsFactors参数–刘小花花–CSDN

R语言之lm函数–cognize

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值