全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
7894 1
2018-08-22
回归方程中希望对每个变量进行遍历,计算每个变量的回归准确率,有什么方法可以实现呢?
例如:
install.packages("AER")
mylr=glm(CHOICE~PURPOSE+OVTRAIL+TCRAIL+CHANGES,family=binomial(link="logit"),data=traindata)
logodds<-predict(mylr)
traindata<-data.frame(traindata,logodds)
odds<-exp(traindata$logodds)
traindata<-data.frame(traindata,odds)
p=traindata$odds/(1+traindata$odds)
traindata<-data.frame(traindata,p)
Class<-numeric(length(traindata$p))
Class[traindata$p<0.5]<-0
Class[traindata$p>=0.5]<-1
traindata<-data.frame(traindata,Class)
confusionmatrix<-table(traindata$CHOICE,traindata$Class)
confusionmatrix
accuracy=(confusionmatrix[1,1]+confusionmatrix[2,2])/sum(confusionmatrix)
accuracy

现在希望CHOICE变量对purpose、ovtrail、tcrail、changes分别进行回归分析,本来希望通过for循环来做的。
如:
install.packages("AER")
for (i in 2:nrow(mydata))
{
traindata$variable<-traindata[,i]
mylr=glm(CHOICE~variable,family=binomial(link="logit"),data=traindata)
logodds<-predict(mylr)
traindata<-data.frame(traindata,logodds)
odds<-exp(traindata$logodds)
traindata<-data.frame(traindata,odds)
p=traindata$odds/(1+traindata$odds)
traindata<-data.frame(traindata,p)
Class<-numeric(length(traindata$p))
Class[traindata$p<0.5]<-0
Class[traindata$p>=0.5]<-1
traindata<-data.frame(traindata,Class)
confusionmatrix<-table(traindata$CHOICE,traindata$Class)
confusionmatrix
accuracy=(confusionmatrix[1,1]+confusionmatrix[2,2])/sum(confusionmatrix)
accuracy

}

显示错误:
Error in `contrasts<-`(`*tmp*`, value = contr.funs[1 + isOF[nn]]) :
  对比只适用于有两个或多于两个层次的因子


要不就是:
变量只能使用character变量,想请教下各位,这种回归遍历有什么办法能够实现,而不需要每个都手动输入获得训练数据的准确率。 屏幕快照 2018-08-21 下午12.13.11.png
附图,如果代码看不清,可以看图片。。。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2018-8-31 10:09:24
重新编码
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群