library(ISLR)
library(ggplot2)
library(caret)
Default

Modelo1

logit_reg<-glm(formula=default ~ balance, data=Default,
               family = binomial(link="logit"))
summary(logit_reg)

Call:
glm(formula = default ~ balance, family = binomial(link = "logit"), 
    data = Default)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.2697  -0.1465  -0.0589  -0.0221   3.7589  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -1.065e+01  3.612e-01  -29.49   <2e-16 ***
balance      5.499e-03  2.204e-04   24.95   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2920.6  on 9999  degrees of freedom
Residual deviance: 1596.5  on 9998  degrees of freedom
AIC: 1600.5

Number of Fisher Scoring iterations: 8
               
dominio<-seq(min(Default$balance), max(Default$balance),1)
pred<-predict(object = logit_reg,
              newdata = list(balance=dominio),
              type = "response")
plt.logit<-data.frame(dominio,pred)
colnames(plt.logit)<-c("Balance", "Probabilidad")
plt.logit

Grafica del modelo

ggplot(data = plt.logit, aes(x=Balance, y=Probabilidad))+
  geom_line(color="blue",size=1)+
  ggtitle("Modelo 1 - Regresion Logistica")+
  labs(x="Balance")+
  labs(y="Probabilidad")+
  theme_minimal()

nrow(Default)
[1] 10000
df.train<-Default[1:(0.7*(nrow(Default))), ]
df.test<-Default[(0.7*nrow(Default)):nrow(Default),]
logit_reg2<-glm(formula=default ~ balance, data=df.train,
               family = binomial(link="logit"))
summary(logit_reg2)

Call:
glm(formula = default ~ balance, family = binomial(link = "logit"), 
    data = df.train)

Deviance Residuals: 
    Min       1Q   Median       3Q      Max  
-2.3037  -0.1474  -0.0585  -0.0219   3.6909  

Coefficients:
              Estimate Std. Error z value Pr(>|z|)    
(Intercept) -1.069e+01  4.289e-01  -24.93   <2e-16 ***
balance      5.558e-03  2.625e-04   21.18   <2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for binomial family taken to be 1)

    Null deviance: 2090.7  on 6999  degrees of freedom
Residual deviance: 1128.9  on 6998  degrees of freedom
AIC: 1132.9

Number of Fisher Scoring iterations: 8
preds2<-predict(object = logit_reg2,
                newdata = df.test,
                type = "response")
df.results2<-data.frame(df.test$balance, Probabilidad=preds2)
df.results2

resultado de evaluar la probabilidad que esta dando el modelo

threshresults<-ifelse(df.results2$Probabilidad >= 0.5, "Yes", "No")
class(df.test$default)
[1] "factor"
levels(df.test$default)
[1] "No"  "Yes"
class(threshresults)
[1] "character"
confusionMatrix(as.factor(threshresults), df.test$default)
Confusion Matrix and Statistics

          Reference
Prediction   No  Yes
       No  2895   61
       Yes   13   32
                                          
               Accuracy : 0.9753          
                 95% CI : (0.9691, 0.9806)
    No Information Rate : 0.969           
    P-Value [Acc > NIR] : 0.02275         
                                          
                  Kappa : 0.4527          
 Mcnemar's Test P-Value : 4.665e-08       
                                          
            Sensitivity : 0.9955          
            Specificity : 0.3441          
         Pos Pred Value : 0.9794          
         Neg Pred Value : 0.7111          
             Prevalence : 0.9690          
         Detection Rate : 0.9647          
   Detection Prevalence : 0.9850          
      Balanced Accuracy : 0.6698          
                                          
       'Positive' Class : No              
                                          
