Mostrando las entradas con la etiqueta VIM. Mostrar todas las entradas
Mostrando las entradas con la etiqueta VIM. Mostrar todas las entradas

sábado, 21 de septiembre de 2013

Homicidios intencionales. Imputación de datos faltantes

Tasas de homicidio a nivel mundial con énfasis en las tasas de Venezuela, 1995-2011. Parte II

Tasas de homicidio a nivel mundial con énfasis en las tasas de Venezuela, 1995-2011. Parte II

Queremos analizar la data sobre homicidios intencionales en el mundo para intentar responder las siguientes preguntas:

  • ¿Venezuela es el país más violento del mundo? Si no lo es,
  • ¿Está entre los países más violentos del mundo?
  • ¿Cómo podríamos clasificar los países tomando como referencias tasas de homicidios intencionales?
  • ¿Qué tan parecidos o diferentes son los paises según la tasa de homicidios reportadas?

Hemos comenzado por un diagnóstico de los datos faltantes. Una información necesaria para estar en capacidad de determinar hasta qué punto, con esta data podriamos responder las preguntas anteriores. Y hemos comprobado que la data presenta una proporción bastante elevada de datos faltantes que dificulta, por ejemplo, llegar a conclusiones sólidas si se compara el nivel de violencia -partimos del supuesto de que la tasa de homicidio intencional es un indicador proxy del grado de violencia en una sociedad dada- por regiones y subregiones. En este post completaremos este análisis observando con mayor detenimiento el comportamiento de los datos faltantes años a año.

Data

Tal como indicamos en la primera parte de este análisis, la data sobre homicidios intencionales recopilada por Oficina de las Naciones Unidas Contra la Droga y el Delito contiene una gran cantidad de datos pérdido. Las regiones con mayor cantidad de datos pérdidos son Africa y Oceanía. En la siguiente matriz, los datos faltantes se resaltan en color rojo:

matrixplot(homicidios)

plot of chunk unnamed-chunk-1

Separemos entonces la data para:

  • obtener los países con data completa
  • obtener los paises con data incompleta y dentro de estos
  • extraer los casos completos en cada años
  • Descartar los casos incompletos cada año
  • analizar las tasas de homicidios en los países con data completa y comparar esas observaciones con las tasas en Venezuela
  • analizar las tasas año año tomando los casos con información completa cada año

Primero vamos a obtener la data correspondiente a Venezuela, la exploramos, imputamos el valor faltante para 2011 y luego obtenemos los dos tipos de muestras, la completa y la que contiene datos faltantes. Seleccionemos los datos correspondientes a Venezuela

venezuela <- homicidios[which(homicidios$pais == "venezuela"), ]
# información básica sobre la data
venezuela[, 1:5]
##      region     subregion      pais tipo  fuente
## 99 americas south america venezuela   cj ngo (c)

Venezuela está clasificado como el país número 99, en la región denominada americas, la subgerion sur america el tipo de fuente corresponde a lo que la Oficina clasificaca como criminal justice y la fuente es The Venezuelan Program of Action and Education in Human Rights (PROVEA)

Veamos la distribución de la tasas de homicidios intencionales disponibles para Venezuela:

barplot(as.matrix(venezuela[, 7:22]), names.arg = c("1995", "1996", "1997", 
    "1998", "1999", "2000", "2001", "2002", "2003", "2004", "2005", "2006", 
    "2007", "2008", "2009", "2010"), ylim = c(0, 60), las = 2, border = "white")
grid(nx = "", ny = 6, col = "white")

plot of chunk faltanteAnuales

Venezuela solo presenta como faltante la data correspondiente al año 2011. Vamos a imputar. Algunas personas emplean la media. Esta práctica, sin embargo, presentar serios inconvenientes. Por otra parte, R cuenta con un paquete para imputar valores a series de tiempo. El paquete longitudinalData. Emplearemos este paquete para comparar qué tanto difiere la imputación del valor de la tasa para el año 2011 usando la media, o empleando uno de los métodos del paquete longitudinalData:

