setwd("C:/Users/Jhire/Downloads/final1")
library(rio)
data1 = import("reporte1.xlsx")
## New names:
## • `` -> `...1`
## • `Total` -> `Total...6`
## • `Total` -> `Total...9`
## • `Total` -> `Total...12`
## • `Total` -> `Total...15`
str(data1)
## 'data.frame':    200 obs. of  15 variables:
##  $ ...1                  : chr  NA NA NA NA ...
##  $ Código                : chr  "101" "102" "103" "104" ...
##  $ Provincia             : chr  "Amazonas, provincia: Chachapoyas" "Amazonas, provincia: Bagua" "Amazonas, provincia: Bongara" "Amazonas, provincia: Condorcanqui" ...
##  $ No usa electricidad   : num  14763 20313 7689 9853 13112 ...
##  $ Sí usa electricidad   : num  574 161 124 14 90 65 255 921 16 33 ...
##  $ Total...6             : num  15337 20474 7813 9867 13202 ...
##  $ No usa gas (balón GLP): num  4696 10557 3154 8331 6863 ...
##  $ Sí usa gas (balón GLP): num  10641 9917 4659 1536 6339 ...
##  $ Total...9             : num  15337 20474 7813 9867 13202 ...
##  $ No usa carbón         : num  15161 20185 7755 9841 13169 ...
##  $ Sí usa carbón         : num  176 289 58 26 33 26 335 218 4 4 ...
##  $ Total...12            : num  15337 20474 7813 9867 13202 ...
##  $ No usa leña           : num  7236 7357 2345 1059 1833 ...
##  $ Sí usa leña           : num  8101 13117 5468 8808 11369 ...
##  $ Total...15            : num  15337 20474 7813 9867 13202 ...
names(data1)
##  [1] "...1"                   "Código"                 "Provincia"             
##  [4] "No usa electricidad"    "Sí usa electricidad"    "Total...6"             
##  [7] "No usa gas (balón GLP)" "Sí usa gas (balón GLP)" "Total...9"             
## [10] "No usa carbón"          "Sí usa carbón"          "Total...12"            
## [13] "No usa leña"            "Sí usa leña"            "Total...15"

usando para el carbon:

colnames(data1)[colnames(data1) == "No usa carbón"] <- "carbon_no"
colnames(data1)[colnames(data1) == "Sí usa carbón"] <- "carbon_si"
colnames(data1)[colnames(data1) == "Total...12"] <- "carbon_tot"
data1$carbon_porcentaje <- (data1$carbon_si / data1$carbon_tot) * 100

usando para electricidad: el

colnames(data1)[colnames(data1) == "No usa electricidad"] <- "el_no"
colnames(data1)[colnames(data1) == "Sí usa electricidad"] <- "el_si"
colnames(data1)[colnames(data1) == "Total...6"] <- "el_tot"
data1$el_porcentaje <- (data1$el_si / data1$el_tot) * 100

usando para el gas

colnames(data1)[colnames(data1) == "No usa gas (balón GLP)"] <- "no_gas"
colnames(data1)[colnames(data1) == "Sí usa gas (balón GLP)"] <- "si_gas"
colnames(data1)[colnames(data1) == "Total...9"] <- "gas_tot"
data1$gas_porcentaje <- (data1$si_gas / data1$gas_tot) * 100

usando para la leñita

colnames(data1)[colnames(data1) == "No usa leña"] <- "leña_nousa"
colnames(data1)[colnames(data1) == "Sí usa leña"] <- "leña_siusa"
colnames(data1)[colnames(data1) == "Total...15"] <- "leña_tot"
data1$leña_porcentaje <- (data1$leña_siusa / data1$leña_tot) * 100

Si Ud desea analisis factorial con estos datos, encuentra. #ahora

dontselect=c("...1","Código","Provincia",
 "el_no","el_si","el_tot",
 "si_gas", "no_gas", "gas_tot",
 "leña_siusa", "leña_nousa", "leña_tot",
 "carbon_si", "carbon_no", "carbon_tot")
select=setdiff(names(data1),dontselect) 
ladata=data1[,select]


library(magrittr)
head(ladata,10)%>%
 rmarkdown::paged_table()

INSTALAMOS:

