David Sulmont
6/10/2016
En esta presentación mostraremos cómo calcular intervalos de confianza usando el R
Para ello utilizaremos los datos de la EMV de Perú que deben descargarse de la plataforma PAIDEIA
load("wvs_peru_v2.rdata")
wvs.peru$oleada <- factor(wvs.peru$oleada)
table(wvs.peru$oleada)
##
## 1995-1998 1999-2004 2005-2009 2010-2014
## 1211 1501 1500 1210
La fórmula para calcular un intervalo de confianza para medias es la siguiente:
\[IC_{1-\alpha}=\bar{x}\pm \sigma_{\bar{x}}(Z_{1-\alpha})\]
Donde:
Niveles de confianza más comunes en CCSS:
Variable: Satisfacción con la vida para la última oleada (a170r)
Primero necesitamos los estadÃsticos descriptivos
peru12 <- subset(wvs.peru, oleada=="2010-2014")
length(peru12$a170r)
## [1] 1210
summary(peru12$a170r)
## Min. 1st Qu. Median Mean 3rd Qu. Max. NA's
## 1.000 6.000 7.000 7.134 9.000 10.000 4
sd(peru12$a170r, na.rm=T)
## [1] 2.184487
Tenemos: N = 1206; \(\bar{x}=7.13\); \(S_{x}=2.18\)
Cálculo del Error estándar
2.18/sqrt(1206)
## [1] 0.06277444
Cálculo del Margen de error
(2.18/sqrt(1206))*1.96
## [1] 0.1230379
LÃmite inferior y superior del intervalo de confianza
7.13 - (2.18/sqrt(1206))*1.96
## [1] 7.006962
7.13 + (2.18/sqrt(1206))*1.96
## [1] 7.253038
library(Rmisc)
Intervalo de confianza al 95%
summarySE(data=peru12, measurevar = "a170r", na.rm = T)
## .id N a170r sd se ci
## 1 <NA> 1206 7.134328 2.184487 0.06290364 0.1234128
Intervalo de confianza al 99%
summarySE(data=peru12, measurevar = "a170r", conf.interval = 0.99, na.rm = T)
## .id N a170r sd se ci
## 1 <NA> 1206 7.134328 2.184487 0.06290364 0.1622861
summarySE(data=wvs.peru, measurevar = "a170r", groupvars = "oleada" , na.rm = T)
## oleada N a170r sd se ci
## 1 1995-1998 1191 6.361881 2.434181 0.07053374 0.1383843
## 2 1999-2004 1490 6.440268 2.396155 0.06207573 0.1217652
## 3 2005-2009 1490 7.024832 2.229613 0.05776123 0.1133020
## 4 2010-2014 1206 7.134328 2.184487 0.06290364 0.1234128
df.g1 <- summarySE(data=wvs.peru, measurevar = "a170r",
groupvars = "oleada" , na.rm = T)
library(ggplot2)
graf1 <- ggplot(data=df.g1, aes(x=oleada, y=a170r)) + geom_point() +
ylim(4,9) + geom_errorbar(aes(ymin=a170r-ci, ymax=a170r+ci), width=0.2) +
xlab("") + ylab("Nivel de satisfacción con la vida") +
ggtitle("Perú EMV: Nivel de satisfacción con la vida según oleada\n Media e intervalo de confianza al 95%") +
theme_bw()
df.g2 <- summarySE(data=wvs.peru, measurevar = "a170r",
groupvars = c("oleada", "gedad"), na.rm = T)
df.g2
## oleada gedad N a170r sd se ci
## 1 1995-1998 15 a 29 511 6.475538 2.251555 0.09960291 0.1956825
## 2 1995-1998 30 a 49 488 6.209016 2.566840 0.11619537 0.2283061
## 3 1995-1998 50 a más 192 6.447917 2.545378 0.18369683 0.3623350
## 4 1999-2004 15 a 29 601 6.524126 2.304308 0.09399467 0.1845985
## 5 1999-2004 30 a 49 633 6.274882 2.397312 0.09528460 0.1871127
## 6 1999-2004 50 a más 256 6.652344 2.580514 0.16128213 0.3176146
## 7 2005-2009 15 a 29 550 7.029091 2.154985 0.09188887 0.1804968
## 8 2005-2009 30 a 49 617 6.977310 2.144035 0.08631561 0.1695085
## 9 2005-2009 50 a más 323 7.108359 2.502922 0.13926631 0.2739868
## 10 2010-2014 15 a 29 409 7.315403 2.052206 0.10147508 0.1994792
## 11 2010-2014 30 a 49 492 7.095528 2.203732 0.09935193 0.1952074
## 12 2010-2014 50 a más 305 6.954098 2.310842 0.13231844 0.2603760
graf2 <- ggplot(data=df.g2, aes(x=oleada, y=a170r)) + geom_point() +
ylim(4,9) + geom_errorbar(aes(ymin=a170r-ci, ymax=a170r+ci), width=0.2) +
xlab("") + ylab("Nivel de satisfacción con la vida") +
facet_wrap(~gedad) +
ggtitle("Perú EMV: Nivel de satisfacción con la vida según oleada y grupo de edad\n Media e intervalo de confianza al 95%") +
theme_bw() +
theme(axis.text.x = element_text(angle=45, vjust=0.5, size=10))