# usando la media de los casos
rowMeans(venezuela[, 7:22])
##    99 
## 35.36
require(longitudinalData)
imputation(as.matrix(venezuela[, 7:23], "crossMean"))
##    A1995 A1996 A1997 A1998 A1999 A2000 A2001 A2002 A2003 A2004 A2005 A2006
## 99 20.34 22.05  18.4 19.42 24.99 32.95 32.08 38.05 44.07  37.1 37.37 45.18
##    A2007 A2008 A2009 A2010 A2011
## 99 47.68    52 49.04 45.13 45.13

Si usamos la media posiblemente subvaloramos las tasas de homicidios para 2011,35.35, colocándola muy por debajo de la tendencia en los últimos años, y por tanto, generando una impresión bastante errada. La tasa generada empleando el paquete longituinalData, 45.13, conserva la tendencia presente en la serie por lo que representa un valor mucho más plausible:

matplot(t(imputation(as.matrix(venezuela[, 7:23], method = "crossMean"))), ylab = "metodo= crossMean", 
    xlab = "periodos", ylim = c(0, 60))
grid(nx = 3, ny = 2)

plot of chunk graficoMatPlot

Agregamos el valor obtenido a la data

# valor actual
homicidios$A2011[99]
## [1] NA
# imputamos
homicidios$A2011[99] <- 43.13
# valor agregado para la tasa de homicidio de 2011
homicidios$A2011[99]
## [1] 43.13

Procedemos a extraer las submuestras necesarias para nuestros análisis. Observamos que 56 países tienen datos completos: 2 africanos, 14 en las américa, 8 en aasia, 30 en europa y 2 en oceania:

Homicidios intencionales. Casos completos
region subregion pais
africa eastern africa mauritius
africa southern africa south africa
americas caribbean dominican republic
americas caribbean jamaica
americas caribbean saint vincent and the grenadines
americas central america costa rica
americas central america el salvador
americas central america guatemala
americas central america mexico
americas central america nicaragua
americas central america panama
americas northern america canada
americas northern america united states of america
americas south america colombia
americas south america guyana
americas south america venezuela
asia central asia kazakhstan
asia central asia kyrgyzstan
asia eastern asia japan
asia south-eastern asia singapore
asia south-eastern asia thailand
asia southern asia india
asia western asia georgia
asia western asia israel
europe eastern europe bulgaria
europe eastern europe czech republic
europe eastern europe hungary
europe eastern europe poland
europe eastern europe republic of moldova
europe eastern europe romania
europe eastern europe slovakia
europe northern europe denmark
europe northern europe estonia
europe northern europe finland
europe northern europe iceland
europe northern europe ireland
europe northern europe lithuania
europe northern europe norway
europe northern europe sweden
europe northern europe u.k.england and wales
europe northern europe u.k.northern ireland
europe northern europe u.k.scotland
europe southern europe albania
europe southern europe croatia
europe southern europe greece
europe southern europe italy
europe southern europe slovenia
europe southern europe spain
europe western europe austria
europe western europe france
europe western europe germany
europe western europe liechtenstein
europe western europe luxembourg
europe western europe switzerland
oceania australia and new zealand australia
oceania australia and new zealand new zealand

viernes, 20 de septiembre de 2013

Patron de datos faltantes

Tasas de homicidio a nivel mundial con énfasis en las tasas de Venezuela, 1995-2011. Parte II

Tasas de homicidio a nivel mundial con énfasis en las tasas de Venezuela, 1995-2011. Parte II

Queremos analizar la data sobre homicidios intencionales en el mundo para intentar responder las siguientes preguntas:

  • ¿Venezuela es el país más violento del mundo? Si no lo es,
  • ¿Está entre los países más violentos del mundo?
  • ¿Cómo podríamos clasificar los países tomando como referencias tasas de homicidios intencionales?
  • ¿Qué tan parecidos o diferentes son los paises según la tasa de homicidios reportadas?

