taller2 = read.table("taller2.csv",
header =TRUE, sep = ",", dec = ".", row.names = 1,
stringsAsFactors = TRUE)
summary(taller2)
## gender SeniorCitizen Partner Dependents tenure
## Female:3488 Min. :0.0000 No :3641 No :4933 Min. : 0.00
## Male :3555 1st Qu.:0.0000 Yes:3402 Yes:2110 1st Qu.: 9.00
## Median :0.0000 Median :29.00
## Mean :0.1621 Mean :32.37
## 3rd Qu.:0.0000 3rd Qu.:55.00
## Max. :1.0000 Max. :72.00
##
## PhoneService MultipleLines InternetService
## No : 682 No :3390 DSL :2421
## Yes:6361 No phone service: 682 Fiber optic:3096
## Yes :2971 No :1526
##
##
##
##
## OnlineSecurity OnlineBackup
## No :3498 No :3088
## No internet service:1526 No internet service:1526
## Yes :2019 Yes :2429
##
##
##
##
## DeviceProtection TechSupport
## No :3095 No :3473
## No internet service:1526 No internet service:1526
## Yes :2422 Yes :2044
##
##
##
##
## StreamingTV StreamingMovies Contract
## No :2810 No :2785 Month-to-month:3875
## No internet service:1526 No internet service:1526 One year :1473
## Yes :2707 Yes :2732 Two year :1695
##
##
##
##
## PaperlessBilling PaymentMethod MonthlyCharges
## No :2872 Bank transfer (automatic):1544 Min. : 18.25
## Yes:4171 Credit card (automatic) :1522 1st Qu.: 35.50
## Electronic check :2365 Median : 70.35
## Mailed check :1612 Mean : 64.76
## 3rd Qu.: 89.85
## Max. :118.75
##
## TotalCharges Churn
## Min. : 18.8 No :5174
## 1st Qu.: 401.4 Yes:1869
## Median :1397.5
## Mean :2283.3
## 3rd Qu.:3794.7
## Max. :8684.8
## NA's :11
Para el analisis de esta parte, seleccionamos 3 varibles significativas para interpretar, por ejemplo, el genero, se puede visualizar que hay un equilibrio entre ambos generos, ya que no se evidencia una diferencia notable entre la cantidad de hombres y la cantidad de mujeres que hay. Asimismo, para el Churn, aunque haya un porcentaje mayoritario de los clientes que no abandonan, el 27 % de la desercion de dichos clientes muestra un nivel relevante. Por ultimo, esta el Contract (tiempo de contrato), en esta variable, los clientes tienen la mayoria de contratos mensuales, lo que demuestra menos compromiso y más posibilidad de abandono mientras que los contratos anuales son menos, pero pueden reflejar clientes más estables.
library(corrplot)
## corrplot 0.95 loaded
attach(taller2)
nuevosDatos = data.frame(tenure, MonthlyCharges, TotalCharges)
r = cor(na.omit(nuevosDatos))
corrplot(r, method = "number")
## Interpretación
En la matriz de correlación se evaluan las relaciones de los datos de 1 a -1, en donde 1 es una correlación positiva perfecta mientras que -1 es una correlación negativa perfecta. En las variables que se van analizar tenure(tiempo de permanecia del cliente), MonthlyCharges (cargos mensuales) y TotalCharges (cargos totales), se observa que existe una correlación tenure y TotalCharges (0.83), lo que indica que a mayor tiempo de permanencia, mayor es el pagado. Asimismo, entre MonthlyCharges y TotalCharges (0.65) se presenta una correlación positiva moderada, mostrando que un aumento en los cargos mensuales tiende a incrementar el total pagado. Por ultimo pero no menos importante, la correlación entre tenure y MonthlyCharges (0.25) es débil, lo que significa que el tiempo que un cliente lleva en la compañia no esta muy relacionado con sus cargos mensuales.
library(ggplot2)
ggplot(taller2, aes(y=MonthlyCharges, x=Churn, fill=Churn))+
geom_boxplot()
##
Interpretación
Para el resultado No de la variable churn, es decir, que las personas no cambian de compañia, se puede observar que los datos se encuentran mas dispersos que en el resultado Yes, ya que la caja es de mayor tamaño. Por otro lado, el resultado Yes tiene mayor mediana que el resultado No. Ningun resultado presenta datos atipicos.
library(ggplot2)
ggplot(taller2, aes(y=TotalCharges, x=Churn, fill=Churn))+
geom_boxplot()
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
##
Interpretación
Para el resultado No de la variable Churn, los datos se encuentran mas dispersos porque la caja es de mayor tamaño que el resultado Yes, ademas, la mediana es mayor. Por el lado del resultado Yes, se encuentran varios datos atipicos y menor dispersion en la caja.
library (ggplot2)
ggplot(taller2, aes (x = Churn, fill = gender)) +
geom_bar(position = "fill") +
labs(
title = "Distribución de Género por Rotación de Clientes",
x = "Rotación de Clientes (Churn)",
y = "Proporción (%)",
fill = "Género"
)+
theme_linedraw()
##
Interpretación
En el gráfico se observa que aproximadamente un poco más del 50% de las mujeres presentan rotación, es decir, no permanecen en la compañía telefónica. Mientras que, el otro porcentaje de mujeres (inferior al 50%), si se va.
En comparación, con los hombres, más del 50% permanecen en la compañía (no rotan) y un poco menos del 50% sí rota.
taller2 = read.table("taller2.csv",
header =TRUE, sep = ",", dec = ".", row.names = 1, stringsAsFactors=TRUE)
library(corrplot)
attach(taller2)
## The following objects are masked from taller2 (pos = 4):
##
## Churn, Contract, Dependents, DeviceProtection, gender,
## InternetService, MonthlyCharges, MultipleLines, OnlineBackup,
## OnlineSecurity, PaperlessBilling, Partner, PaymentMethod,
## PhoneService, SeniorCitizen, StreamingMovies, StreamingTV,
## TechSupport, tenure, TotalCharges
x= tenure
y= MonthlyCharges
0.2478, existe muy poca correlación entre la antiguedad de los trabajadores y los cargos mensuales. La correlacion es positiva, quiere decir que es directamente proporcional, sin embargo es cercana a 0 por lo que es muy debil la relación entre las dos variables. Por lo que se puede concluir que NO existe una una relación lineal.
ggplot(taller2, aes(x=tenure, y=MonthlyCharges))+
geom_jitter() +
geom_smooth(method = "lm", colour="red")
## `geom_smooth()` using formula = 'y ~ x'
x=tenure
y=MonthlyCharges
modelo= lm(y~ x)
summary(modelo)
##
## Call:
## lm(formula = y ~ x)
##
## Residuals:
## Min 1Q Median 3Q Max
## -57.498 -27.251 6.245 24.943 54.376
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 54.92978 0.57476 95.57 <2e-16 ***
## x 0.30372 0.01415 21.47 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 29.15 on 7041 degrees of freedom
## Multiple R-squared: 0.06145, Adjusted R-squared: 0.06132
## F-statistic: 461 on 1 and 7041 DF, p-value: < 2.2e-16
El modelo encontrado es y= 0.30X + 54.9
En donde podemos interpretar del intercepto que, cuando no hay antiguedad (x=0), es decir, cuando los trabajadores son nuevos los cargos son de 54.92 dolares, y estos incrementan en 0.30 por cada mes trabajado. De igual manera, este modelo no es confiable porque existe muy poca correlación (0.24), lo cual también se puede evidenciar en la gráfica de dispersión, en donde vemos los datos revueltos y no tan cercanos a la linea.
g1 = ggplot(taller2, aes(y=MonthlyCharges, x=Churn, fill=Churn))+
geom_boxplot()
g2 = ggplot(taller2, aes(y=TotalCharges, x=Churn, fill=Churn))+
geom_boxplot()
g3 = ggplot(taller2, aes (x = Churn, fill = gender)) +
geom_bar(position = "fill") +
labs(
title = "Distribución de Género por Rotación de Clientes",
x = "Rotación de Clientes (Churn)",
y = "Proporción (%)",
fill = "Género"
)+
theme_linedraw()
g4 = ggplot(taller2, aes(x=tenure, y=MonthlyCharges))+
geom_jitter() +
geom_smooth(method = "lm", colour="red")
library(gridExtra)
grid.arrange(g1, g2, g3, g4)
## Warning: Removed 11 rows containing non-finite outside the scale range
## (`stat_boxplot()`).
## `geom_smooth()` using formula = 'y ~ x'