回归模型来预测学生在R

时间:2019-02-11 23:40:15

标签: 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')

假设我们只有以下变量:

年龄,性别,邮政,邮政编码等级 20楼3191 89.6 20 M 3930 99 20楼3126 99.2 21 M 3910 94.65

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

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

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

1 个答案:

答案 0 :(得分:0)

您要寻找的是线性回归模型。 在R中,它用lm()调用。您可以阅读更多here。 您可能需要拟合一个预测成绩的模型,然后对“年龄”增加1的数据运行该模型,因为大概这是明年唯一会改变的属性。

假设您的数据在一个名为data的数据框中,则看起来像这样:

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

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

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