面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总

힘센캥거루
2026년 1월 5일
4
22

之前我一直有个疑问:既然已经会 Python,真的还有必要再学 R 吗?

这次听完研修之后,我意识到,在做研究的时候其实完全没必要非得用 Python。

用 Python 的话,要用 numpy 做线性回归、画图、算 P value 等等,全都要自己一项项做;但是在 R 里,用 lmsummary 一句就可以搞定。

所以今天就把到目前为止学过的 R 实操内容做个总复习,并且用真实数据来展示练习示例。

1. 示例数据

示例数据是 Kaggle 上的美国学生成绩数据。

考虑到有的人可能还没注册 Kaggle,我在下面附上了一个下载链接。

据说这份数据是为了考察父母背景、考试准备课程等因素对学生成绩的影响而制作的。

下面贴上了数据内部的字段值。

简单说明一下:gender 是学生性别,race 是种族,parental level 是父母的受教育程度,lunch 是供餐价格,test preparation 是是否完成考试准备课程。

面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-1

2. 在 R Studio 中打开 csv 文件

在 R Studio 中用来读取文件的命令是 read

如果嫌输入文件路径麻烦,可以先选中要打开的文件,复制然后粘贴到这里,路径就会自动填入。

或者也可以用 file.choose() 命令,在 Windows 窗口里直接选择文件。

另外,每一行命令的执行可以用 ctrl + enter(Mac 上是 cmd + enter)。

data <- read.csv("文件路径")
// dat <- read.csv(file.choose())

head(data)
面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-2

3. 线性回归分析

现在用这份数据做一个简单的线性回归。

lm 这个函数的内部参数依次为 lm(因变量 ~ 自变量, 数据表)

比如要看数学成绩和写作成绩之间的相关关系,可以像下面这样运行:

m1 <- lm(data$math.score ~ data$writing.score, data)
summary(m1)

这样就非常简单地完成了线性回归分析。

误差、t 检验、p-value 等等,即使什么都不额外设置,也会给出可以直接写进论文的结果,非常方便。

面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-3

4. 绘制图表

画图也可以非常轻松地完成。

只要简单输入 plot(m1),大部分需要的图表就会自动绘制出来。

如果有想单独查看的数据,只要依次输入 x 轴和 y 轴的值,并用逗号分隔即可。

面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-4

5. 多元回归分析

当自变量很多时,只要在 lm 的自变量参数位置把所有变量用 + 号连接起来就行。

例如想看阅读成绩和数学成绩对写作成绩的影响,可以按下面这样分析:

m2 <- lm(data$writing.score ~ data$reading.score + data$math.score, data)
summary(m2)
面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-5

6. 类别变量处理(非数值数据的处理)

类别变量是指把数据划分为若干质性组或类别的变量。

这是为了处理像性别、学历这类非数值型数据。

这里先用最简单的性别来演示。

利用 ifelse() 函数,往 data 中加入一个名为 gender1 的虚拟变量。

data$gender1 <- ifelse(data$gender == "male", 0, 1)
// 第一条条件为真时赋值 0,为假时赋值 1
head(data)

这样之后再查看表格,就会发现新增了 gender1 这一列,女性为 1,男性为 0。

面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-6

现在就可以利用它来做线性回归分析了。

有趣的是,其实就算不做这些处理,直接把 gender 丢进去也可以完成分析。

m3 <- lm(data$math.score ~ data$gender, data)
plot(m3)

这是因为 R 会像我们上面那样,自动先处理字符型数据,然后再进行分析。

面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-7

性别只有两个类别,所以相对简单;但是像父母学历或分组这种包含多个类别的变量情况就有点不一样了。

如果有 n 个类别,就需要 n-1 个虚拟变量。

虽然也可以手动创建,但直接把灵魂托付给 R 似乎也未尝不可。

m4 <- lm(data$math.score ~ data$race.ethnicity, data)
summary(m4)
plot(m4)
面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-8面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-9

7. 利用 resid 计算并使用残差

通过 resid 可以计算每一项相对于线性回归曲线的残差。

利用残差可以检查数据是否呈线性、方差状况如何。

先进行数据分析,然后用一个自变量和分析结果来计算残差并绘制图形。

m5 <- lm(data$math.score ~ data$writing.score, data)
res1 <- resid(m5)

plot(data$writing.score, res1)
面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-10

画出图之后可以看到,实际数据的方差并不是等方差的。

