#Importar la BAse de datos
inversion=read.csv("data_inversion.csv")
head(inversion)
## Edad Tolerancia_Riesgo Ingresos_Anuales Deuda_Actual Gastos_Mensuales
## 1 50.14570 2.308668 57974.85 31234.85 3146.765
## 2 49.57387 1.997729 47856.18 20031.20 2797.868
## 3 44.98772 1.954372 59804.74 28341.78 1909.857
## 4 45.68005 2.199980 52459.66 24367.30 3098.816
## 5 31.02470 3.938720 114334.14 23622.19 3961.259
## 6 36.70232 3.558345 95992.68 20652.05 2535.940
## Patrimonio_Neto Anos_Experiencia Estado_Civil Nivel_Educativo Tipo_Inversion
## 1 81158.94 12.528961 Casado Universitario 0
## 2 63793.97 9.538826 Soltero Universitario 0
## 3 96992.88 7.103887 Casado Universitario 0
## 4 95705.75 3.827406 Divorciado Universitario 0
## 5 93574.21 14.725097 Divorciado Secundaria 1
## 6 94439.25 13.852466 Soltero Universitario 1
Corriendo el ADL
library(MASS)
modelo_adl = lda(data=inversion,
Tipo_Inversion ~ Edad +
Tolerancia_Riesgo+
Ingresos_Anuales+
Deuda_Actual+
Gastos_Mensuales+
Patrimonio_Neto+
Anos_Experiencia)
modelo_adl
## Call:
## lda(Tipo_Inversion ~ Edad + Tolerancia_Riesgo + Ingresos_Anuales +
## Deuda_Actual + Gastos_Mensuales + Patrimonio_Neto + Anos_Experiencia,
## data = inversion)
##
## Prior probabilities of groups:
## 0 1
## 0.499 0.501
##
## Group means:
## Edad Tolerancia_Riesgo Ingresos_Anuales Deuda_Actual Gastos_Mensuales
## 0 44.97798 2.010803 60144.16 24775.84 3022.816
## 1 35.41223 3.988785 100965.32 24781.17 2975.854
## Patrimonio_Neto Anos_Experiencia
## 0 80354.05 9.880917
## 1 79452.05 10.019193
##
## Coefficients of linear discriminants:
## LD1
## Edad -7.813444e-02
## Tolerancia_Riesgo 1.469395e+00
## Ingresos_Anuales 4.728028e-05
## Deuda_Actual -6.737156e-06
## Gastos_Mensuales -4.481774e-05
## Patrimonio_Neto -4.042968e-06
## Anos_Experiencia -5.672716e-04
Considerariamos identificar aquellas variables que individualmente aportan de manera + y -
Edad -7.813444e-02
Tolerancia_Riesgo 1.469395e+00
H0 : Medias Iguales entre grupos de todas las variables i.e. la función discriminante no posee capacidad discriminante Ha : Las función discriminante permite distinguir las categorias gracias a al menos una variable
Xm = manova(data=inversion,
cbind(Edad ,Tolerancia_Riesgo ,
Ingresos_Anuales,Deuda_Actual,
Gastos_Mensuales,Patrimonio_Neto,
Anos_Experiencia)~Tipo_Inversion)
final = summary(Xm,test="Wilks")
final
## Df Wilks approx F num Df den Df Pr(>F)
## Tipo_Inversion 1 0.1133 1109.1 7 992 < 2.2e-16 ***
## Residuals 998
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Pvalor = 0.000000 …22 < Alfa (0.05) Rechazo Ho
Conclusión : A un nivel de significancia del 5%, Las función discriminante permite distinguir las categorias gracias a al menos una variable.
carga=final$Eigenvalues[,1]
calidad_ajuste= carga/(1+carga)
calidad_ajuste
## Tipo_Inversion
## 0.8867024
correlacion =sqrt(calidad_ajuste)
correlacion
## Tipo_Inversion
## 0.9416488
gimnasio =read.csv("clientesGimnasio.csv")
head(gimnasio)
## Horas_entrenamiento Frecuencia_semanal Consumo_mensual
## 1 2.719762 2 59.93504
## 2 2.884911 1 55.48397
## 3 3.779354 1 52.38732
## 4 3.035254 1 43.72094
## 5 3.064644 1 63.60652
## 6 3.857532 6 43.99740
Realizando el cluster No Jerárquico
#Parte 1: cluster
gimnasio_scale=scale(gimnasio)
kmeans_2 = kmeans(gimnasio_scale, centers = 2, nstart=20)
clusters=kmeans_2$cluster
#Parte 2: ADL
modelo_adl_2 = lda(
clusters ~ gimnasio$Horas_entrenamiento+
gimnasio$Frecuencia_semanal+
gimnasio$Consumo_mensual)
modelo_adl_2
## Call:
## lda(clusters ~ gimnasio$Horas_entrenamiento + gimnasio$Frecuencia_semanal +
## gimnasio$Consumo_mensual)
##
## Prior probabilities of groups:
## 1 2
## 0.3666667 0.6333333
##
## Group means:
## gimnasio$Horas_entrenamiento gimnasio$Frecuencia_semanal
## 1 8.771162 6.090909
## 2 4.447446 2.473684
## gimnasio$Consumo_mensual
## 1 143.74274
## 2 72.48471
##
## Coefficients of linear discriminants:
## LD1
## gimnasio$Horas_entrenamiento -0.08260667
## gimnasio$Frecuencia_semanal -0.43864891
## gimnasio$Consumo_mensual -0.02866714
# calidad de la clasificación
pro = predict(modelo_adl_2)
Tabla = table(clusters,pro$class)
Tabla
##
## clusters 1 2
## 1 22 0
## 2 0 38
100% de clasificación correcta.
b) (1.5 puntos) Aplique un análisis de clustering jerárquico y justifique la necesidad de estandarizar las variables antes del análisis. Seleccione 3 clusters a partir del dendrograma obtenido y calcule el porcentaje de observaciones que pertenece a cada cluster.
set.seed(123)
md.e<-dist(gimnasio_scale, method="euclidean", diag=T)
clust.h<-hclust(md.e,method="ward.D2")
res.hc=cutree(clust.h, k=3)
table(res.hc)
## res.hc
## 1 2 3
## 17 23 20
a) (1.5 puntos) En el contexto del análisis factorial exploratorio (AFE) aplicado a la encuesta de satisfacción de los usuarios de aplicaciones móviles de bienestar, se deben evaluar las pruebas de adecuación vistas en clase para determinar si es factible proceder con el análisis. Para ello, se considerará un nivel de significancia de 0.01, de ser necesario.
encuesta=read.csv("preg_afe.csv")
head(encuesta)
## y1 y2 y3 y4 y5 y6
## 1 3 4 4 3 3 4
## 2 4 4 4 3 4 4
## 3 5 6 5 5 5 5
## 4 5 4 5 4 4 2
## 5 5 4 4 4 3 4
## 6 6 5 4 5 6 5
#Premiliminar 1
library(rela)
descri=paf(as.matrix(encuesta))
descri$KMO
## [1] 0.79606
Prueba de Esfericidad de Barlett H0: Las variables son no correlacionadas H1: Las variables son correlacionadas
#preliminar 2
library(psych)
cortest.bartlett(cor(encuesta),n=300)
## $chisq
## [1] 639.78
##
## $p.value
## [1] 1.2383e-126
##
## $df
## [1] 15
P-valor = 0.0000…. 123 < alfa 0.01 Rechazo Ho.
#Preliminar 3
# Medidas de adecuación muestral (MSA)
descri$MSA
## MSA
## y1 0.82471
## y2 0.80271
## y3 0.75590
## y4 0.77093
## y5 0.80610
## y6 0.83454
b) (1.5 puntos) Determine el número adecuado de factores a extraer del análisis factorial utilizando el método paralelo. Además, evalúe si es necesario aplicar una rotación para mejorar la interpretabilidad de los factores. Finalmente, identifique qué variables están más correlacionadas con cada factor, justificando su respuesta con base en las cargas factoriales.
# Análisis Paralelo
fa.parallel(encuesta, fm = "ml", fa="fa")
## Parallel analysis suggests that the number of factors = 2 and the number of components = NA
#2 factores
#Si se considera hacer una rotación por la variable "y4"
factanal(encuesta,factors=2,rotation="varimax")
##
## Call:
## factanal(x = encuesta, factors = 2, rotation = "varimax")
##
## Uniquenesses:
## y1 y2 y3 y4 y5 y6
## 0.474 0.421 0.230 0.414 0.496 0.538
##
## Loadings:
## Factor1 Factor2
## y1 0.688 0.229
## y2 0.722 0.240
## y3 0.837 0.265
## y4 0.156 0.749
## y5 0.227 0.673
## y6 0.273 0.622
##
## Factor1 Factor2
## SS loadings 1.845 1.581
## Proportion Var 0.308 0.263
## Cumulative Var 0.308 0.571
##
## Test of the hypothesis that 2 factors are sufficient.
## The chi square statistic is 4.42 on 4 degrees of freedom.
## The p-value is 0.352
Factor 1: y1 + y2 + y3
Factor 2: y4 + y5 + y6