library(kableExtra)
## Warning: package 'kableExtra' was built under R version 4.3.3
library(lme4)
## Warning: package 'lme4' was built under R version 4.3.3
## Loading required package: Matrix
## Warning in check_dep_version(): ABI version mismatch: 
## lme4 was built with Matrix ABI version 1
## Current Matrix ABI version is 0
## Please re-install lme4 from source or restore original 'Matrix' package
## 
## Attaching package: 'lme4'
## The following object is masked from 'package:rio':
## 
##     factorize
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr     1.1.3     ✔ readr     2.1.4
## ✔ forcats   1.0.0     ✔ stringr   1.5.0
## ✔ ggplot2   3.4.4     ✔ tibble    3.2.1
## ✔ lubridate 1.9.3     ✔ tidyr     1.3.0
## ✔ purrr     1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ tidyr::expand()     masks Matrix::expand()
## ✖ tidyr::extract()    masks magrittr::extract()
## ✖ dplyr::filter()     masks stats::filter()
## ✖ dplyr::group_rows() masks kableExtra::group_rows()
## ✖ dplyr::lag()        masks stats::lag()
## ✖ tidyr::pack()       masks Matrix::pack()
## ✖ purrr::set_names()  masks magrittr::set_names()
## ✖ tidyr::unpack()     masks Matrix::unpack()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(arm)
## Warning: package 'arm' was built under R version 4.3.3
## Loading required package: MASS
## 
## Attaching package: 'MASS'
## 
## The following object is masked from 'package:dplyr':
## 
##     select
## 
## 
## arm (Version 1.14-4, built: 2024-4-1)
## 
## Working directory is C:/Users/Jhire/Downloads/final1
library(Matrix)
library(modelsummary)
## Warning: package 'modelsummary' was built under R version 4.3.3
## `modelsummary` 2.0.0 now uses `tinytable` as its default table-drawing
##   backend. Learn more at: https://vincentarelbundock.github.io/tinytable/
## 
## Revert to `kableExtra` for one session:
## 
##   options(modelsummary_factory_default = 'kableExtra')
## 
## Change the default backend persistently:
## 
##   config_modelsummary(factory_default = 'gt')
## 
## Silence this message forever:
## 
##   config_modelsummary(startup_message = FALSE)
library(polycor)
## Warning: package 'polycor' was built under R version 4.3.3
corMatrix=polycor::hetcor(ladata)$correlations
round(corMatrix,2)
##                   carbon_porcentaje el_porcentaje gas_porcentaje
## carbon_porcentaje              1.00          0.10           0.23
## el_porcentaje                  0.10          1.00           0.48
## gas_porcentaje                 0.23          0.48           1.00
## leña_porcentaje               -0.31         -0.46          -0.87
##                   leña_porcentaje
## carbon_porcentaje           -0.31
## el_porcentaje               -0.46
## gas_porcentaje              -0.87
## leña_porcentaje              1.00
library(ggcorrplot)
## Warning: package 'ggcorrplot' was built under R version 4.3.3
ggcorrplot(corMatrix)

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
## The following object is masked from 'package:modelsummary':
## 
##     SD
## The following objects are masked from 'package:arm':
## 
##     logit, rescale, sim
## The following objects are masked from 'package:ggplot2':
## 
##     %+%, alpha
psych::KMO(corMatrix) 
## Kaiser-Meyer-Olkin factor adequacy
## Call: psych::KMO(r = corMatrix)
## Overall MSA =  0.63
## MSA for each item = 
## carbon_porcentaje     el_porcentaje    gas_porcentaje   leña_porcentaje 
##              0.72              0.91              0.59              0.59
cortest.bartlett(corMatrix,n=nrow(ladata))$p.value>0.05
## [1] FALSE
library(matrixcalc)
is.singular.matrix(corMatrix)
## [1] FALSE
round(corMatrix,2)
##                   carbon_porcentaje el_porcentaje gas_porcentaje
## carbon_porcentaje              1.00          0.10           0.23
## el_porcentaje                  0.10          1.00           0.48
## gas_porcentaje                 0.23          0.48           1.00
## leña_porcentaje               -0.31         -0.46          -0.87
##                   leña_porcentaje
## carbon_porcentaje           -0.31
## el_porcentaje               -0.46
## gas_porcentaje              -0.87
## leña_porcentaje              1.00
fa.parallel(ladata, fa = 'fa',correct = T,plot = F)
## Warning in fa.stats(r = r, f = f, phi = phi, n.obs = n.obs, np.obs = np.obs, :
## The estimated weights for the factor scores are probably incorrect.  Try a
## different factor score estimation method.
## Warning in fac(r = r, nfactors = nfactors, n.obs = n.obs, rotate = rotate, : An
## ultra-Heywood case was detected.  Examine the results carefully
## Parallel analysis suggests that the number of factors =  1  and the number of components =  NA
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(ladata,
 nfactors = 1,
 cor = 'mixed',
 rotate = "varimax", #oblimin?
 fm="minres")
print(resfa$loadings)
## 
## Loadings:
##                   MR1   
## carbon_porcentaje  0.279
## el_porcentaje      0.493
## gas_porcentaje     0.912
## leña_porcentaje   -0.956
## 
##                  MR1
## SS loadings    2.068
## Proportion Var 0.517
library(GPArotation)
resfa2 <- fa(ladata,
 nfactors = 1,
 cor = 'mixed',
 rotate = "oblimin", #oblimin?
 fm="minres")
print(resfa2$loadings)
## 
## Loadings:
##                   MR1   
## carbon_porcentaje  0.279
## el_porcentaje      0.493
## gas_porcentaje     0.912
## leña_porcentaje   -0.956
## 
##                  MR1
## SS loadings    2.068
## Proportion Var 0.517

se podria asumir que