setwd("C:/Users/julip/Downloads")
library(rio)
data3=import("reporte (1).xlsx")
## New names:
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
## • `` -> `...9`
## • `` -> `...10`
## • `` -> `...11`
## • `` -> `...12`
## • `` -> `...13`
## • `` -> `...14`
## • `` -> `...15`
data3 <- data3[-c(1:4), ]
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.2
## 
## Adjuntando el paquete: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
# Eliminar la columna
data3 <- data3 %>% select(-Título)
colnames(data3) <- c("Codigo", "Provincia", "No_elec", "Si_elec", "Total_elec", "No_gas", "Si_gas", "Total_gas", "No_carbon", "Si_carbon", "Total_carbon", "No_leña", "Si_leña", "Total_leña")
data3 <- data3[-c(1, 198:200), ]
data3$No_elec <- as.numeric(data3$No_elec)
data3$Si_elec <- as.numeric(data3$Si_elec)
data3$Total_elec <- as.numeric(data3$Total_elec)
data3$No_gas <- as.numeric(data3$No_gas)
data3$Si_gas <- as.numeric(data3$No_gas)
data3$Total_gas <- as.numeric(data3$Total_gas)
data3$No_carbon <- as.numeric(data3$No_carbon)
data3$Si_carbon <- as.numeric(data3$Si_carbon)
data3$Total_carbon <- as.numeric(data3$Total_carbon)
data3$No_leña <- as.numeric(data3$No_leña)
data3$Si_leña <- as.numeric(data3$Si_leña)
data3$Total_leña <- as.numeric(data3$Total_leña)

#Ejercicios

# Convertir a porcentaje
data3$Si_carbon <- (data3$Si_carbon/data3$Total_carbon)*100
data3$Si_elec <- (data3$Si_elec/data3$Total_elec)* 100
data3$Si_gas <- (data3$Si_gas/data3$Total_gas)* 100
data3$Si_leña <- (data3$Si_leña/data3$Total_leña)*100
dontselect=c("Codigo","Provincia","No_elec",
             "No_gas","No_carbon","No_leña", "Total_elec", "Total_gas", "Total_leña", "Total_carbon")
select=setdiff(names(data3),dontselect) 
theData=data3[,select]
head(theData,10)
##      Si_elec   Si_gas Si_carbon  Si_leña
## 6  3.7425833 30.61877 1.1475517 52.81998
## 7  0.7863632 51.56296 1.4115464 64.06662
## 8  1.5870984 40.36862 0.7423525 69.98592
## 9  0.1418871 84.43296 0.2635046 89.26725
## 10 0.6817149 51.98455 0.2499621 86.11574
## 11 0.7089878 58.75873 0.2835951 80.10471
## 12 0.8094467 48.96359 1.0633908 65.74929
## 13 1.9911791 34.47702 0.4713106 46.48463
## 14 0.7980050 76.15960 0.1995012 89.07731
## 15 0.8403361 80.23937 0.1018589 91.06188
corMatrix=polycor::hetcor(theData)$correlations
library(psych)
## Warning: package 'psych' was built under R version 4.4.2
psych::KMO(corMatrix) 
## Kaiser-Meyer-Olkin factor adequacy
## Call: psych::KMO(r = corMatrix)
## Overall MSA =  0.63
## MSA for each item = 
##   Si_elec    Si_gas Si_carbon   Si_leña 
##      0.91      0.59      0.72      0.59
cortest.bartlett(corMatrix,n=nrow(theData))$p.value>0.05
## [1] FALSE
library(matrixcalc)

is.singular.matrix(corMatrix)
## [1] FALSE
fa.parallel(theData, fa = 'fa',correct = T,plot = F)
## Parallel analysis suggests that the number of factors =  1  and the number of components =  NA
library(GPArotation)
## 
## Adjuntando el paquete: 'GPArotation'
## The following objects are masked from 'package:psych':
## 
##     equamax, varimin
resfa <- fa(theData,
            nfactors = 2,
            cor = 'mixed',
            rotate = "varimax", #oblimin?
            fm="minres")
print(resfa$loadings)
## 
## Loadings:
##           MR1    MR2   
## Si_elec   -0.510       
## Si_gas     0.872  0.321
## Si_carbon -0.111 -0.415
## Si_leña    0.793  0.542
## 
##                  MR1   MR2
## SS loadings    1.661 0.578
## Proportion Var 0.415 0.145
## Cumulative Var 0.415 0.560
resfa1 <- fa(theData,
            nfactors = 2,
            cor = 'mixed',
            rotate = "oblimin", #oblimin?
            fm="minres")
print(resfa1$loadings)
## 
## Loadings:
##           MR1    MR2   
## Si_elec   -0.530 -0.143
## Si_gas     0.945       
## Si_carbon -0.211  0.332
## Si_leña    0.920 -0.140
## 
##                  MR1   MR2
## SS loadings    2.066 0.160
## Proportion Var 0.517 0.040
## Cumulative Var 0.517 0.556
print(resfa$loadings,cutoff = 0.5)
## 
## Loadings:
##           MR1    MR2   
## Si_elec   -0.510       
## Si_gas     0.872       
## Si_carbon              
## Si_leña    0.793  0.542
## 
##                  MR1   MR2
## SS loadings    1.661 0.578
## Proportion Var 0.415 0.145
## Cumulative Var 0.415 0.560