Hemos comenzado por un diagnóstico de los datos faltantes. Una información necesaria para estar en capacidad de determinar hasta qué punto, con esta data podriamos responder las preguntas anteriores. Y hemos comprobado que la data presenta una proporción bastante elevada de datos faltantes que dificulta, por ejemplo, llegar a conclusiones sólidas si se compara el nivel de violencia -partimos del supuesto de que la tasa de homicidio intencional es un indicador proxy del grado de violencia en una sociedad dada- por regiones y subregiones. En este post completaremos este análisis observando con mayor detenimiento el comportamiento de los datos faltantes años a año.

Data

Tal como indicamos en la primera parte de este análisis, la data sobre homicidios intencionales recopilada por Oficina de las Naciones Unidas Contra la Droga y el Delito contiene una gran cantidad de datos pérdido. Las regiones con mayor cantidad de datos pérdidos son Africa y Oceanía, como podemos apreciar en la siguiente gráfica (los datos faltantes estan en color verde oscuro):

barMiss(homicidios, col = c("#ADDD8E", "#004529"), border = "white", pos = 1, 
    xla = "")

plot of chunk unnamed-chunk-1

En cuanto a las regiones, veamos el comportamiento:


barMiss(homicidios, col = c("#ADDD8E", "#004529"), border = "white", pos = 2, 
    xla = "")

plot of chunk unnamed-chunk-2

Recordemos que las subregiones son:

australia and new zealand, caribbean, central america, central asia, eastern africa, eastern asia, eastern europe, melanesia, micronesia, middle africa, northern africa, northern america, northern europe, polynesia, south-eastern asia, south america, southern africa, southern asia, southern europe, western africa, western asia, western europe Por último, Observando la relación de datos perdidos por años, encontramos que en forma global, en los 17 años de un total de 3553 datos posibles, hay un total de 1601 casos perdidos, 45.06% y 1952 casos disponible, 54.94%. El porcentaje de datos perdidos por cada año es:


dd <- sapply(homicidios[, 7:23], function(x) round(mean(is.na(x)) * 100, 2))
names(dd) <- Años
data.frame(porcentaje = dd)
##      porcentaje
## 1995      64.59
## 1996      62.20
## 1997      61.24
## 1998      56.46
## 1999      54.55
## 2000      47.37
## 2001      47.37
## 2002      46.89
## 2003      41.15
## 2004      34.45
## 2005      33.49
## 2006      32.06
## 2007      32.06
## 2008       9.09
## 2009      37.80
## 2010      45.45
## 2011      59.81
## [1] 55 23
## [1] 154  23

Con respecto a los casos, solo 55 países de 209, 23,9%, tienen información completa sobre la tasa de homicidio intencional en el lapso observado, en tanto que 159, 76,1% presentan datos faltantes. Al observar el gráfico que se presenta a continuación, los casos con datos faltante aparecen en color rojo y con data, en color azul, notamos que la data parece seguir un patrón NMAR, por lo que seria un tanto temerario imputar esos valores, salvos para algunos casos, en los que falta 3 o menos valores, Venezuela por ejemplo. Por otra parte, hay regiones en las que sistemáticamente falta información y de la que se dispone no siempre corresponde a los mismos países que reportaron homicidios intencionales en el año inmediatamente anterior. No hay pues continuidad en la serie. Por consiguiente, sólamente el análisis de los valores perdidos nos indica ya que no podemos afirmar o negar si Venezuela es el pais más violento del mundo, o si está dentro del grupo de los países más violentos. Podemos comparar la información de Venezuela con la de los países que tienen datos completos, o, en todo caso, analizar el comportamiento año a año de estas tasas en Venezuela con respecto a la de los países que reportaron la información en esos años. En uno u otro caso, Venezuela, de presentar tasas más altas, se podría comparar con el 23% de los países del mundo, o con el porcentaje de países que tienen esa información:


aggr(homicidios, prop = FALSE, numbers = TRUE)

plot of chunk patron plot of chunk patron