options(repos = structure(c(CRAN = "https://cran.rstudio.com/")))
install.packages("psych")
## Installing package into 'C:/Users/HP/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'psych' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\HP\AppData\Local\Temp\RtmpEtee0R\downloaded_packages
library(readxl)
## Warning: package 'readxl' was built under R version 4.3.1
getwd()
## [1] "C:/Users/HP/Desktop"
DI <- read_excel("DAT1.XLSX")
str(DI)  # Muestra la estructura de los datos
## tibble [136 × 12] (S3: tbl_df/tbl/data.frame)
##  $ P1 : num [1:136] 5 4 5 5 4 5 4 5 2 2 ...
##  $ P.2: num [1:136] 4 2 5 5 4 3 4 2 3 3 ...
##  $ P3 : num [1:136] 4 2 3 5 3 5 3 5 3 3 ...
##  $ P4 : num [1:136] 2 1 5 5 2 5 5 5 5 5 ...
##  $ P5 : num [1:136] 5 2 5 5 4 5 4 5 3 3 ...
##  $ P6 : num [1:136] 5 2 5 3 4 5 4 5 3 2 ...
##  $ P7 : num [1:136] 4 1 5 5 4 5 4 5 3 3 ...
##  $ P8 : num [1:136] 2 2 5 3 5 5 5 5 3 2 ...
##  $ P9 : num [1:136] 5 3 5 5 4 5 4 5 3 3 ...
##  $ P10: num [1:136] 5 2 5 3 4 5 4 5 3 2 ...
##  $ P11: num [1:136] 2 1 5 5 2 5 5 5 5 5 ...
##  $ P12: num [1:136] 5 2 5 5 4 5 4 5 3 3 ...
head(DI)  # Muestra las primeras filas de los datos
## # A tibble: 6 × 12
##      P1   P.2    P3    P4    P5    P6    P7    P8    P9   P10   P11   P12
##   <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1     5     4     4     2     5     5     4     2     5     5     2     5
## 2     4     2     2     1     2     2     1     2     3     2     1     2
## 3     5     5     3     5     5     5     5     5     5     5     5     5
## 4     5     5     5     5     5     3     5     3     5     3     5     5
## 5     4     4     3     2     4     4     4     5     4     4     2     4
## 6     5     3     5     5     5     5     5     5     5     5     5     5
install.packages("psych")  # Instalar la biblioteca psych
## Installing package into 'C:/Users/HP/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'psych' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\HP\AppData\Local\Temp\RtmpEtee0R\downloaded_packages
library(psych)
## Warning: package 'psych' was built under R version 4.3.1
install.packages("factoextra") 
## Installing package into 'C:/Users/HP/AppData/Local/R/win-library/4.3'
## (as 'lib' is unspecified)
## package 'factoextra' successfully unpacked and MD5 sums checked
## 
## The downloaded binary packages are in
##  C:\Users\HP\AppData\Local\Temp\RtmpEtee0R\downloaded_packages
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.3.1
## Loading required package: ggplot2
## Warning: package 'ggplot2' was built under R version 4.3.1
## 
## Attaching package: 'ggplot2'
## The following objects are masked from 'package:psych':
## 
##     %+%, alpha
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
# Calcular los autovalores
eigenvalues <- eigen(cor(DI))$values
# Calcular la varianza explicada
var_explained <- eigenvalues / sum(eigenvalues) * 100
# Crear un gráfico de barras de la varianza explicada
barplot(var_explained, main = "Varianza Explicada", xlab = "Componente", ylab = "Porcentaje de Varianza", ylim = c(0, 100))

library(factoextra)
# Realizar la reducción de dimensionalidad mediante PCA
pca_result <- prcomp(DI, scale. = TRUE)  # 'data' es tu matriz de datos
# Visualizar la varianza explicada por cada componente
fviz_screeplot(pca_result, addlabels = TRUE, ylim = c(0, 50))

CORRECION

# Realizar el análisis factorial principal (PCA)
pca_result <- princomp(DI)
# Obtener la varianza explicada por cada componente
var_explained <- pca_result$sdev^2 / sum(pca_result$sdev^2) * 100
# Crear el gráfico de varianza explicada
fviz_screeplot(pca_result, addlabels = TRUE, ylim = c(0, 50),
               title = "Varianza Explicada por Componente")

# Obtener las cargas factoriales
factor_loadings <- loadings(pca_result)
# Visualizar las cargas factoriales en un gráfico de círculo de correlaciones
fviz_pca_var(pca_result, col.var = "yellow")

# Obtener los puntajes factoriales para cada observación
factor_scores <- as.data.frame(pca_result$scores)
# Realizar un gráfico de dispersión de los puntajes factoriales
fviz_pca_ind(pca_result, col.ind = "cos2")

# Realizar un análisis de factores exploratorios (EFA) utilizando el método de máxima verosimilitud
efa_result <- factanal(DI, factors = 2, rotation = "varimax", scores = "regression")
# Mostrar los resultados del EFA
print(efa_result)
## 
## Call:
## factanal(x = DI, factors = 2, scores = "regression", rotation = "varimax")
## 
## Uniquenesses:
##    P1   P.2    P3    P4    P5    P6    P7    P8    P9   P10   P11   P12 
## 0.677 0.791 0.531 0.632 0.495 0.398 0.615 0.656 0.208 0.145 0.005 0.356 
## 
## Loadings:
##     Factor1 Factor2
## P1   0.568         
## P.2  0.456         
## P3   0.680         
## P4           0.606 
## P5   0.701   0.118 
## P6   0.774         
## P7   0.609   0.119 
## P8   0.586         
## P9   0.890         
## P10  0.923         
## P11          0.997 
## P12  0.801         
## 
##                Factor1 Factor2
## SS loadings      5.087   1.405
## Proportion Var   0.424   0.117
## Cumulative Var   0.424   0.541
## 
## Test of the hypothesis that 2 factors are sufficient.
## The chi square statistic is 67.69 on 43 degrees of freedom.
## The p-value is 0.00952