一、原始数据概况
其中逾期状态是定序数据,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)