Me acabo de encontrar con el siguiente artículo que habla sobre proyecciones globales de población. Espero les sea de interés.
http://www.guardian.co.uk/environment/2011/sep/19/environment-population-forecasts-wrong
Si no pueden verlos, hagan click aquí.
Saludos,
VMGG
Some friends asked me about how to built population pyramids with confidence intervals in R. When I did my own probabilistic population projections, I had the same trouble, unfortunately there is no library to do that. So here I share the code I wrote:
The variables ic.NF_mid and ic.NM_mid (the F is for females and the M is for males) are arrays where the rows are the age groups, the columns are the confidence intervals and each layer is the projected year. So,
icNF.arr<-array(as.numeric(NA),dim(ic.NF_mid))
icNF.arr[,1,]<-ic.NF_mid[,1,]
icNF.arr[,2,]<-ic.NF_mid[,2,]-ic.NF_mid[,1,]
icNF.arr[,3,]<-ic.NF_mid[,3,]-ic.NF_mid[,1,]
icNM.arr<-array(as.numeric(NA),dim(ic.NM_mid))
icNM.arr[,1,]<-ic.NM_mid[,1,]
icNM.arr[,2,]<-(ic.NM_mid[,2,]-ic.NM_mid[,1,])
icNM.arr[,3,]<-(ic.NM_mid[,3,]-ic.NM_mid[,1,])
icNF.dat<-data.frame(icNF.arr,row.names=c(0:104,”105+”))
icNM.dat<-data.frame(-icNM.arr,row.names=c(0:104,”105+”))
layer<-13
par(mfrow=c(1,2),bty=”n”,mai=c(0.5, 0.25, 0.25, 0.25))
barplot(height=t(icNM.dat[,layer*3-c(2:0)]), width = 0.825, space = NULL,
names.arg = NULL, legend.text = NULL, beside = FALSE,
horiz = TRUE, density = NULL, angle = 0,
col = c(“yellow”,”Blue”,”orange”), border = par(“fg”),
main = “Men”,
xlim = NULL, ylim = NULL, xpd = TRUE, log = “”,
axes = F, axisnames = FALSE,cex.axis=0.75)
axis(1,hadj=NA,padj=NA,cex.axis=0.75,las=1,
labels=c(“0″,”2e+05″,”4e+05″,”6e+05″,”8e+05″,”1000000″,”1200000″),
at=c(0,-200000,-400000,-600000,-800000,-1000000,-1200000))
grid(nx = NULL, ny = NA, col = “lightgray”, lty = “dotted”,
lwd = par(“lwd”), equilogs = TRUE)
barplot(height=t(icNF.dat[,layer*3-c(2:0)]), width = 0.825, space = NULL,
names.arg = NULL, legend.text = c(“Inf 95%”,”Mediana”,”Sup 95%”),
beside = FALSE,
horiz = TRUE, density = NULL, angle = 0,
col = c(“yellow”,”Blue”,”orange”), border = par(“fg”),
main = “Women”,
xlim = NULL, ylim = NULL, xpd = TRUE, log = “”,
axes = TRUE, axisnames = FALSE,cex.axis=0.75)
axis(2,pretty(c(0:105),n=21),hadj=0.5,padj=0.5,cex.axis=0.75,
las=2)
grid(nx = NULL, ny = NA, col = “lightgray”, lty = “dotted”,
lwd = par(“lwd”), equilogs = TRUE)
Here you can see the result: piram_2018
I hope it will help you. All the comments are very welcome.
Cheers!!!
Si no pueden visualizarlo, den click aquí.