《R 语言》期末考试大作业申请
根据《R 语言》课程特点和教学基本要求,本课程希望学生能够较
全面地学习 R 语言的基本原理和实用操作,掌握 R 语言的数据输入及输
出,数据的可视化,参数估计,假设检验线性回归,主成分分析法及其
实际应用。着重培养学生应用所学知识解决实际问题的分析能力、建模
能力与创新能力。因此申请 2022-2023(1)学期课程《R 语言》期末考
试采取大作业项目设计的形式。
考试班级:20 级数据科学与大数据技术
考试课程:R 语言
申请人:熊昕
2021.11.09
课程成绩说明
本课程最终成绩由平时成绩和期末大作业成绩组成,具体评分标准如下:
1. 平时成绩由实验成绩和考勤成绩综合给出。其中:
实验成绩:需按照实验要求完成实验内容并提交实验报告或实验结果;
考勤成绩:根据平时考勤记录给出;
实验和考勤一起构成平时成绩,总分 100 分。
2. 期末大作业成绩采取百分制,根据学生提交大作业内容的完成情况进行评分。
3. 课程最终成绩采取百分制,60 分及格,由平时成绩与大作业成绩加权计算得出,
平时成绩与大作业成绩各占总成绩的 30%和 70%。
课程大作业项目设计
解决大作业中提出的所有问题,根据问题进行建模。
大作业要求:提交完整项目设计方案及程序代码,条理清晰,格式齐整,程序代码
需要完整可运行。
提交时间及方式:提交设计方案电子档及程序源代码,截至日期 12 月 02 日。
学院 人工智能 出卷教师 熊昕 系主任签名
制卷份数 专业 数学与应用数学 班级编号
江汉大学 2022 —— 2023 学年第 1 学期
考 试 试 卷
课程编号: 410802045 课程名称: 《R 语言》
试卷类型:项目设计 考试形式:大作业 考试时间:12 月 02 日之前提交
一、考试说明
根据课程特点,考试采取大作业形式。为了考试学生的对课程基本理论、基本
知识点的考察,要求学生调查报告中必须满足下述文档描述要求;同时,为了充分
发挥学生的自我能动性、积极性、创造性,要求学生在满足基本要求的前提下,可
以根据个人的能力充分发挥。
二、考核内容及评分标准
课程大作业项目设计内容及评分标准
1. (20 分)医疗保险公司为了赚钱,需要募集比花费在受益者的医疗服务上更多的年度保费。
因此保险公司投入了大量时间和金钱来研发能精确预测用于参保人医疗费用的模型。在附
件 insurance.csv 中
age 表示主要受益者的年龄;
sex 表示受益者的性别;
bmi 表示身体质量指数;
children 表示保险计划中包括的孩子数量;
smoker 表示保险人是否经常抽烟;
region 表示受益人在美国的居住地;
expenses 表示的则是年度保险计划的每个人的医疗费用;
region 表示受益人在美国的居住地。
1) 读取附件中 insurance.csv 文件;
q1 <- read.csv("附件/insurance.csv")
attach(q1)
head(q1)
2) 使用一个函数查看 expenses 的主要统计量(中位数,最大值,最小值等等);
summary(expenses)
3) 使用直方图来验证保险费用 expenses 的分布是左偏还是有偏?
hist(expenses)
保险费用 expenses 的分布是左偏
4) 使用数据对 expenses 进行多元线性回归分析;
fit <- lm(expenses~age+sex+bmi+children+smoker+region,data = q1)
5) 在数据中添加新的非线性变量:age 的平方,定义为非线性年龄项;
fit2 <- lm(expenses~I(age^2) +sex+bmi+children+smoker+region ,data = q1)
6) 在 BMI 中,选出 BMI 大于 30 的人,定义为肥胖指标;
q1$obesity <- ifelse( bmi>30,1,0)
7) 为了提高模型的性能,对 expenses 建立改进的回归模型,增加非线性年龄项、肥胖指标项、
指定肥胖和吸烟之间的相互作用项;
fit3 <- lm(expenses~ I(age^2) +sex+obesity+children+smoker+region+ obesity*smoker,data = q1)
8) 用第 7 问中的回归模型进行预测分析,在 insurance 数据中加入预测列,命名为 pred;
q1$pred <- predict(fit)
9) 绘制出关于预测值 pred 和真实值 expenses 的散点图,并添加一条截距为 0,斜率为 1 的标
识线,利用参数 col,lwd,lty 等等控制图像的设置;
plot(q1$pred,q1$expenses,lty = 2,xlab = "pred",ylab = "expenses",pch = 4)
abline(0,1,col = "red", lwd = 5 )