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