这种情况下,就需要对各个数值的轴尺度进行调整。

8. 利用 R 进行交互作用分析——逐步回归分析

逐步回归分析是指逐个加入变量,检查其影响力的过程。

研究者当然可以手动逐个加入变量,但在 R 中这些都能自动完成。

m7 <- lm(data$math.score ~ ., data)
m8 <- step(m7, direction = "both")
summary(m8)
面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-11

这种方法虽然简单,但结果的解读会比较困难。

因此据说大家更偏好能根据研究者意图来分析的层级回归分析

9. 后记

我原本以为随便做个逐步回归,选一个解释力最强的模型,然后沿着 p-value 最低的方向下结论就行了,结果发现并不是这么回事。

R 的确很好用,但为了得到结论,研究者的思考过程仍然非常重要。

在学习之前,我一直觉得不用学 R,用 Python 就能解决一切,事实证明这是天大的误解。

如今,我开始膜拜 R 了。

面向教师的教育研究与统计分析研修——第13~20课时 R 实操汇总-12

관련 글

学校教室机器人吸尘器的运行方法
学校教室机器人吸尘器的运行方法
在教室里开始使用机器人吸尘器已经有4年了。今年我的目标是,我自己不再操心机器人吸尘器,而是让孩子们完全负责管理。1. 运行机器人吸尘器出乎意料、让我很惊讶的是,从来没有给机器人吸尘器做过清洁的孩子很多。即便是清空尘盒、把底部的刷子拆下来清理头发这种很简单的事情,也需要有人教。有时还会把刷子反着装上,...
学校事务自动化——用电子表格自动生成评价计划书初稿
学校事务自动化——用电子表格自动生成评价计划书初稿
随着 2022 修订课程标准的实施,科目变多了,相应地,每学期都要重新撰写评价计划书的情况也随之出现。问题在于,评价计划书要求把各单元的成就标准、成就水平等全部逐项填写,是一个形式化的工作。而这些标准又并不是教师自己撰写的内容,而只是单纯的复制+粘贴。于是我先把相关内容整理成表格,然后利用 Exce...
2026年东国大学未来社会教师能力提升论坛线下参与后记
2026年东国大学未来社会教师能力提升论坛线下参与后记
有位老师给我推荐了一项看起来很有趣的培训。是在东国大学举办的与 AI 相关的培训。是 AI 相关培训就已经很好了,结果还是在酒店举行的?那我无论如何都得去一趟了。在当天一开放报名我就立刻报了名,最后得以线下参加。1. 首尔安巴萨德铂尔曼酒店一开始还好奇为什么要在交通不是特别方便的这家酒店举办培训,去...
学校事务自动化——利用 AI 检查学生综合素质评价(生记簿)科目别“细部能力及特长事项”
学校事务自动化——利用 AI 检查学生综合素质评价(生记簿)科目别“细部能力及特长事项”
如果要在学校工作里选出一项最无意义、最辛苦、最无聊的,我会选生记簿检查。在初中,学生综合素质评价(生活记录簿)并不那么重要,但在高中它与升学直接相关,因此极其重要。问题在于,这样的生记簿检查最终找的无非就是简单的错别字、禁止填写用语、拼写等。这篇文章就是从这样的疑问开始的。现在这种简单检查,是不是已...
韩国教育博览会(2026)参观后记
韩国教育博览会(2026)参观后记
偶然通过 Instagram 得知了韩国教育博览会的活动信息。去年因为和别的活动撞期没能去成,所以今年无论如何都想去一趟。于是立刻就进行了提前预约。提前预约者的门票是 8,000 韩元,现场登记则是 15,000 韩元。听熟人说教师可以免费入场,但今年并不是这样。1. 入场券发放这次活动在 COEX...
2022 修订课程地球科学内容预览 - 第3单元 太阳系天体与恒星和宇宙的演化
2022 修订课程地球科学内容预览 - 第3单元 太阳系天体与恒星和宇宙的演化
这次是地球科学浏览的最后一篇。打算来看一下第3单元。1. 内容体系第3单元的内容体系,是从之前《地球科学1》的天体单元中删去了系外行星和生命体探测的内容,新增了原本在《地球科学2》中出现的太阳系模型以及日食和月食。和其他单元相比,内容明显有缩减的感觉。2. 第3单元成就标准一览[12지구03-01]...

댓글을 불러오는 중...