library(readxl)
data1 <- read_excel("reporte energía.xlsx")
library(factoextra)
## Loading required package: ggplot2
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(polycor)
library(ggcorrplot)
dontselect=c("No usa electricidad","No usa gas (balón GLP)","No usa carbón",
"No usa leña", "Departamento")
select=setdiff(names(data1),dontselect)
theData=data1[,select]
library(magrittr)
head(theData,10)%>%
rmarkdown::paged_table()
str(theData)
## tibble [26 × 4] (S3: tbl_df/tbl/data.frame)
## $ Sí usa electricidad : num [1:26] 1283 6837 1360 12878 2846 ...
## $ Sí usa gas (balón GLP): num [1:26] 52951 188443 56444 382813 101409 ...
## $ Sí usa carbón : num [1:26] 943 2408 471 1789 661 ...
## $ Sí usa leña : num [1:26] 74920 149287 89197 58115 119131 ...
theData[] <- lapply(theData, function(x) as.numeric(as.character(x)))
class(theData)
## [1] "tbl_df" "tbl" "data.frame"
theData <- as.data.frame(theData)
corMatrix <- hetcor(theData)$correlations
print(corMatrix)
## Sí usa electricidad Sí usa gas (balón GLP) Sí usa carbón
## Sí usa electricidad 1.0000000 0.9875504 0.8710603
## Sí usa gas (balón GLP) 0.9875504 1.0000000 0.9170868
## Sí usa carbón 0.8710603 0.9170868 1.0000000
## Sí usa leña 0.8776676 0.9388036 0.9304261
## Sí usa leña
## Sí usa electricidad 0.8776676
## Sí usa gas (balón GLP) 0.9388036
## Sí usa carbón 0.9304261
## Sí usa leña 1.0000000
round(corMatrix,2)
## Sí usa electricidad Sí usa gas (balón GLP) Sí usa carbón
## Sí usa electricidad 1.00 0.99 0.87
## Sí usa gas (balón GLP) 0.99 1.00 0.92
## Sí usa carbón 0.87 0.92 1.00
## Sí usa leña 0.88 0.94 0.93
## Sí usa leña
## Sí usa electricidad 0.88
## Sí usa gas (balón GLP) 0.94
## Sí usa carbón 0.93
## Sí usa leña 1.00
ggcorrplot(corMatrix)
library(psych)
##
## Attaching package: 'psych'
## The following object is masked from 'package:polycor':
##
## polyserial
## 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.65
## MSA for each item =
## Sí usa electricidad Sí usa gas (balón GLP) Sí usa carbón
## 0.58 0.59 0.94
## Sí usa leña
## 0.61
#fa.parallel(theData, fa = 'fa',correct = T,plot = F) #Parallel analysis suggests that the number of factors = 1 and the number of components = NA
RESPUESTA: Todas las alternativas son falsas –> no se puede resumir en un factor, 3 de las 4 variables no son suficientes en el KMO, por ende no se puede hacer nu varimax ni oblimin y la varianza es mayor a 0,5 pero menor a 0.9
Utilizando el porcentaje de viviendas que tiene agua de red publica dentro de la vivienda, la razón de votacion de keiko entre castillo, y la tasa fallecidos por cada 1000 contagiados, Ud se propone agrupar a las provincias del Peru (sin la provincia de Lima) siguiendo diversas estrategias (no corrija correlacion negativa si la hubiera, pero siempre normalice); y en ese proceso Ud. encuentra…
data2 <- read_excel("dataOK_all.xlsx")
names(data2)
## [1] "key" "Código"
## [3] "pared1_Ladrillo" "pared2_Piedra"
## [5] "pared3_Adobe" "pared4_Tapia"
## [7] "pared5_Quincha" "pared6_Piedra"
## [9] "pared7_Madera" "pared8_Triplay"
## [11] "pared9_Otro" "pared10_Total"
## [13] "techo1_Concreto" "techo2_Madera"
## [15] "techo3_Tejas" "techo4_Planchas"
## [17] "techo5_Caña" "techo6_Triplay"
## [19] "techo7_Paja" "techo8_Otro"
## [21] "techo9_Total" "piso1_Parquet"
## [23] "piso2_Láminas" "piso3_Losetas"
## [25] "piso4_Madera" "piso5_Cemento"
## [27] "piso6_Tierra" "piso7_Otro"
## [29] "piso8_Total" "agua1_Red"
## [31] "agua2_Red_fueraVivienda" "agua3_Pilón"
## [33] "agua4_Camión" "agua5_Pozo"
## [35] "agua6_Manantial" "agua7_Río"
## [37] "agua8_Otro" "agua9_Vecino"
## [39] "agua10_Total" "elec1_Sí"
## [41] "elec2_No" "elec3_Total"
## [43] "departamento" "provincia"
## [45] "Castillo" "Keiko"
## [47] "ganaCastillo" "countPositivos"
## [49] "countFallecidos"
data2$agua1_Red=data2$agua1_Red/data2$agua10_Total
data2$CastilloKeiko_ratio=data2$Castillo/data2$Keiko
data2$fallecido_x10000POS=1000*data2$countFallecidos/data2$countPositivos
keptForCluster=c('key','agua1_Red','CastilloKeiko_ratio','fallecido_x10000POS')
data2_small=data2[,keptForCluster]
data2_small=data2_small[!data2_small$key=='LIMA+LIMA',]
boxplot(BBmisc::normalize(data2_small[,-1],method='standardize'))
data2_small=data2_small
data2_small[,-1]=BBmisc::normalize(data2_small[,-1],method='standardize')
cor(data2_small[,-1],use = "complete.obs")
## agua1_Red CastilloKeiko_ratio fallecido_x10000POS
## agua1_Red 1.0000000 -0.3226139 0.1035734
## CastilloKeiko_ratio -0.3226139 1.0000000 0.1532277
## fallecido_x10000POS 0.1035734 0.1532277 1.0000000
dataClus=data2_small[,-1]
row.names(dataClus)=data2_small$key
## Warning: Setting row names on a tibble is deprecated.
dataClus=dataClus[complete.cases(dataClus),]
g.dist = cluster::daisy(dataClus, metric="gower")
factoextra::fviz_nbclust(dataClus, factoextra::hcut,diss=g.dist,method = "gap_stat",k.max = 10,verbose = F,hc_func = "agnes")
factoextra::fviz_nbclust(dataClus, factoextra::hcut,diss=g.dist,method = "gap_stat",k.max = 10,verbose = F,hc_func = "diana")
res.agnes<- factoextra::hcut(g.dist, k = 7,hc_func='agnes',hc_method = "ward.D")
dataClus$agnes=res.agnes$cluster
RESPUESTA: Agnes (aglomerativa) es mejor porque agrupa en diferentes grupos mientras que Diana no y las agrupa en 1 solo
Hacer 3 regresiones. Como independientes usará todas las variables de COMMs y ENERGY. Cada regresión usa una variable dependiente diferente del grupo ECON, pero no usa deuda externa.
Independientes: Telephones, internet users, broandband, electricity, carbon diox, energy consumption
Dependiente: Inflation rate, youth unemploy, public debt,
data3 <- read_excel("dataCIA.xlsx")
str(data3)
## tibble [181 × 12] (S3: tbl_df/tbl/data.frame)
## $ name : chr [1:181] "Afghanistan" "Albania" "Algeria" "Angola" ...
## $ electricity : chr [1:181] "776,000" "2,531,000" "21,694,000" "7,344,000" ...
## $ bbl/day : chr [1:181] "0" "5,638" "627,900" "53,480" ...
## $ carbon_diox : chr [1:181] "7,893,000" "3,794,000" "151,633,000" "19,362,000" ...
## $ Btu/person : chr [1:181] "3,227,000" "38,442,000" "61,433,000" "11,693,000" ...
## $ valuefix : chr [1:181] "146,000" "177,000" "5,576,000" "94,000" ...
## $ valuemob : chr [1:181] "22,678,000" "2,782,000" "49,019,000" "23,978,000" ...
## $ inflation_rate : chr [1:181] "2.3" "6.73" "9.27" "25.75" ...
## $ youth_unemployment : num [1:181] 20.2 27.8 31.9 18.5 29.9 36.1 10.8 11.4 16.5 30.8 ...
## $ public_debt : num [1:181] 7 82.4 27.5 65 57.6 ...
## $ % public debt-external: num [1:181] 7 82.4 27.5 65 57.6 ...
## $ valuebroad : chr [1:181] "26,570" "508,937" "3,790,459" "230,610" ...
modelo1=formula(inflation_rate~electricity+carbon_diox)
#reg1=lm(modelo1,data = data3)
#summary(reg1)
modelo2=formula(youth_unemployment~electricity+carbon_diox)
#reg2=lm(modelo2,data = data3)
#summary(reg2)
modelo3=formula(public_debt~electricity+carbon_diox)
#reg3=lm(modelo3,data = data3)
#summary(reg3)