Nombre: Oscar Padilla
Carné: 13000285
Clase: Econometria I
————————————————————————————————-
-DataSet = Social_Network_Ads
User ID = Código de identificación de usuario conectado en redes sociales
Gender = Género (Masculino o Femenino)
Age = Edad
EstimatedSalary = Salario aproximado
Purchased = Compra (1 si compro, 0 no compro)
library(ISLR)
library(ggplot2)
library(caret)
Loading required package: lattice
library(readr)
Social_Network_Ads <- read_csv("Social_Network_Ads.csv")
Parsed with column specification:
cols(
`User ID` = col_integer(),
Gender = col_character(),
Age = col_integer(),
EstimatedSalary = col_integer(),
Purchased = col_integer()
)
View(Social_Network_Ads)
Modelo
La probabilidad de que una persona según su edad compre a través de publicidad en redes sociales
Variables utilizadas: Purchased, Age
logit_reg<-glm(formula=Purchased ~ Age, data=Social_Network_Ads,
family = binomial(link="logit"))
summary(logit_reg)
Call:
glm(formula = Purchased ~ Age, family = binomial(link = "logit"),
data = Social_Network_Ads)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.5091 -0.6548 -0.2923 0.5706 2.4470
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -8.04414 0.78417 -10.258 <2e-16 ***
Age 0.18895 0.01915 9.866 <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: 521.57 on 399 degrees of freedom
Residual deviance: 336.26 on 398 degrees of freedom
AIC: 340.26
Number of Fisher Scoring iterations: 5
dominio<-seq(min(Social_Network_Ads$Age), max(Social_Network_Ads$Age),1)
pred<-predict(object = logit_reg,
newdata = list(Age=dominio),
type = "response")
plt.logit<-data.frame(dominio,pred)
colnames(plt.logit)<-c("Age", "Probabilidad")
plt.logit
Gráfica del modelo
————————————————————————————————-
Viendo la gráfica podemos decir que las personas a partir de los 42 años de edad tienen una probabilidad más alta que realicen una compra a través de publicidad en redes sociales
ggplot(data = plt.logit, aes(x=Age, y=Probabilidad))+
geom_line(color="blue",size=1)+
ggtitle("Modelo - Regresión Logistica")+
labs(x="Edad")+
labs(y="Probabilidad")+
theme_minimal()

