dados = read.table("ClientesConcessionaria.csv",header=T,sep=";",dec=",") # Variável Status: 0 = adimplente # 1 = inadimplente names(dados) table(dados$Status) # head(dados) # Sorteio para amostras equilibradas df.1 <- dados[dados$Status==1,] df.0 <- dados[dados$Status==0,] n = 27 df.1.s <- df.1[sample(nrow(df.1), n), ] df.0.s <- df.0[sample(nrow(df.0), n), ] df.samp = merge(df.1.s,df.0.s,all=TRUE) rm(df.1,df.0,df.1.s,df.0.s,n) # table(df.samp$Status) names(df.samp) # ################################################################## # Análise Discriminante ########################################## library(DiscriMiner) modelo.D <- linDA(df.samp[,3:5], df.samp$Status) modelo.D[] dados2 <- dados[,3:5] classifica = classify(modelo.D, dados2) dados$Score0 <- classifica$scores[,1] dados$Score1 <- classifica$scores[,2] dados$classificações <- classifica$pred_class # # Tabulação cruzada: Status versus Classificação prevista tab.D <- table(dados$Status,dados$classificações) tab.D # # Acerto total do modelo acerto.D <- (tab.D[1] + tab.D[4])/sum(tab.D) acerto.D # ################################################################## # Regressão Logística ############################################ modelo.RL = glm(Status ~ Renda + Dependentes + VinculoEmpr, family = "binomial",data=df.samp) modelo.RL summary(modelo.RL) # Gravando resultados df.samp$prob.RL = modelo.RL$fitted.values df.samp$gx.RL = modelo.RL$linear.predictors df.samp$prev.RL = round(modelo.RL$fitted.values) # # Tabulação cruzada: Status versus Classificação prevista tab.RL = table(df.samp$prev.RL,df.samp$Status) tab.RL # Acerto total do modelo acerto.RL <- (tab.RL[1] + tab.RL[4])/sum(tab.RL) acerto.RL # dados$Prob = predict(dados,object = modelo.RL,type ="response") dados$Linear = predict(dados,object = modelo.RL) head(dados) dados$Prev = round(predict(dados,object = modelo.RL,type ="response")) head(dados) # tab.RL.t= table(dados$Prev,dados$Status) tab.RL.t # Acerto total do modelo acerto.RL.t <- (tab.RL.t[1] + tab.RL.t[4])/sum(tab.RL.t) acerto.RL.t # # # Gráficos boxplot(dados$Prob~dados$Status) plot(dados$z.RL,dados$prob.RL) # library(googleVis) dados$Ano = 2015 dados$Id = c(1:92) head(dados) # mchart = gvisMotionChart(data=dados,idvar="ID.Cliente",timevar="Ano", xvar="Linear", yvar="Prob",sizevar="Renda", colorvar="Status", options=list(width=1000, height=600)) # plot(mchart) # # -------------------------------------------------------------