r语言做二分类logistic回归分析
2017-03-02 18:45
483 查看
#第1步:读入数据
setwd("C:/Users/IBM/Desktop/logsistic建模/3.2建模")#设定当前的工作目录,重要!
safe<-read.csv("model2.csv",header=T)
str(safe) #看表头
colnames(safe)#看列名
attach(safe)
cor(safe) #变量间相关系数阵
#第2步:使用glm函数计算.
glm.safe<-glm(is_run~reg_age+reg_life+heart_num+max_period
+min_period+median25_period+median50_period+median75_period
+lost_num_m30+avg_income_fund+avg_amt_fund+avg_nums_fund
+avg_amt_p2p+avg_nums_p2p+log_num+avg_income_p2p
,data=safe,family=binomial)#logistic模型
summary(glm.safe)
#第3步:逐步回归
glm.safe1<-step(glm.safe)
summary(glm.safe1)#逐步回归
#第4步:模型解读
coef(glm.safe1)#用以解释模型
exp(glm.safe1$coefficients) #解释Odds比与x的关系
exp(confint(glm.safe1)) #回归系数的置信区间
xp05<-0/glm.safe1$coefficients[]
xp05 #求使得pi为0.5的x
ratio05<-glm.safe1$coefficients[]*0.25
ratio05 #pi为0.5处的pi关于x的变化率
#第5步:模型评价
#5.1计算决定系数
R2cox<-1-exp((glm.safe1$deviance-glm.safe1$null.deviance)/length(is_run))
#5.2计算Cox-Snell拟合优度
cat("Cox-Snell R2=",R2cox,"\n")
R2nag<-R2cox/(1-exp((-glm.safe1$null.deviance)/length(is_run)))
#5.3计算Nagelkerke拟合优度
cat("Nagelkerke R2=",R2nag,"\n")
#5.4残差分析
plot(residuals(glm.safe1))
#5.5异常值诊断
library(car)
influencePlot(glm.safe1)
#第6步:分类表
fitt.pi<-fitted(glm.safe1)#同predict(glm.safe1,data.frame(x2=x2),type="resp")
ypred<-1*(fitt.pi>0.5) #1*逻辑变量就变成了0和1变量
ypred
length(ypred)
n<-table(safe$is_run,ypred)
n
Percantage<-c(n[1,1]/sum(n[1,]),n[2,2]/sum(n[2,]))
Percantage
rbind(Category,Percantage)
setwd("C:/Users/IBM/Desktop/logsistic建模/3.2建模")#设定当前的工作目录,重要!
safe<-read.csv("model2.csv",header=T)
str(safe) #看表头
colnames(safe)#看列名
attach(safe)
cor(safe) #变量间相关系数阵
#第2步:使用glm函数计算.
glm.safe<-glm(is_run~reg_age+reg_life+heart_num+max_period
+min_period+median25_period+median50_period+median75_period
+lost_num_m30+avg_income_fund+avg_amt_fund+avg_nums_fund
+avg_amt_p2p+avg_nums_p2p+log_num+avg_income_p2p
,data=safe,family=binomial)#logistic模型
summary(glm.safe)
#第3步:逐步回归
glm.safe1<-step(glm.safe)
summary(glm.safe1)#逐步回归
#第4步:模型解读
coef(glm.safe1)#用以解释模型
exp(glm.safe1$coefficients) #解释Odds比与x的关系
exp(confint(glm.safe1)) #回归系数的置信区间
xp05<-0/glm.safe1$coefficients[]
xp05 #求使得pi为0.5的x
ratio05<-glm.safe1$coefficients[]*0.25
ratio05 #pi为0.5处的pi关于x的变化率
#第5步:模型评价
#5.1计算决定系数
R2cox<-1-exp((glm.safe1$deviance-glm.safe1$null.deviance)/length(is_run))
#5.2计算Cox-Snell拟合优度
cat("Cox-Snell R2=",R2cox,"\n")
R2nag<-R2cox/(1-exp((-glm.safe1$null.deviance)/length(is_run)))
#5.3计算Nagelkerke拟合优度
cat("Nagelkerke R2=",R2nag,"\n")
#5.4残差分析
plot(residuals(glm.safe1))
#5.5异常值诊断
library(car)
influencePlot(glm.safe1)
#第6步:分类表
fitt.pi<-fitted(glm.safe1)#同predict(glm.safe1,data.frame(x2=x2),type="resp")
ypred<-1*(fitt.pi>0.5) #1*逻辑变量就变成了0和1变量
ypred
length(ypred)
n<-table(safe$is_run,ypred)
n
Percantage<-c(n[1,1]/sum(n[1,]),n[2,2]/sum(n[2,]))
Percantage
rbind(Category,Percantage)
相关文章推荐
- 第七篇:Logistic回归分类算法原理分析与代码实现
- R语言与机器学习学习笔记(分类算法)(6)logistic回归
- Logistic回归分类算法原理分析与代码实现
- 用于预测分析的分类与回归
- R语言与回归分析学习笔记(应用回归小结)(2)
- 利用R语言如何计算出回归分析中的t值和P值
- 一元回归分析r语言代码
- logistic回归分类
- 分类算法之logistic 回归模型
- 【机器学习实战三:Logistic回归之点的二分类和预测病马的死亡率】
- R语言与数据分析之三:分类算法2
- 用R语言做回归分析_iris数据集/longley数据集
- R语言-简单回归分析
- R语言与回归分析学习笔记(bootstrap method)
- R语言之回归分析篇
- R语言与回归分析学习笔记(应用回归小结)(1)
- 分类数据之logistic回归
- Logistic 回归线性回归-概率分析
- Logistic回归多分类之鸢尾花
- 使用逻辑回归进行MNIST分类(Classifying MNIST using Logistic Regressing)