Tomamos únicamente el 70% de la data para hacer pruebas y entrenar a nuestro sistema
nrow(Social_Network_Ads)
[1] 400
df.train<-Social_Network_Ads[1:(0.7*(nrow(Social_Network_Ads))), ]
df.test<-Social_Network_Ads[(0.7*nrow(Social_Network_Ads)):nrow(Social_Network_Ads),]
logit_reg2<-glm(formula=Purchased ~ Age, data=df.train,
family = binomial(link="logit"))
summary(logit_reg2)
Call:
glm(formula = Purchased ~ Age, family = binomial(link = "logit"),
data = df.train)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.1803 -0.6325 -0.3487 -0.1734 2.3793
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -7.03011 0.82170 -8.556 < 2e-16 ***
Age 0.15779 0.02056 7.673 1.68e-14 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 312.69 on 279 degrees of freedom
Residual deviance: 219.25 on 278 degrees of freedom
AIC: 223.25
Number of Fisher Scoring iterations: 5
preds2<-predict(object = logit_reg2,
newdata = df.test,
type = "response")
df.results2<-data.frame(df.test$Age, Probabilidad=preds2)
df.results2
Resultado de evaluar la probabilidad que nos devuelve el modelo
threshresults<-ifelse(df.results2$Probabilidad >= 0.5, "Yes", "No")
df.test$Purchased<-as.factor(df.test$Purchased)
levels(df.test$Purchased)<-c("No","Yes")
#class(df.test$Purchased)
#levels(df.test$Purchased)
#class(threshresults)
confusionMatrix(as.factor(threshresults), df.test$Purchased)
Confusion Matrix and Statistics
Reference
Prediction No Yes
No 42 21
Yes 4 54
Accuracy : 0.7934
95% CI : (0.7103, 0.8616)
No Information Rate : 0.6198
P-Value [Acc > NIR] : 3.204e-05
Kappa : 0.5908
Mcnemar's Test P-Value : 0.001374
Sensitivity : 0.9130
Specificity : 0.7200
Pos Pred Value : 0.6667
Neg Pred Value : 0.9310
Prevalence : 0.3802
Detection Rate : 0.3471
Detection Prevalence : 0.5207
Balanced Accuracy : 0.8165
'Positive' Class : No
Conclusiones:
————————————————————————————————-
-Para los problemas de dos clases, la sensibilidad, la especificidad, el valor predictivo positivo y el valor predictivo negativo se calculan utilizando el argumento positivo.
Suponemos una matriz de \(2x2\) :
Entonces:
\[Sensivity = A/(A+C)\]
\[Specificity = D/(B+D)\]
Matriz de Confusión:
Positivo Verdadero:
Interpretación: Se predice que es positivo y es verdad
Negativo Verdadero:
Interpretación: Se predice que es negativo y es verdad
Positivo Falso:
Interpretación: Se predice que es positivo y es falso
Negativo Falso:
Interpretación: Se predice que es falso y es falso
Accuracy:
La precisión general que tienen nuestras predicciones.
Sensitivity(Tasa verdadera positiva):
Que tan bien predice nuestro modelo que sea positivo verdadero
Specificity (Tasa negativa verdadera):
Que tan bien predice nuestro modelo que sea negativo verdadero
————————————————————————————————-
Accuracy = 0.7934
Sensitivity = 0.9130
Specificity = 0.72
Conclusión Final:
Podemos decir que el modelo en general predice en un 79% de una forma éxitosa, el modelo es muy bueno para predecir que es positivo verdadero con un 91% o sea que predice muy bien que a partir de los 42 años es muy probable que la persona realice la compra por medio de la publicidad que aparece en redes sociales y el modelo no es tan bueno para predecir que es negativo verdadero con un 72% o sea que a partir de los 42 años es poco probable que una persona realice la compra por medio de la publicidad que aparece en redes sociales.
LS0tDQp0aXRsZTogIlByb3llY3RvIEZpbmFsIC0gUmVncmVzacOzbiBMb2fDrXN0aWNhIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCiMjI05vbWJyZTogT3NjYXIgUGFkaWxsYQ0KIyMjQ2FybsOpOiAxMzAwMDI4NQ0KIyMjQ2xhc2U6IEVjb25vbWV0cmlhIEkNCiFbXShnYWxpbGVvX2xvZ28ucG5nKQ0KDQojIyMjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyMjIyAtRGF0YVNldCA9IFNvY2lhbF9OZXR3b3JrX0Fkcw0KIyMjIyMgICBVc2VyIElEID0gQ8OzZGlnbyBkZSBpZGVudGlmaWNhY2nDs24gZGUgdXN1YXJpbyBjb25lY3RhZG8gZW4gcmVkZXMgc29jaWFsZXMNCiMjIyMjICAgR2VuZGVyID0gR8OpbmVybyAoTWFzY3VsaW5vIG8gRmVtZW5pbm8pDQojIyMjIyAgIEFnZSA9IEVkYWQNCiMjIyMjICAgRXN0aW1hdGVkU2FsYXJ5ID0gU2FsYXJpbyBhcHJveGltYWRvDQojIyMjIyAgIFB1cmNoYXNlZCA9IENvbXByYSAoMSBzaSBjb21wcm8sIDAgbm8gY29tcHJvKQ0KDQpgYGB7ciBsaWJyZXJpYXN9DQpsaWJyYXJ5KElTTFIpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KGNhcmV0KQ0KbGlicmFyeShyZWFkcikNClNvY2lhbF9OZXR3b3JrX0FkcyA8LSByZWFkX2NzdigiU29jaWFsX05ldHdvcmtfQWRzLmNzdiIpDQpTb2NpYWxfTmV0d29ya19BZHMNCmBgYA0KDQojTW9kZWxvDQojIyMjIExhIHByb2JhYmlsaWRhZCBkZSBxdWUgdW5hIHBlcnNvbmEgc2Vnw7puIHN1IGVkYWQgY29tcHJlIGEgdHJhdsOpcyBkZSBwdWJsaWNpZGFkIGVuIHJlZGVzIHNvY2lhbGVzDQojIyMjIyBWYXJpYWJsZXMgdXRpbGl6YWRhczogUHVyY2hhc2VkLCBBZ2UNCmBgYHtyfQ0KbG9naXRfcmVnPC1nbG0oZm9ybXVsYT1QdXJjaGFzZWQgfiBBZ2UsIGRhdGE9U29jaWFsX05ldHdvcmtfQWRzLA0KICAgICAgICAgICAgICAgZmFtaWx5ID0gYmlub21pYWwobGluaz0ibG9naXQiKSkNCnN1bW1hcnkobG9naXRfcmVnKQ0KYGBgDQoNCmBgYHtyfQ0KZG9taW5pbzwtc2VxKG1pbihTb2NpYWxfTmV0d29ya19BZHMkQWdlKSwgbWF4KFNvY2lhbF9OZXR3b3JrX0FkcyRBZ2UpLDEpDQoNCnByZWQ8LXByZWRpY3Qob2JqZWN0ID0gbG9naXRfcmVnLA0KICAgICAgICAgICAgICBuZXdkYXRhID0gbGlzdChBZ2U9ZG9taW5pbyksDQogICAgICAgICAgICAgIHR5cGUgPSAicmVzcG9uc2UiKQ0KcGx0LmxvZ2l0PC1kYXRhLmZyYW1lKGRvbWluaW8scHJlZCkNCmNvbG5hbWVzKHBsdC5sb2dpdCk8LWMoIkFnZSIsICJQcm9iYWJpbGlkYWQiKQ0KcGx0LmxvZ2l0DQpgYGANCg0KI0dyw6FmaWNhIGRlbCBtb2RlbG8NCiMjIyMtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQojIyMjIFZpZW5kbyBsYSBncsOhZmljYSBwb2RlbW9zIGRlY2lyIHF1ZSBsYXMgcGVyc29uYXMgYSBwYXJ0aXIgZGUgbG9zIDQyIGHDsW9zIGRlIGVkYWQgdGllbmVuIHVuYSBwcm9iYWJpbGlkYWQgbcOhcyBhbHRhIHF1ZSByZWFsaWNlbiB1bmEgY29tcHJhIGEgdHJhdsOpcyBkZSBwdWJsaWNpZGFkIGVuIHJlZGVzIHNvY2lhbGVzIA0KYGBge3J9DQpnZ3Bsb3QoZGF0YSA9IHBsdC5sb2dpdCwgYWVzKHg9QWdlLCB5PVByb2JhYmlsaWRhZCkpKw0KICBnZW9tX2xpbmUoY29sb3I9ImJsdWUiLHNpemU9MSkrDQogIGdndGl0bGUoIk1vZGVsbyAtIFJlZ3Jlc2nDs24gTG9naXN0aWNhIikrDQogIGxhYnMoeD0iRWRhZCIpKw0KICBsYWJzKHk9IlByb2JhYmlsaWRhZCIpKw0KICB0aGVtZV9taW5pbWFsKCkNCmBgYA0KDQojIyMjIFRvbWFtb3Mgw7puaWNhbWVudGUgZWwgNzAlIGRlIGxhIGRhdGEgcGFyYSBoYWNlciBwcnVlYmFzIHkgZW50cmVuYXIgYSBudWVzdHJvIHNpc3RlbWENCmBgYHtyfQ0KbnJvdyhTb2NpYWxfTmV0d29ya19BZHMpDQpkZi50cmFpbjwtU29jaWFsX05ldHdvcmtfQWRzWzE6KDAuNyoobnJvdyhTb2NpYWxfTmV0d29ya19BZHMpKSksIF0NCg0KZGYudGVzdDwtU29jaWFsX05ldHdvcmtfQWRzWygwLjcqbnJvdyhTb2NpYWxfTmV0d29ya19BZHMpKTpucm93KFNvY2lhbF9OZXR3b3JrX0FkcyksXQ0KDQpsb2dpdF9yZWcyPC1nbG0oZm9ybXVsYT1QdXJjaGFzZWQgfiBBZ2UsIGRhdGE9ZGYudHJhaW4sDQogICAgICAgICAgICAgICBmYW1pbHkgPSBiaW5vbWlhbChsaW5rPSJsb2dpdCIpKQ0KDQpzdW1tYXJ5KGxvZ2l0X3JlZzIpDQpgYGANCg0KYGBge3J9DQpwcmVkczI8LXByZWRpY3Qob2JqZWN0ID0gbG9naXRfcmVnMiwNCiAgICAgICAgICAgICAgICBuZXdkYXRhID0gZGYudGVzdCwNCiAgICAgICAgICAgICAgICB0eXBlID0gInJlc3BvbnNlIikNCg0KZGYucmVzdWx0czI8LWRhdGEuZnJhbWUoZGYudGVzdCRBZ2UsIFByb2JhYmlsaWRhZD1wcmVkczIpDQpkZi5yZXN1bHRzMg0KYGBgDQoNCiMjIyNSZXN1bHRhZG8gZGUgZXZhbHVhciBsYSBwcm9iYWJpbGlkYWQgcXVlIG5vcyBkZXZ1ZWx2ZSBlbCBtb2RlbG8NCmBgYHtyfQ0KdGhyZXNocmVzdWx0czwtaWZlbHNlKGRmLnJlc3VsdHMyJFByb2JhYmlsaWRhZCA+PSAwLjUsICJZZXMiLCAiTm8iKQ0KDQpkZi50ZXN0JFB1cmNoYXNlZDwtYXMuZmFjdG9yKGRmLnRlc3QkUHVyY2hhc2VkKQ0KbGV2ZWxzKGRmLnRlc3QkUHVyY2hhc2VkKTwtYygiTm8iLCJZZXMiKQ0KDQojY2xhc3MoZGYudGVzdCRQdXJjaGFzZWQpDQojbGV2ZWxzKGRmLnRlc3QkUHVyY2hhc2VkKQ0KDQoNCiNjbGFzcyh0aHJlc2hyZXN1bHRzKQ0KDQpjb25mdXNpb25NYXRyaXgoYXMuZmFjdG9yKHRocmVzaHJlc3VsdHMpLCBkZi50ZXN0JFB1cmNoYXNlZCkNCmBgYA0KDQojQ29uY2x1c2lvbmVzOg0KIyMjIy0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0NCiMjIyMgLVBhcmEgbG9zIHByb2JsZW1hcyBkZSBkb3MgY2xhc2VzLCBsYSBzZW5zaWJpbGlkYWQsIGxhIGVzcGVjaWZpY2lkYWQsIGVsIHZhbG9yIHByZWRpY3Rpdm8gcG9zaXRpdm8geSBlbCB2YWxvciBwcmVkaWN0aXZvIG5lZ2F0aXZvIHNlIGNhbGN1bGFuIHV0aWxpemFuZG8gZWwgYXJndW1lbnRvIHBvc2l0aXZvLg0KIyMjIyBTdXBvbmVtb3MgdW5hIG1hdHJpeiBkZSAkMngyJCA6DQp8KipQcmVkaWN0ZWQqKnwgJEV2ZW50JCB8ICRObyQgJEV2ZW50JCB8DQp8IDotLS0tLS0tLS0tLS0tOiB8IDotLS0tLTogfCA6LS0tLS06IHwNCnwqKkV2ZW50KiogICAgICB8IEEgfCBCIHwNCnwqKk5vIEV2ZW50KiogICAgICB8IEMgfCBEIHwNCiMjI0VudG9uY2VzOg0KIyMgJCRTZW5zaXZpdHkgPSBBLyhBK0MpJCQgDQojIyAkJFNwZWNpZmljaXR5ID0gRC8oQitEKSQkDQojIyBNYXRyaXogZGUgQ29uZnVzacOzbjoNCiMjIyBQb3NpdGl2byBWZXJkYWRlcm86DQojIyMjIEludGVycHJldGFjacOzbjogU2UgcHJlZGljZSBxdWUgZXMgcG9zaXRpdm8geSBlcyB2ZXJkYWQNCiMjIyBOZWdhdGl2byBWZXJkYWRlcm86DQojIyMjIEludGVycHJldGFjacOzbjogU2UgcHJlZGljZSBxdWUgZXMgbmVnYXRpdm8geSBlcyB2ZXJkYWQNCiMjIyBQb3NpdGl2byBGYWxzbzoNCiMjIyMgSW50ZXJwcmV0YWNpw7NuOiBTZSBwcmVkaWNlIHF1ZSBlcyBwb3NpdGl2byB5IGVzIGZhbHNvDQojIyMgTmVnYXRpdm8gRmFsc286DQojIyMjIEludGVycHJldGFjacOzbjogU2UgcHJlZGljZSBxdWUgZXMgZmFsc28geSBlcyBmYWxzbw0KIyMjIEFjY3VyYWN5Og0KIyMjIyBMYSBwcmVjaXNpw7NuIGdlbmVyYWwgcXVlIHRpZW5lbiBudWVzdHJhcyBwcmVkaWNjaW9uZXMuDQojIyMgU2Vuc2l0aXZpdHkoVGFzYSB2ZXJkYWRlcmEgcG9zaXRpdmEpOg0KIyMjIyBRdWUgdGFuIGJpZW4gcHJlZGljZSBudWVzdHJvIG1vZGVsbyBxdWUgc2VhIHBvc2l0aXZvIHZlcmRhZGVybw0KIyMjIFNwZWNpZmljaXR5IChUYXNhIG5lZ2F0aXZhIHZlcmRhZGVyYSk6DQojIyMjIFF1ZSB0YW4gYmllbiBwcmVkaWNlIG51ZXN0cm8gbW9kZWxvIHF1ZSBzZWEgbmVnYXRpdm8gdmVyZGFkZXJvDQojIyMjLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQ0KIyMjIyBBY2N1cmFjeSA9IDAuNzkzNA0KIyMjIyBTZW5zaXRpdml0eSA9IDAuOTEzMA0KIyMjIyBTcGVjaWZpY2l0eSA9IDAuNzINCiMjIyBDb25jbHVzacOzbiBGaW5hbDogDQojIyMjIFBvZGVtb3MgZGVjaXIgcXVlIGVsIG1vZGVsbyBlbiBnZW5lcmFsIHByZWRpY2UgZW4gdW4gNzklIGRlIHVuYSBmb3JtYSDDqXhpdG9zYSwgZWwgbW9kZWxvIGVzIG11eSBidWVubyBwYXJhIHByZWRlY2lyIHF1ZSBlcyBwb3NpdGl2byB2ZXJkYWRlcm8gY29uIHVuIDkxJSBvIHNlYSBxdWUgcHJlZGljZSBtdXkgYmllbiBxdWUgYSBwYXJ0aXIgZGUgbG9zIDQyIGHDsW9zIGVzIG11eSBwcm9iYWJsZSBxdWUgbGEgcGVyc29uYSByZWFsaWNlIGxhIGNvbXByYSBwb3IgbWVkaW8gZGUgbGEgcHVibGljaWRhZCBxdWUgYXBhcmVjZSBlbiByZWRlcyBzb2NpYWxlcyB5IGVsIG1vZGVsbyBubyBlcyB0YW4gYnVlbm8gcGFyYSBwcmVkZWNpciBxdWUgZXMgbmVnYXRpdm8gdmVyZGFkZXJvIGNvbiB1biA3MiUgbyBzZWEgcXVlIGEgcGFydGlyIGRlIGxvcyA0MiBhw7FvcyBlcyBwb2NvIHByb2JhYmxlIHF1ZSB1bmEgcGVyc29uYSByZWFsaWNlIGxhIGNvbXByYSBwb3IgbWVkaW8gZGUgbGEgcHVibGljaWRhZCBxdWUgYXBhcmVjZSBlbiByZWRlcyBzb2NpYWxlcy4=