PARA OBSERVAR EN R PUBS:
https://rpubs.com/EsmeraldaAN/667112
PREGUNTA 1
- US Airways tiene cinco vuelos diarios de Pittsburgh al Aeropuerto Regional de Bradford,Pennsylvania. Suponga que la probabilidad de que cualquier vuelo llegue tarde sea de 0.20.
- ¿Cuál es la probabilidad de que ninguno de los vuelos llegue tarde hoy?
## [1] 0.67232
0.67 es la probabilidad de que ninguno de los vuelos llegue tarde hoy
- ¿Cuál es la probabilidad de que exactamente uno de los vuelos llegue tarde hoy
## [1] 0.4096
0.4096 es la probabilidad de que exactamente uno de los vuelos llegue tarde hoy
Coastal Insurance Company asegura propiedades frente a la playa a lo largo de Virginia, Carolina del Norte y del Sur, y las costas de Georgia; el cálculo aproximado es que, cualquier año, la probabilidad de que un huracán de categoría III (vientos sostenidos de más de 110 millas por hora) o más intenso azote una región de la costa (la isla de St. Simons, Georgia, por ejemplo) es de 0.05. Si un dueño de casa obtiene un crédito hipotecario de 30 años por una propiedad recién comprada en St. Simons,
¿cuáles son las posibilidades de que experimente por lo menos un huracán durante el periodo del crédito?
## [1] 0.7768698
0.7787 es la prob. de que un huracán de ese tipo azote la propiedad frente a la playa en St. Simons, durante el periodo de 30 años, mientras el crédito se encuentra vigente
PREGUNTA 2
- Importar la data bankloan.sav
## [1] "C:/Users/Esmeralda/Documents/R/curso r/intermedio/data"
setwd("C://Users//Esmeralda//Documents//R//curso r//intermedio//data")
library(foreign)
bankloan = read.spss("bankloan.sav", to.data.frame = T)Se tiene la información de clientes de una entidad financiera, y se requiere resumir la información para las variables: edad, dirección, ingresos, deudacred, deudaotro.
Aplicar el análisis de componentes principales, desarrollar el grafico biplot, ¿se observan grupos de variables correlacionadas?
## edad educ empleo direccion ingresos deudaingr
## 1 41 Superiores iniciados 17 12 176 9.3
## 2 27 No completó el bachillerato 10 6 31 17.3
## 3 40 No completó el bachillerato 15 14 55 5.5
## 4 41 No completó el bachillerato 15 14 120 2.9
## 5 24 Título de Bachiller 2 0 28 17.3
## 6 41 Título de Bachiller 5 5 25 10.2
## deudacred deudaotro impago
## 1 11.359392 5.008608 Sí
## 2 1.362202 4.000798 No
## 3 0.856075 2.168925 No
## 4 2.658720 0.821280 No
## 5 1.787436 3.056564 Sí
## 6 0.392700 2.157300 No
## edad educ empleo direccion ingresos deudaingr
## 845 23 No completó el bachillerato 3 4 13 3.1
## 846 34 No completó el bachillerato 12 15 32 2.7
## 847 32 Título de Bachiller 12 11 116 5.7
## 848 48 No completó el bachillerato 13 11 38 10.8
## 849 35 Título de Bachiller 1 11 24 7.8
## 850 37 No completó el bachillerato 20 13 41 12.9
## deudacred deudaotro impago
## 845 0.045539 0.357461 <NA>
## 846 0.239328 0.624672 <NA>
## 847 4.026708 2.585292 <NA>
## 848 0.722304 3.381696 <NA>
## 849 0.417456 1.454544 <NA>
## 850 0.899130 4.389870 <NA>
## edad educ empleo
## Min. :20.00 No completó el bachillerato:460 Min. : 0.000
## 1st Qu.:29.00 Título de Bachiller :235 1st Qu.: 3.000
## Median :34.00 Superiores iniciados :101 Median : 7.000
## Mean :35.03 Título Superior : 49 Mean : 8.566
## 3rd Qu.:41.00 Título de Post-grado : 5 3rd Qu.:13.000
## Max. :56.00 Max. :33.000
## direccion ingresos deudaingr deudacred
## Min. : 0.000 Min. : 13.00 Min. : 0.10 Min. : 0.0117
## 1st Qu.: 3.000 1st Qu.: 24.00 1st Qu.: 5.10 1st Qu.: 0.3822
## Median : 7.000 Median : 35.00 Median : 8.70 Median : 0.8851
## Mean : 8.372 Mean : 46.68 Mean :10.17 Mean : 1.5768
## 3rd Qu.:12.000 3rd Qu.: 55.75 3rd Qu.:13.80 3rd Qu.: 1.8984
## Max. :34.000 Max. :446.00 Max. :41.30 Max. :20.5613
## deudaotro impago
## Min. : 0.04558 No :517
## 1st Qu.: 1.04594 Sí :183
## Median : 2.00324 NA's:150
## Mean : 3.07879
## 3rd Qu.: 3.90300
## Max. :35.19750
con “str” podemos tener los tipos de variables del data frame
## 'data.frame': 850 obs. of 9 variables:
## $ edad : num 41 27 40 41 24 41 39 43 24 36 ...
## $ educ : Factor w/ 5 levels "No completó el bachillerato",..: 3 1 1 1 2 2 1 1 1 1 ...
## $ empleo : num 17 10 15 15 2 5 20 12 3 0 ...
## $ direccion: num 12 6 14 14 0 5 9 11 4 13 ...
## $ ingresos : num 176 31 55 120 28 25 67 38 19 25 ...
## $ deudaingr: num 9.3 17.3 5.5 2.9 17.3 10.2 30.6 3.6 24.4 19.7 ...
## $ deudacred: num 11.359 1.362 0.856 2.659 1.787 ...
## $ deudaotro: num 5.009 4.001 2.169 0.821 3.057 ...
## $ impago : Factor w/ 2 levels "No","Sí": 2 1 1 1 2 1 1 1 2 1 ...
## - attr(*, "variable.labels")= Named chr [1:9] "Edad en años" "Nivel de educación" "Años con la empresa actual" "Años en la dirección actual" ...
## ..- attr(*, "names")= chr [1:9] "edad" "educ" "empleo" "direccion" ...
## - attr(*, "codepage")= int 65001
#Seleccion de data:
library(dplyr)
bankloan1=data.frame(cbind(bankloan$edad,bankloan$direccion,bankloan$ingresos,bankloan$deudacred,bankloan$deudaotro))
class(bankloan1)## [1] "data.frame"
## [1] "X1" "X2" "X3" "X4" "X5"
bankloan1=rename(bankloan1,edad=X1,direccion=X2,ingresos=X3,deudacred=X4,deudaotro=X5)
class(bankloan1)## [1] "data.frame"
Prueba de Correlacion
library(corrplot)
corrplot(cor(bankloan1))
# nos muestran dos grupos:
#edad,direccion
#ingresos/deudacred/deudaotro
#install.packages("PerformanceAnalytics")
library(PerformanceAnalytics)- Analisis de Componentes principales
## [1] 850 5
## Standard deviations (1, .., p=5):
## [1] 1.6391792 1.0837880 0.6636303 0.5955895 0.5859720
##
## Rotation (n x k) = (5 x 5):
## PC1 PC2 PC3 PC4 PC5
## edad -0.4360984 0.4878766 -0.2886804 0.66312172 0.2207438
## direccion -0.3437529 0.6540395 0.4759982 -0.43470852 -0.1962665
## ingresos -0.5057982 -0.1337167 -0.6316506 -0.55519662 0.1380661
## deudacred -0.4537406 -0.4198689 0.5330994 0.05106014 0.5753499
## deudaotro -0.4795204 -0.3742175 0.0831377 0.24586105 -0.7501079
## [1] 5
## $sdev
## [1] 1.6391792 1.0837880 0.6636303 0.5955895 0.5859720
## $rotation
## PC1 PC2 PC3 PC4 PC5
## edad -0.4360984 0.4878766 -0.2886804 0.66312172 0.2207438
## direccion -0.3437529 0.6540395 0.4759982 -0.43470852 -0.1962665
## ingresos -0.5057982 -0.1337167 -0.6316506 -0.55519662 0.1380661
## deudacred -0.4537406 -0.4198689 0.5330994 0.05106014 0.5753499
## deudaotro -0.4795204 -0.3742175 0.0831377 0.24586105 -0.7501079
## $center
## edad direccion ingresos deudacred deudaotro
## 35.029412 8.371765 46.675294 1.576805 3.078789
## $scale
## edad direccion ingresos deudacred deudaotro
## 8.041432 6.895016 38.543054 2.125840 3.398803
## $x
## PC1 PC2 PC3 PC4 PC5
## [1,] -4.562070646 -1.886874e+00 0.417135663 -1.2246991253 2.7455880138
## [2,] 0.675120753 -7.168735e-01 0.350140463 -0.2252610159 -0.4706190044
## [3,] -0.377202677 1.049091e+00 -0.129315131 -0.1479940677 0.0118016432
## [4,] -1.479050309 6.766021e-01 -0.811359323 -1.0560167609 1.0573912556
## [5,] 1.218770608 -1.437642e+00 0.176331431 -0.1092460149 -0.0694498968
## [6,] 0.511494675 4.529283e-01 -0.411370174 0.9220568675 0.0651284761
## [7,] -2.912374111 -1.712033e+00 0.466159587 1.0322812800 -2.2243494379
## [8,] 0.119174187 1.251535e+00 -0.370687310 0.4487013435 0.1269047702
## [9,] 1.197848585 -9.665853e-01 0.497770599 -0.2261050717 -0.3804734394
## [10,] -0.123835310 4.384774e-01 0.918250979 0.0619284676 0.3478521086
## [11,] 1.924862380 -4.754752e-01 -0.140718629 -0.0052276836 0.1619126667
## [12,] 1.855903743 -8.237973e-01 -0.214264476 -0.1444741709 -0.0090563307
## [13,] -1.844635075 1.105675e+00 0.070527405 0.8075527579 1.1387525991
## [14,] 0.073624465 2.204497e-01 0.295519393 0.3759423058 0.0254813454
## [15,] -2.514574993 5.554238e-01 -0.291894659 0.1023149686 0.4225627506
## [ reached getOption("max.print") -- omitted 835 rows ]
summary(bankloan_ACP)# para ver la proporcion de varianza y la acumulada, se observa los dos primeros con mayor varianza## Importance of components:
## PC1 PC2 PC3 PC4 PC5
## Standard deviation 1.6392 1.0838 0.66363 0.59559 0.58597
## Proportion of Variance 0.5374 0.2349 0.08808 0.07095 0.06867
## Cumulative Proportion 0.5374 0.7723 0.86038 0.93133 1.00000
#Se emplia la funcion “biplot” para tener un grafico de la data y la catidad de datos que estos toman se puede mejorar mediante el parametro “scale”- Aplicar análisis factorial exploratorio, ¿cuántos factores pueden considerarse?, según la cantidad de factores que Ud. considerará mostrar la matriz de cargas factoriales (Loadings) que muestra la relación entre las variables originales y los factores, ¿cómo se podrían describir los factores?
nScree: para escoger el numero de factores
mediante el screeplot, el grafico se puede escoger el numero de factores optimos, el punto de inflexión,
## noc naf nparallel nkaiser
## 1 2 1 2 2
tomaremos la cantidad de 2 factores, porque este se repite mas
factnal= analisis facrotial, de la data standarizada de 850
##
## Call:
## factanal(x = bankloan1, factors = 2)
##
## Uniquenesses:
## edad direccion ingresos deudacred deudaotro
## 0.171 0.561 0.425 0.401 0.303
##
## Loadings:
## Factor1 Factor2
## edad 0.243 0.878
## direccion 0.109 0.654
## ingresos 0.668 0.358
## deudacred 0.766 0.108
## deudaotro 0.820 0.157
##
## Factor1 Factor2
## SS loadings 1.776 1.362
## Proportion Var 0.355 0.272
## Cumulative Var 0.355 0.628
##
## Test of the hypothesis that 2 factors are sufficient.
## The chi square statistic is 0.49 on 1 degree of freedom.
## The p-value is 0.482
observar la matriz de carga
## [1] 13
## [1] "call" "converged" "correlation" "criteria" "dof"
## [6] "factors" "loadings" "method" "n.obs" "PVAL"
## [11] "rotmat" "STATISTIC" "uniquenesses"
##
## Loadings:
## Factor1 Factor2
## edad 0.243 0.878
## direccion 0.109 0.654
## ingresos 0.668 0.358
## deudacred 0.766 0.108
## deudaotro 0.820 0.157
##
## Factor1 Factor2
## SS loadings 1.776 1.362
## Proportion Var 0.355 0.272
## Cumulative Var 0.355 0.628
para graficar, que nombre tomarian cada factor?
#install.packages("gplots","RColorBrewer")
library(gplots)
library(RColorBrewer)
heatmap.2(bankloan1_AFE$loadings, col = brewer.pal(9, "Greens"),
trace = "none", key = F, dend = "none", Colv = F,
cexCol = 1.2, main = "Cargas de factores sobre percepciones")Se descubre que se resume en las dos mas resaltantes y ahora se calculara las puntuaciones factoriales.
Solo se agregara scores
##
## Call:
## factanal(x = bankloan1, factors = 2, scores = "Bartlett")
##
## Uniquenesses:
## edad direccion ingresos deudacred deudaotro
## 0.171 0.561 0.425 0.401 0.303
##
## Loadings:
## Factor1 Factor2
## edad 0.243 0.878
## direccion 0.109 0.654
## ingresos 0.668 0.358
## deudacred 0.766 0.108
## deudaotro 0.820 0.157
##
## Factor1 Factor2
## SS loadings 1.776 1.362
## Proportion Var 0.355 0.272
## Cumulative Var 0.355 0.628
##
## Test of the hypothesis that 2 factors are sufficient.
## The chi square statistic is 0.49 on 1 degree of freedom.
## The p-value is 0.482
## [1] "call" "converged" "correlation" "criteria" "dof"
## [6] "factors" "loadings" "method" "n.obs" "PVAL"
## [11] "rotmat" "scores" "STATISTIC" "uniquenesses"
## Factor1 Factor2
## [1,] 3.2488010 0.08010951
## [2,] 0.2586808 -1.13049501
## [3,] -0.4670399 0.92894895
## [4,] 0.1516303 1.01658131
## [5,] 0.3106559 -1.69724026
## [6,] -0.7219381 0.76207863
se puede reemplazar las 5 variables por los 2 factores hallados y ahora ya se puede usar en una regresion
Los factores se pueden reducir dichas variables en dos factores - Factor 1= Factor deuda otro - Factor 2= Factor edad
PREGUNTA 3
- Importar a R: Enaho01-2018-100 CARAC VIV HOGAR.sav, llamarlo enaho18
Desarrollar una prueba de hipótesis para afirmar si el promedio Total de gasto mensual pagado por algún miembro del hogar (P117T2) son similares en todos los Dominios Geográfico (DOMINIO)
Interpretar resultados
Primero se tiene que hacer la prueba de la varianza para poner en el t-test
H0: var por dominio iguales H1: al menos existe una diferencia entre varianzas
alfa = 0.05
## Levene's Test for Homogeneity of Variance (center = median)
## Df F value Pr(>F)
## group 7 337.03 < 2.2e-16 ***
## 37454
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
p-value = 0.000…
Decision:
si p-value < alfa , se rechaza H0 (acepta H1) si p-value > alfa , no se rechaza H0 (acepta H0)
conclusion: se acepta H1, es decir al menos existe una diferencia entre varianzas
Probar la comparacion de promedios (ANOVA de un factor)
H0: prom total de gasto mensual pagado por algún miembro del hogar (P117T2) segun los Dominios Geográfico (DOMINIO)
H1: al menos existe una diferencia de promedios
alfa = 0.05
##
## One-way analysis of means (not assuming equal variances)
##
## data: P117T2 and DOMINIO
## F = 1024.4, num df = 7, denom df = 12860, p-value < 2.2e-16
p-value = 0.000…
Conclusion: como p-value es menor al alfa, acepto H1, es decir al menos existe una diferencia de promedios Total de gasto mensual pagado por algún miembro del hogar (P117T2) segun Dominios Geograficos
PREGUNTA 4
- Importar a R: Enaho01-2018-100 CARAC VIV HOGAR.sav, llamarlo enaho18
- Importar a R: Enaho01-2019-100 CARAC VIV HOGAR.sav, llamarlo enaho19
- Calcular el tamaño de muestra para enaho19, considerando:
La fórmula para estimar el promedio poblacional del Gasto Total Mensual. Esta variable deberán crearla sumando las variables P117T2, P117T3 y P117T4.
El tamaño de la población es de enaho19
La varianza poblacional será del Gasto Total Mensual de enaho18
Alfa de 0.05 y error de 15
- Realizar muestreo estratificado, mediante afijación proporcional para calcular el tamaño de muestra por cada estrato (variable ESTRATO)
CALCULOS PREVIOS
## [1] "enaho18.P117T2...enaho18.P117T3...enaho18.P117T4"
GTM<-rename(GTM,GASTO_TOTAL_MENSUAL=enaho18.P117T2...enaho18.P117T3...enaho18.P117T4)
enaho18<-cbind(enaho18,GTM)
View(enaho18)
names(enaho18)## [1] "AÑO" "MES" "CONGLOME"
## [4] "VIVIENDA" "HOGAR" "UBIGEO"
## [7] "DOMINIO" "ESTRATO" "PERIODO"
## [10] "TIPENC" "FECENT" "RESULT"
## [13] "PANEL" "P22" "P101"
## [16] "P102" "P103" "P103A"
## [19] "P104" "P104A" "P104B1"
## [22] "P104B2" "P105A" "P105B"
## [25] "P106" "P106A" "P106B"
## [28] "P110" "P110A1" "P110A"
## [31] "P111A" "P112A" "P113A"
## [34] "P1141" "P1142" "P1143"
## [37] "P1144" "P1145" "P117T2"
## [40] "P117T3" "P117T4" "NBI1"
## [43] "NBI2" "NBI3" "NBI4"
## [46] "NBI5" "FACTOR07" "Codccpp"
## [49] "Nomccpp" "LONGITUD" "LATITUD"
## [52] "ALTITUD" "GASTO_TOTAL_MENSUAL"
calculo de la desviacion estandar del gasto con la base del 2018:
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 0.0 55.0 110.0 157.7 211.0 10034.0 10238
GastoTotalMensual18 = enaho18$GASTO_TOTAL_MENSUAL
ind = is.finite(GastoTotalMensual18);ind # BOOLEANDO DE CANTIDAD DATOS VACIOS## [1] TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE
## [13] TRUE FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE
## [25] TRUE TRUE FALSE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE
## [37] FALSE TRUE TRUE TRUE TRUE TRUE TRUE FALSE FALSE TRUE TRUE FALSE
## [49] TRUE TRUE TRUE TRUE TRUE TRUE TRUE FALSE TRUE TRUE TRUE TRUE
## [61] TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE TRUE
## [73] TRUE TRUE TRUE
## [ reached getOption("max.print") -- omitted 47625 entries ]
## ind
## FALSE TRUE
## 10238 37462
## ind
## FALSE TRUE
## 0.2146331 0.7853669
S2 = var(GastoTotalMensual18[ind]) # (estimacion de la DEsviacion con la data 2018)
#solo considera los T los que tienen datos
S2 # varianza poblacional conocida= 24580.28## [1] 24580.28
## [1] 47700
## [1] 1.959964
calculo del tamaño de la muestra para estimar el gasto promedio => tamaño de muestra para estimar la media poblacional
## [1] 417
ceiling para redondear al mayor n del enaho= 417, tamaño muestral del 2016
MUESTREO ESTRATIFICADO
La poblacion está estraficada:
##
## De 500 000 a más habitantes
## 7360
## De 100 000 a 499 999 habitantes
## 8274
## De 50 000 a 99 999 habitantes
## 3739
## De 20 000 a 49 999 habitantes
## 2962
## De 2 000 a 19 999 habitantes
## 6412
## De 500 a 1 999 habitantes
## 2912
## Área de Empadronamiento Rural (AER) Compuesto
## 12164
## Área de Empadronamiento Rural (AER) Simple
## 3877
AFIJACION PROPORCIONAL
Se extrae nuestras de cada estrato proporcional al tamaño del estrato
RESUMEN
## [1] 421
EXTRACCION DE LA MUESTRA ESTRAFICADA
cbind(Ni, ni2)#Ni=cantidad de datos por estrato, ni2=la cantidad por afijacion de muestra por estrato## Ni ni2
## De 500 000 a más habitantes 7360 65
## De 100 000 a 499 999 habitantes 8274 73
## De 50 000 a 99 999 habitantes 3739 33
## De 20 000 a 49 999 habitantes 2962 26
## De 2 000 a 19 999 habitantes 6412 57
## De 500 a 1 999 habitantes 2912 26
## Área de Empadronamiento Rural (AER) Compuesto 12164 107
## Área de Empadronamiento Rural (AER) Simple 3877 34
Usaremos la afijacion proporcional
for(i in 1:k){
ind = (enaho19$ESTRATO==etiq[i]) #vector logico
enaho19k = enaho19[ind,]
muestrai = sample(1:Ni[i],ni2[i],replace = F) # vecto para extraccion aleatoria x estrato
#de la primera corrida se va querer muetsrear o seleccionar ni2
enaho19me = rbind(enaho19me,enaho19k[muestrai,]) # apilando los datasets de muestreo
}Se usa rbind colocar los datos por filas,primera corrida esta vacia + el primer muestreo, y como el vacio no cuenta se suman y se observa el primer muestreo
## [1] 421
## [1] 421