请帮助我!
我有以下变量的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)!
答案 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')
确保所有非数字列都是因子。