建立多分类logistic模型的R语言代码

时间:2022-04-28 23:40:04

setwd("C:/Users/lenovo/Desktop/回归121日成果") #设定当前的工作目录

cere=read.table("shuju.txt",header=T)

cere

#使用multinom做多类别logistic回归

library(nnet)

mult.cere<-multinom(y~x1+x2+x3,data=cere)

summary(mult.cere)

mult.cere1<-update(mult.cere,~.-1)#做系数的显著性检验

mult.cere2<-update(mult.cere,~.-x1)

mult.cere3<-update(mult.cere,~.-x2)

mult.cere4<-update(mult.cere,~.-x3)

anova(mult.cere,mult.cere1)

anova(mult.cere,mult.cere2)

anova(mult.cere,mult.cere3)

anova(mult.cere,mult.cere4)

step.cere<-step(mult.cere)  #逐步回归选元

summary(step.cere)

exp(coef(step.cere))#用以解释模型

cere.pred<-predict(step.cere) #做预测

cere.pred

table(cere$y,cere.pred)

n<-table(cere$y,cere.pred);n  #预测正确的百分比

Category<-levels(cere$y)

Percantage<-c(n[1,1]/sum(n[1,]),n[2,2]/sum(n[2,]),n[3,3]/sum(n[3,]))

rbind(Category,Percantage)

cere.pred2<-predict(step.cere,type="p")

cere.pred2