首页 > 解决方案 > R中预测学生成绩的回归模型

问题描述

拜托我需要你的帮忙!

我有 2017 年的数据,其中包含以下变量:

年龄数字

性别性别值 M=男性,F=女性,X=不确定/双性人/未指定

邮政编码数字代码

住宅邮政编码1 = 主要城市,2 = 内区,3 = 外区,4 = 偏远和 5 = 非常偏远 社会经济:*0-99,其中 0 为低社会经济,99 为高 *

学校代码:数字代码

第一父母的教育程度数字

第二父母的教育程度数字

等级0到100之间的数字

我想对 2017 年的数据进行训练,以预测学生在 2018 年的成绩(例如,如果我们有一个学生的成绩为 80,而在 2018 年,我们有一个学生的变量相同或非常相似,所以预测的成绩应该接近 80)

///////////////////////////////////////// //////////////////////////

谢谢你,生机勃勃!我已经使用了你的脚本,我得到了结果!这是我使用的脚本和数据:

data<-read.csv("Olddata.csv")
newdata<-read.csv("Newdata.csv")

model <- lm(Age~., data=data)
nextYear <- data
nextYear$Age <- nextYear$Age + 1
results <- predict(model, newdata=nextYear, type='response')

假设我们只有以下变量:

年龄 性别 Postal.Postcode Grade 20 F 3191 89.6 20 M 3930 99 20 F 3126 99.2 21 M 3910 94.65

并且 newdata 可以是具有相同数量变量的任何东西。

输出类似于:1 2 3 4
20.09547 20.48317 19.82224 20.55038

但实际上,我想要的输出是 100 分中每个学生的实际成绩!

标签: r

解决方案


您正在寻找的是线性回归模型。在 R 中,它使用lm(). 你可以在这里阅读更多。您需要拟合一个预测成绩的模型,然后在年龄递增 1 的数据上运行该模型,因为据推测,这是明年唯一会改变的属性。

假设您的数据位于名为 data 的数据框中,它看起来像这样:

model <- lm(Age~., data=data)

nextYear <- data
nextYear$Age <- nextYear$Age + 1
results <- predict(model, newdata=nextYear, type='response')

确保所有非数字列都是因子。


推荐阅读