setwd("C:/Users/soporte/Downloads")
library(rio)
data=import("reporte (5).xlsx")
## New names:
## • `` -> `...2`
## • `` -> `...3`
## • `` -> `...4`
## • `` -> `...5`
## • `` -> `...6`
## • `` -> `...7`
## • `` -> `...8`
## • `` -> `...9`
## • `` -> `...10`
## • `` -> `...11`
## • `` -> `...12`
## • `` -> `...13`
## • `` -> `...14`
## • `` -> `...15`
#cambiar nombre
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
data <- data %>%
rename(Codigo = ...2,
Provincia = ...3,
Noelec = ...4,
Sielec = ...5,
Total1 = ...6,
Nogas = ...7,
SiGas = ...8,
Total2 = ...9,
Nocarbon = ...10,
Sicarbon = ...11,
Total3 = ...12,
Noleña = ...13,
Sileña = ...14,
Total4 = ...15)
data <- subset(data, select = -Título)
data <- data[6:204, ]
data <- data[1:196, ]
#porcentaje
#porcentaje
data$Sielec <- as.numeric(data$Sielec)
data$Total1 <- as.numeric(data$Total1)
data$Sielec <- (data$Sielec / data$Total1) * 100
data$SiGas <- as.numeric(data$SiGas)
data$Total2 <- as.numeric(data$Total2)
data$SiGas <- (data$SiGas / data$Total2) * 100
data$Sicarbon <- as.numeric(data$Sicarbon)
data$Total3 <- as.numeric(data$Total3)
data$Sicarbon <- (data$Sicarbon / data$Total3) * 100
data$Sileña <- as.numeric(data$Sileña)
data$Total4 <- as.numeric(data$Total4)
data$Sileña <- (data$Sileña / data$Total4) * 100
data <- subset(data, select = -Noelec)
data <- subset(data, select = -Noleña)
data <- subset(data, select = -Nogas)
data <- subset(data, select = -Nocarbon)
data <- subset(data, select = -Total1)
data <- subset(data, select = -Total2)
data <- subset(data, select = -Total3)
data <- subset(data, select = -Total4)
dontselect=c("Codigo","Provincia")
select=setdiff(names(data),dontselect)
data=data[,select]
library(polycor)
## Warning: package 'polycor' was built under R version 4.3.3
corMatrix=polycor::hetcor(data)$correlations
round(corMatrix,2)
## Sielec SiGas Sicarbon Sileña
## Sielec 1.00 0.47 0.10 -0.46
## SiGas 0.47 1.00 0.23 -0.87
## Sicarbon 0.10 0.23 1.00 -0.31
## Sileña -0.46 -0.87 -0.31 1.00
#KMO
library(psych)
## Warning: package 'psych' was built under R version 4.3.3
##
## Attaching package: 'psych'
## The following object is masked from 'package:polycor':
##
## polyserial
psych::KMO(corMatrix)
## Kaiser-Meyer-Olkin factor adequacy
## Call: psych::KMO(r = corMatrix)
## Overall MSA = 0.63
## MSA for each item =
## Sielec SiGas Sicarbon Sileña
## 0.91 0.59 0.72 0.59
#Bartlett
cortest.bartlett(corMatrix,n=nrow(data))$p.value>0.05
## [1] FALSE
#Singular
library(matrixcalc)
is.singular.matrix(corMatrix)
## [1] FALSE
#cumple los requisitos
fa.parallel(data, fa = 'fa',correct = T,plot = F)
## Parallel analysis suggests that the number of factors = 1 and the number of components = NA
#solo recomienda resumirlo en un factor
library(GPArotation)
## Warning: package 'GPArotation' was built under R version 4.3.3
##
## Attaching package: 'GPArotation'
## The following objects are masked from 'package:psych':
##
## equamax, varimin
resfa <- fa(data,
nfactors = 1,
cor = 'mixed',
rotate = "varimax", #oblimin?
fm="minres")
print(resfa$loadings)
##
## Loadings:
## MR1
## Sielec 0.491
## SiGas 0.912
## Sicarbon 0.280
## Sileña -0.956
##
## MR1
## SS loadings 2.065
## Proportion Var 0.516
#Varianza es igual a 0.5 #respuesta: todas son falsas