LS0tDQp0aXRsZTogIlIgY2xhc2UgNyINCm91dHB1dDogaHRtbF9ub3RlYm9vaw0KLS0tDQoNCg0KDQpgYGB7cn0NCmxpYnJhcnkoSVNMUikNCmxpYnJhcnkoZ2dwbG90MikNCmxpYnJhcnkoY2FyZXQpDQpEZWZhdWx0DQpgYGANCiNNb2RlbG8xDQpgYGB7cn0NCmxvZ2l0X3JlZzwtZ2xtKGZvcm11bGE9ZGVmYXVsdCB+IGJhbGFuY2UsIGRhdGE9RGVmYXVsdCwNCiAgICAgICAgICAgICAgIGZhbWlseSA9IGJpbm9taWFsKGxpbms9ImxvZ2l0IikpDQpzdW1tYXJ5KGxvZ2l0X3JlZykNCiAgICAgICAgICAgICAgIA0KYGBgDQoNCmBgYHtyfQ0KZG9taW5pbzwtc2VxKG1pbihEZWZhdWx0JGJhbGFuY2UpLCBtYXgoRGVmYXVsdCRiYWxhbmNlKSwxKQ0KDQpwcmVkPC1wcmVkaWN0KG9iamVjdCA9IGxvZ2l0X3JlZywNCiAgICAgICAgICAgICAgbmV3ZGF0YSA9IGxpc3QoYmFsYW5jZT1kb21pbmlvKSwNCiAgICAgICAgICAgICAgdHlwZSA9ICJyZXNwb25zZSIpDQpwbHQubG9naXQ8LWRhdGEuZnJhbWUoZG9taW5pbyxwcmVkKQ0KY29sbmFtZXMocGx0LmxvZ2l0KTwtYygiQmFsYW5jZSIsICJQcm9iYWJpbGlkYWQiKQ0KcGx0LmxvZ2l0DQpgYGANCg0KI0dyYWZpY2EgZGVsIG1vZGVsbw0KDQpgYGB7cn0NCmdncGxvdChkYXRhID0gcGx0LmxvZ2l0LCBhZXMoeD1CYWxhbmNlLCB5PVByb2JhYmlsaWRhZCkpKw0KICBnZW9tX2xpbmUoY29sb3I9ImJsdWUiLHNpemU9MSkrDQogIGdndGl0bGUoIk1vZGVsbyAxIC0gUmVncmVzaW9uIExvZ2lzdGljYSIpKw0KICBsYWJzKHg9IkJhbGFuY2UiKSsNCiAgbGFicyh5PSJQcm9iYWJpbGlkYWQiKSsNCiAgdGhlbWVfbWluaW1hbCgpDQpgYGANCg0KYGBge3J9DQpucm93KERlZmF1bHQpDQpkZi50cmFpbjwtRGVmYXVsdFsxOigwLjcqKG5yb3coRGVmYXVsdCkpKSwgXQ0KDQpkZi50ZXN0PC1EZWZhdWx0WygwLjcqbnJvdyhEZWZhdWx0KSk6bnJvdyhEZWZhdWx0KSxdDQoNCmxvZ2l0X3JlZzI8LWdsbShmb3JtdWxhPWRlZmF1bHQgfiBiYWxhbmNlLCBkYXRhPWRmLnRyYWluLA0KICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwobGluaz0ibG9naXQiKSkNCg0Kc3VtbWFyeShsb2dpdF9yZWcyKQ0KYGBgDQoNCmBgYHtyfQ0KcHJlZHMyPC1wcmVkaWN0KG9iamVjdCA9IGxvZ2l0X3JlZzIsDQogICAgICAgICAgICAgICAgbmV3ZGF0YSA9IGRmLnRlc3QsDQogICAgICAgICAgICAgICAgdHlwZSA9ICJyZXNwb25zZSIpDQoNCmRmLnJlc3VsdHMyPC1kYXRhLmZyYW1lKGRmLnRlc3QkYmFsYW5jZSwgUHJvYmFiaWxpZGFkPXByZWRzMikNCmRmLnJlc3VsdHMyDQpgYGANCnJlc3VsdGFkbyBkZSBldmFsdWFyIGxhIHByb2JhYmlsaWRhZCBxdWUgZXN0YSBkYW5kbyBlbCBtb2RlbG8NCg0KYGBge3J9DQoNCnRocmVzaHJlc3VsdHM8LWlmZWxzZShkZi5yZXN1bHRzMiRQcm9iYWJpbGlkYWQgPj0gMC41LCAiWWVzIiwgIk5vIikNCg0KY2xhc3MoZGYudGVzdCRkZWZhdWx0KQ0KDQpsZXZlbHMoZGYudGVzdCRkZWZhdWx0KQ0KDQoNCg0KY2xhc3ModGhyZXNocmVzdWx0cykNCg0KY29uZnVzaW9uTWF0cml4KGFzLmZhY3Rvcih0aHJlc2hyZXN1bHRzKSwgZGYudGVzdCRkZWZhdWx0KQ0KYGBgDQoNCg==