[Rscript]0-1模型和定序回归模型(信用卡逾期行为的影响因素)

一、原始数据概况


其中逾期状态是定序数据,0表示没有逾期,数字越大,预期时间越长。

二、0-1回归
# 用于建模的数据集
mydata=data.frame(Y,gender,usage,limit,Newmortgage,Newtime,Newacc)

# Y1代表是否出现逾期,1表示逾期,0表示未逾期
Y1=Y;Y1[Y==0]=0;Y1[Y>0]=1				
# 是否逾期建模数据集
dat1=data.frame(Y1,gender,usage,limit,Newmortgage,Newtime,Newacc)
# 0-1回归全模型(logit)
glm.full=glm(as.factor(Y1)~gender+usage+limit+Newmortgage+Newtime+Newacc,data=dat1,family=binomial(link="logit"))
# 回归结果
summary(glm.full)
# 0-1回归空模型
glm.null <- glm(as.factor(Y1)~1,family=binomial(link="logit"))
# 0-1回归,全模型的显著性检验
anova(glm.null,glm.full,test="LRT")
# 预测和混淆矩阵
Y.glm=glm.full$fitted.values
table(Y1,1*(Y.glm>mean(Y1)))			#阈值选择样本均值
roc.glm=roc(Y1,Y.glm)
三、定序回归模型
### 建立定序回归模型
Y2=Y[Y>0];Y2[Y2>3]=3				#有逾期行为的因变量记做Y2,将逾期行为进行合并,大于60天合并成一类
dat2=mydata[Y>0,]					#有逾期行为的数据集
### logit定序回归 ###
# 空模型 #
logit0=polr(as.factor(Y2)~1,data=dat2,method="logistic",Hess=T)
# 全模型 #
logit1=polr(as.factor(Y2)~gender+usage+limit+Newmortgage+Newtime+Newacc,data=dat2,method="logistic",Hess=T)
# 全模型显著性检验 #
anova(logit0,logit1)
# 系数估计 #
summary(logit1)

### probit定序回归 ###
# 空模型 #
probit0=polr(as.factor(Y2)~1,data=dat2,method="probit",Hess=T)
# 全模型 #
probit1=polr(as.factor(Y2)~gender+usage+limit+Newmortgage+Newtime+Newacc,data=dat2,method="probit",Hess=T)
# 全模型显著性检验 #
anova(probit0,probit1)
# 系数估计 #
summary(probit1)

# logit定序回归预测和混淆矩阵 #
Y.logit=predict(logit1,dat2)
table(Y2,Y.logit)



猜你喜欢

转载自blog.csdn.net/tomocat/article/details/79282634
今日推荐