library(ggplot2)
load("lapop.rda")
load("dfm.rda")
names(dfm)
## [1] "edad" "asp"
length(dfm$edad)
## [1] 131872
mean(dfm$edad)
## [1] 38.5846
sd(dfm$edad)
## [1] 15.51605
hist(dfm$edad)
# Funcion distribución de muestreo para medias
# muestra(v, n, r)
# donde: v = variable; n = tamaño de muestra; r = número de muestras
muestra <- function(v, n, r){
id <- 0
m <- numeric()
desv <- numeric()
tam <- numeric()
err.std <- numeric()
linf <- numeric()
lsup <- numeric()
repeat{
id <- id+1
sam <- sample(v, n, replace=TRUE)
m1 <- mean(sam)
desv1 <- sd(sam)
tam1 <- length(sam)
err.st1 <- desv1/sqrt(tam1)
linf1 <- m1 - (2*err.st1)
lsup1 <- m1 + (2*err.st1)
m <- c(m, m1)
desv <- c(desv, desv1)
tam <- c(tam, tam1)
err.std <- c(err.std, err.st1)
linf <- c(linf, linf1)
lsup <- c(lsup, lsup1)
int <- ifelse(linf <= mean(v) & lsup >= mean(v), TRUE, FALSE)
xbar <- mean(v)
error <- m - xbar
mues <- data.frame(m, desv, tam, err.std, linf, lsup, xbar, error, int)
if(id >= r) break
}
return(mues)}
muestra(dfm$edad, 500, 1)
## m desv tam err.std linf lsup xbar error int
## 1 37.97 15.68455 500 0.7014344 36.56713 39.37287 38.5846 -0.6146048 TRUE
muestra(dfm$edad, 500, 10)
## m desv tam err.std linf lsup xbar error
## 1 41.064 16.35049 500 0.7312162 39.60157 42.52643 38.5846 2.4793952
## 2 37.744 15.57921 500 0.6967236 36.35055 39.13745 38.5846 -0.8406048
## 3 37.534 14.40708 500 0.6443042 36.24539 38.82261 38.5846 -1.0506048
## 4 37.914 15.48801 500 0.6926447 36.52871 39.29929 38.5846 -0.6706048
## 5 38.826 15.50356 500 0.6933404 37.43932 40.21268 38.5846 0.2413952
## 6 39.034 15.22157 500 0.6807294 37.67254 40.39546 38.5846 0.4493952
## 7 38.438 15.27537 500 0.6831352 37.07173 39.80427 38.5846 -0.1466048
## 8 38.000 15.64178 500 0.6995217 36.60096 39.39904 38.5846 -0.5846048
## 9 38.862 15.11661 500 0.6760355 37.50993 40.21407 38.5846 0.2773952
## 10 37.718 15.38701 500 0.6881279 36.34174 39.09426 38.5846 -0.8666048
## int
## 1 FALSE
## 2 TRUE
## 3 TRUE
## 4 TRUE
## 5 TRUE
## 6 TRUE
## 7 TRUE
## 8 TRUE
## 9 TRUE
## 10 TRUE
muestras100 <- muestra(dfm$edad, 500, 100)
head(muestras100, 50) # las 50 primeras muestras
## m desv tam err.std linf lsup xbar error
## 1 38.452 15.57758 500 0.6966506 37.05870 39.84530 38.5846 -0.13260477
## 2 38.680 15.09614 500 0.6751198 37.32976 40.03024 38.5846 0.09539523
## 3 39.286 15.44050 500 0.6905201 37.90496 40.66704 38.5846 0.70139523
## 4 39.274 15.97791 500 0.7145537 37.84489 40.70311 38.5846 0.68939523
## 5 39.000 15.50732 500 0.6935084 37.61298 40.38702 38.5846 0.41539523
## 6 38.732 15.39305 500 0.6883982 37.35520 40.10880 38.5846 0.14739523
## 7 38.680 15.74565 500 0.7041668 37.27167 40.08833 38.5846 0.09539523
## 8 37.548 15.08359 500 0.6745587 36.19888 38.89712 38.5846 -1.03660477
## 9 37.970 15.22500 500 0.6808828 36.60823 39.33177 38.5846 -0.61460477
## 10 38.886 16.13685 500 0.7216617 37.44268 40.32932 38.5846 0.30139523
## 11 39.360 15.92676 500 0.7122664 37.93547 40.78453 38.5846 0.77539523
## 12 38.360 14.95452 500 0.6687865 37.02243 39.69757 38.5846 -0.22460477
## 13 38.966 15.79201 500 0.7062402 37.55352 40.37848 38.5846 0.38139523
## 14 39.098 15.88840 500 0.7105509 37.67690 40.51910 38.5846 0.51339523
## 15 39.080 16.44453 500 0.7354216 37.60916 40.55084 38.5846 0.49539523
## 16 38.762 15.48693 500 0.6925966 37.37681 40.14719 38.5846 0.17739523
## 17 37.730 15.76230 500 0.7049113 36.32018 39.13982 38.5846 -0.85460477
## 18 38.080 14.75972 500 0.6600747 36.75985 39.40015 38.5846 -0.50460477
## 19 38.952 15.41834 500 0.6895290 37.57294 40.33106 38.5846 0.36739523
## 20 39.350 15.57616 500 0.6965870 37.95683 40.74317 38.5846 0.76539523
## 21 40.296 15.55185 500 0.6955000 38.90500 41.68700 38.5846 1.71139523
## 22 38.712 15.87353 500 0.7098859 37.29223 40.13177 38.5846 0.12739523
## 23 39.920 15.92510 500 0.7121921 38.49562 41.34438 38.5846 1.33539523
## 24 39.344 15.93001 500 0.7124117 37.91918 40.76882 38.5846 0.75939523
## 25 38.040 15.45692 500 0.6912543 36.65749 39.42251 38.5846 -0.54460477
## 26 38.568 14.84622 500 0.6639431 37.24011 39.89589 38.5846 -0.01660477
## 27 37.810 15.46999 500 0.6918389 36.42632 39.19368 38.5846 -0.77460477
## 28 38.110 14.86243 500 0.6646679 36.78066 39.43934 38.5846 -0.47460477
## 29 37.586 15.29216 500 0.6838864 36.21823 38.95377 38.5846 -0.99860477
## 30 37.492 14.32286 500 0.6405376 36.21092 38.77308 38.5846 -1.09260477
## 31 38.926 15.45335 500 0.6910950 37.54381 40.30819 38.5846 0.34139523
## 32 38.318 14.91865 500 0.6671821 36.98364 39.65236 38.5846 -0.26660477
## 33 39.034 15.72741 500 0.7033513 37.62730 40.44070 38.5846 0.44939523
## 34 38.566 15.11498 500 0.6759624 37.21408 39.91792 38.5846 -0.01860477
## 35 37.564 15.28021 500 0.6833518 36.19730 38.93070 38.5846 -1.02060477
## 36 38.018 14.98194 500 0.6700128 36.67797 39.35803 38.5846 -0.56660477
## 37 39.608 16.22754 500 0.7257176 38.15656 41.05944 38.5846 1.02339523
## 38 38.934 15.90432 500 0.7112630 37.51147 40.35653 38.5846 0.34939523
## 39 38.740 14.69000 500 0.6569566 37.42609 40.05391 38.5846 0.15539523
## 40 39.212 16.45858 500 0.7360500 37.73990 40.68410 38.5846 0.62739523
## 41 37.868 14.98933 500 0.6703431 36.52731 39.20869 38.5846 -0.71660477
## 42 39.380 15.45177 500 0.6910240 37.99795 40.76205 38.5846 0.79539523
## 43 37.916 15.48821 500 0.6926539 36.53069 39.30131 38.5846 -0.66860477
## 44 38.320 15.71597 500 0.7028394 36.91432 39.72568 38.5846 -0.26460477
## 45 38.616 15.20457 500 0.6799690 37.25606 39.97594 38.5846 0.03139523
## 46 38.982 16.47898 500 0.7369624 37.50808 40.45592 38.5846 0.39739523
## 47 38.840 15.87622 500 0.7100064 37.41999 40.26001 38.5846 0.25539523
## 48 36.912 14.75343 500 0.6597933 35.59241 38.23159 38.5846 -1.67260477
## 49 39.588 15.60774 500 0.6979992 38.19200 40.98400 38.5846 1.00339523
## 50 39.406 16.58503 500 0.7417052 37.92259 40.88941 38.5846 0.82139523
## int
## 1 TRUE
## 2 TRUE
## 3 TRUE
## 4 TRUE
## 5 TRUE
## 6 TRUE
## 7 TRUE
## 8 TRUE
## 9 TRUE
## 10 TRUE
## 11 TRUE
## 12 TRUE
## 13 TRUE
## 14 TRUE
## 15 TRUE
## 16 TRUE
## 17 TRUE
## 18 TRUE
## 19 TRUE
## 20 TRUE
## 21 FALSE
## 22 TRUE
## 23 TRUE
## 24 TRUE
## 25 TRUE
## 26 TRUE
## 27 TRUE
## 28 TRUE
## 29 TRUE
## 30 TRUE
## 31 TRUE
## 32 TRUE
## 33 TRUE
## 34 TRUE
## 35 TRUE
## 36 TRUE
## 37 TRUE
## 38 TRUE
## 39 TRUE
## 40 TRUE
## 41 TRUE
## 42 TRUE
## 43 TRUE
## 44 TRUE
## 45 TRUE
## 46 TRUE
## 47 TRUE
## 48 FALSE
## 49 TRUE
## 50 TRUE
hist(muestras100$m)
muestras1000 <- muestra(dfm$edad, 500, 1000)
hist(muestras1000$m)
muestras10000 <- muestra(dfm$edad, 500, 10000)
hist(muestras10000$m)
table(muestras100$int)
##
## FALSE TRUE
## 2 98
table(muestras1000$int)
##
## FALSE TRUE
## 51 949
table(muestras10000$int)
##
## FALSE TRUE
## 466 9534
Datos
library(Rmisc)
## Loading required package: lattice
## Loading required package: plyr
# Creamos un subconjunto con los datos de la Encuesta de Perú 2012
lap.pe12 <- subset(lapop, pais=="Perú" & year=="2012")
Estadísticos descriptivos del índice de apoyo al sistema político:
mean(na.omit(lap.pe12$asp))
## [1] 49.448
sd(na.omit(lap.pe12$asp))
## [1] 18.22805
length(na.omit(lap.pe12$asp))
## [1] 1407
Calculo “manual” del error estándar de la media:
sd(na.omit(lap.pe12$asp)) / sqrt(length(na.omit(lap.pe12$asp)))
## [1] 0.4859518
Usando la funcion summarySE, con intervalo de confianza al 95%
summarySE(lap.pe12, measurevar="asp", na.rm=T)
## .id N asp sd se ci
## 1 <NA> 1407 49.448 18.22805 0.4859518 0.9532686
# Si queremos un intervalo de confianza diferente: 99%
summarySE(lap.pe12, measurevar="asp", na.rm=T, conf.interval=0.99)
## .id N asp sd se ci
## 1 <NA> 1407 49.448 18.22805 0.4859518 1.25343
Por grupos de casos:
# ASP por sexo:
summarySE(lap.pe12, measurevar="asp", groupvars=c("q1"), na.rm=T)
## q1 N asp sd se ci
## 1 Hombre 710 49.16432 18.65539 0.7001242 1.374565
## 2 Mujer 697 49.73697 17.79094 0.6738799 1.323081
# ASP por Tamaño de la Localidad
summarySE(lap.pe12, measurevar="asp", groupvars=c("tamano"), na.rm=T)
## tamano N asp sd se
## 1 Capital nacional (área metropolitana) 472 48.25565 17.97861 0.8275328
## 2 Ciudad grande 320 49.19792 18.19863 1.0173345
## 3 Ciudad mediana 157 51.78344 20.14735 1.6079337
## 4 Ciudad pequeña 136 48.01471 17.50428 1.5009795
## 5 Área rural 322 50.91097 17.83152 0.9937116
## ci
## 1 1.626113
## 2 2.001533
## 3 3.176131
## 4 2.968476
## 5 1.955010
# ASP por Tamaño y Sexo
summarySE(lap.pe12, measurevar="asp", groupvars=c("q1", "tamano"), na.rm=T)
## q1 tamano N asp sd
## 1 Hombre Capital nacional (área metropolitana) 236 48.60169 18.97301
## 2 Hombre Ciudad grande 163 48.69121 17.83338
## 3 Hombre Ciudad mediana 78 48.58974 21.07856
## 4 Hombre Ciudad pequeña 68 49.06863 18.01828
## 5 Hombre Área rural 165 50.74747 18.16572
## 6 Mujer Capital nacional (área metropolitana) 236 47.90960 16.95940
## 7 Mujer Ciudad grande 157 49.72399 18.61272
## 8 Mujer Ciudad mediana 79 54.93671 18.78701
## 9 Mujer Ciudad pequeña 68 46.96078 17.04287
## 10 Mujer Área rural 157 51.08280 17.52985
## se ci
## 1 1.235037 2.433160
## 2 1.396818 2.758319
## 3 2.386677 4.752481
## 4 2.185038 4.361354
## 5 1.414199 2.792386
## 6 1.103963 2.174928
## 7 1.485457 2.934204
## 8 2.113704 4.208061
## 9 2.066752 4.125254
## 10 1.399035 2.763496
Para ASP por Tamaño de Localidad
asp.pe12 <- summarySE(lap.pe12, measurevar="asp", groupvars=c("tamano"), na.rm=T)
ggplot(asp.pe12, aes(x=tamano, y=asp)) + geom_point(size=2) +
ylim(35,65) + geom_errorbar(aes(ymin=asp-ci, ymax=asp+ci), width=0.2) +
xlab("Tamaño de la localidad") + ylab("ASP") +
ggtitle("LAPOP Perú 2012: Promedio del Índice de Apoyo al Sistema\n Político (ASP) según tamaño de la localidad e Intervalo\n de confianza al 95%") +
theme_bw() + coord_flip()
ASP por páises en América Latina:
lapop12 <- subset(lapop, year=="2012")
asp.la12 <- summarySE(lapop12, measurevar="asp", groupvars=c("pais"), na.rm=T)
ggplot(asp.la12, aes(x=pais, y=asp)) + geom_point(size=2) +
geom_errorbar(aes(ymin=asp-ci, ymax=asp+ci), width=0.2) +
xlab("Pais") + ylab("ASP") +
ggtitle("LAPOP 2012: Promedio del Índice de Apoyo al Sistema\n Político (ASP) según País e Intervalo\n de confianza al 95%") +
theme_bw() + coord_flip()
# Si queremos que salgan ordenados de menos a más :
ggplot(asp.la12, aes(x=reorder(pais, asp), y=asp)) + geom_point(size=2) +
geom_errorbar(aes(ymin=asp-ci, ymax=asp+ci), width=0.2) +
xlab("Pais") + ylab("ASP") +
ggtitle("LAPOP 2012: Promedio del Índice de Apoyo al Sistema\n Político (ASP) según País e Intervalo\n de confianza al 95%") +
theme_bw() + coord_flip()
# Si queremos que salgan ordenados de más a menos:
ggplot(asp.la12, aes(x=reorder(pais, -asp), y=asp)) + geom_point(size=2) +
geom_errorbar(aes(ymin=asp-ci, ymax=asp+ci), width=0.2) +
xlab("Pais") + ylab("ASP") +
ggtitle("LAPOP 2012: Promedio del Índice de Apoyo al Sistema\n Político (ASP) según País e Intervalo\n de confianza al 95%") +
theme_bw() + coord_flip()