Cómo trazar tendencias correctamente

45

Estoy creando un gráfico para mostrar las tendencias en las tasas de mortalidad (por 1000 personas) en diferentes países y la historia que debería surgir de la trama es que Alemania (línea azul claro) es la única cuya tendencia está aumentando después de 1932. Esto es mi primer intento (básico)

ingrese la descripción de la imagen aquí

En mi opinión, este gráfico ya muestra lo que queremos que diga, pero no es súper intuitivo. ¿Tiene alguna sugerencia para aclarar esa distinción entre tendencias? Estaba pensando en trazar las tasas de crecimiento, pero lo intenté y no es tan mejor.

Los datos son los siguientes

year     de     fr      be       nl     den      ch     aut     cz       pl
1927    10.9    16.5    13      10.2    11.6    12.4    15      16      17.3
1928    11.2    16.4    12.8    9.6     11      12      14.5    15.1    16.4
1929    11.4    17.9    14.4    10.7    11.2    12.5    14.6    15.5    16.7
1930    10.4    15.6    12.8    9.1     10.8    11.6    13.5    14.2    15.6
1931    10.4    16.2    12.7    9.6     11.4    12.1    14      14.4    15.5
1932    10.2    15.8    12.7    9       11      12.2    13.9    14.1    15
1933    10.8    15.8    12.7    8.8     10.6    11.4    13.2    13.7    14.2
1934    10.6    15.1    11.7    8.4     10.4    11.3    12.7    13.2    14.4
1935    11.4    15.7    12.3    8.7     11.1    12.1    13.7    13.5    14
1936    11.7    15.3    12.2    8.7     11      11.4    13.2    13.3    14.2
1937    11.5    15      12.5    8.8     10.8    11.3    13.3    13.3    14
Doctorado
fuente
2
Los datos de Italia y España serían interesantes en comparación. También tenían gobiernos fascistas en esa época.
asmaier
1
Además de las buenas ideas dadas en las respuestas, asegúrese de comenzar su diagrama en 0 (eje y) para que las magnitudes de los cambios relativos sean más visibles.
WoJ
2
@WoJ Veo su punto, pero en la práctica el rango es de aproximadamente 9 a aproximadamente 18 por 1000, por lo que la mitad del espacio del gráfico se gastaría mostrando que la tasa de mortalidad no es cero. Creo que es por eso que la mayoría de las personas (incluido yo mismo) no quería hacer eso en sus respuestas hasta ahora. Considere dónde se detiene su criterio, por ejemplo, ¿insistiría en que las tramas de variaciones históricas en la estatura adulta comienzan en cero? Más discusión en, por ejemplo, stats.stackexchange.com/questions/184525/…
Nick Cox
1
En lugar de pensar en el gráfico, primero me pregunto qué subyace a los datos y al análisis. ¿Qué factores están involucrados con la tasa de mortalidad? ¿La tasa de mortalidad disminuye más rápido si ya es alta (por ejemplo, Polonia)? ¿Las tasas de mortalidad se estancan en algún nivel? ¿Este efecto de meseta (que es más fuerte para Alemania) puede hacer que el aumento para Austria (en los últimos años) sea un efecto más fuerte? El gráfico es una especie de datos sin procesar (aún necesita ser analizado) y al mismo tiempo se deriva (los números no son mediciones simples sino derivadas), esto dificulta el resaltar 1 efecto.
Sextus Empiricus
1
Además, es mejor que muestre un período mayor que solo 10 años. El enfoque en estos diez años es justo cuando se muestran los alrededores. Es muy común ver primeros planos que tienen mucho menos sentido en una perspectiva más amplia. Cuando estas curvas suben y bajan como olas en una tormenta, entonces tienes que mostrar todo el mar y no solo una ola que se correlacione con una bonita historia. (Estoy seguro de que hay un ejemplo de Tufte que muestra este principio)
Sextus Empiricus

Respuestas:

53

A veces menos es más. Con menos detalles sobre las variaciones de año a año y las distinciones de país, puede proporcionar más información sobre las tendencias. Dado que los otros países se están moviendo principalmente juntos, puede sobrevivir sin colores separados.

Al usar un suavizador, usted requiere que el lector confíe en que no ha suavizado ninguna variación interesante.

ingrese la descripción de la imagen aquí

Actualice después de recibir un par de solicitudes de código :

Hice esto en Graph Builder interactivo de JMP . El script JMP es:

Graph Builder(
Size( 528, 456 ), Show Control Panel( 0 ), Show Legend( 0 ),
// variable role assignments:
Variables( X( :year ), Y( :Deaths ), Overlay( :Country ) ),
// spline smoother:
Elements( Smoother( X, Y, Legend( 3 ) ) ),
// customizations:
SendToReport(
    // x scale, leaving room for annotations
    Dispatch( {},"year",ScaleBox,
        {Min( 1926.5 ), Max( 1937.9 ), Inc( 2 ), Minor Ticks( 1 )}
    ),
    // customize colors and DE line width
    Dispatch( {}, "400", ScaleBox, {Legend Model( 3,
        Properties( 0, {Line Color( "gray" )}, Item ID( "aut", 1 ) ),
        Properties( 1, {Line Color( "gray" )}, Item ID( "be", 1 ) ),
        Properties( 2, {Line Color( "gray" )}, Item ID( "ch", 1 ) ),
        Properties( 3, {Line Color( "gray" )}, Item ID( "cz", 1 ) ),
        Properties( 4, {Line Color( "gray" )}, Item ID( "den", 1 ) ),
        Properties( 5, {Line Color( "gray" )}, Item ID( "fr", 1 ) ),
        Properties( 6, {Line Color( "gray" )}, Item ID( "nl", 1 ) ),
        Properties( 7, {Line Color( "gray" )}, Item ID( "pl", 1 ) ),
        Properties( 8, {Line Color("dark red"), Line Width( 3 )}, Item ID( "de", 1 ))
    )}),
    // add line annotations (omitted)

));

xan
fuente
44
En mi experiencia, la serie de suavizado es una práctica muy rara en las ciencias sociales.
luchonacho
66
¿Tal vez esa sea una razón para mostrarles algo nuevo y útil?
kjetil b halvorsen
99
Independientemente de las normas en ciencias sociales, encuentro que el suavizado oculta la caída que ocurre en 1930 y el repunte que ocurre en 1935. El aumento en varios países que ocurre en 1929 también está oscurecido. De lo contrario, me gusta mucho este enfoque simplista.
Underminer
77
+1 por usar solo dos colores (¿quizás hacer que el gris sea aún más claro?) Y evitar la leyenda colocando los nombres de los países a la derecha. -1 para suavizar, que descarta información sin una buena razón. Así que no necesito votar en realidad ;-)
S. Kolassa - Restablecer a Monica el
10
@StephanKolassa Creo que el punto de Xan está allí es una buena razón para información de descarte: centrarse en las tendencias generales, en lugar de la variabilidad de año a año "ruido". Hasta cierto punto, ya está "descartando información": está mirando los números anuales. Dudo que el gráfico se mejore al trazar las tarifas diarias, que es a donde te lleva "no descartar información", ad absurdum . - Es cierto que algunas tendencias están oscurecidas por el suavizado, pero otras (como la variación estacional) están oscurecidas por la elección de las tasas anuales. Existe cierta confianza en que la variación relevante todavía se está mostrando.
RM
39

Hay buenas respuestas aquí. Déjame tomarte la palabra de que quieres mostrar que la tendencia para Alemania difiere del resto. Los niveles frente a los cambios son una distinción común en economía. Sus datos están en niveles , pero su pregunta se indica como buscando cambios . La forma de hacerlo es establecer el nivel de referencia (aquí 1932) como . A partir de ahí, cada año sucesivo es una fracción del anterior. (Es común tomar registros para hacer cambios más estables y simétricos. Esto cambia un poco el significado de los números exactos, si realmente quieres que alguien obtenga eso de la trama, pero generalmente para este tipo de cosas, la gente quiere ser capaz de ver el patrón.) Luego obtienes una suma acumulada para cada serie y la multiplicas por100 1001100por convención. Eso es lo que tramas. Su caso es un poco menos común ya que su punto de referencia está en el medio de su serie, por lo que ejecuté esto en ambas direcciones desde 1932. A continuación se muestra un ejemplo simple, codificado en R (habrá muchas formas de hacer el código y trama más agradable, pero esto debería mostrar la idea directamente). Hice la línea para Alemania más gruesa para distinguirla en la leyenda, y agregué una línea de referencia en . Es fácil ver que Alemania se destaca del resto. También puede ver que todos los demás países terminan con tasas más bajas en 1937 que en 1932, y que sus cambios año tras año fluctúan mucho menos en los años posteriores a 1932 que en los años anteriores. 100

d = read.table(text="
year     de     fr      be       nl     den      ch     aut     cz       pl
1927    10.9    16.5    13      10.2    11.6    12.4    15      16      17.3
...
1937    11.5    15      12.5    8.8     10.8    11.3    13.3    13.3    14",
header=T)

d2          = d  # we'll end up needing both
d2[6,2:10]  = 1  # set 1932 as 1
for(j in 2:10){   
  for(i in 7:11){
      # changes moving forward from 1932:
    d2[i,j] = log( d[i,j]/d[i-1,j] )
      # running sum moving forward from 1932:
    d2[i,j] = d2[i,j]+d2[i-1,j]
  }
  for(i in 5:1){
      # changes moving backward from 1932:
    d2[i,j] = log( d[i,j]/d[i+1,j] )
      # running sum moving forward from 1932:
    d2[i,j] = d2[i+1,j]+d2[i,j]
  }
}
d2[,2:10]   = d2[,2:10]*100  # multiply all values by 100

windows()  # plot of changes
  plot(1,1, xlim=c(1927,1937), ylim=c(82,118), xlab="Year", 
       ylab="Change from 1932", main="European death rates")
  abline(h=100, col="lightgray")
  for(j in 2:10){
    lines(1927:1937, d2[,j], col=rainbow(9)[j-1], lwd=ifelse(j==2,2,1))
  }
  legend("bottomleft", legend=colnames(d2)[2:10], lwd=c(2,rep(1,8)), lty=1, 
         col=rainbow(9), ncol=2)

windows()  # plot of levels
  plot(1,1, xlim=c(1927,1937), ylim=c(8,18.4), xlab="Year", 
       ylab="Deaths per thousand", main="European death rates")
  abline(h=d[6,2:10], col="gray90")
  points(rep(1932,9), d[6,2:10], col=rainbow(9), pch=16)
  for(j in 2:10){
    lines(1927:1937, d[,j], col=rainbow(9)[j-1], lwd=ifelse(j==2,2,1))
  }
  legend("topright", legend=colnames(d)[2:10], lwd=c(2,rep(1,8)), lty=1, 
         col=rainbow(9), ncol=2)

ingrese la descripción de la imagen aquí

Por el contrario, a continuación se muestra una gráfica correspondiente de los datos en niveles. Sin embargo, traté de hacer posible ver que Alemania solo sube después de 1932 de dos maneras: puse un punto destacado en cada serie en 1932, y dibujé una tenue línea gris a través de la trama en el fondo en esos niveles.

ingrese la descripción de la imagen aquí

gung - Restablece a Monica
fuente
+1 solución realmente genial
Repmat
2
Hay suficiente espacio para perder la leyenda (eliminar la clave) y etiquetar cada curva directamente dentro del cuerpo del gráfico.
Nick Cox
3
Hay muchas maneras de hacer que el código y la trama sean más agradables. Mi punto principal aquí fue distinguir b / t las ideas de niveles y cambios, y proporcionar una demostración básica de cómo se pueden visualizar los cambios.
gung - Reinstale a Monica
17

Hay muchas buenas ideas aquí en otras respuestas, pero no agotan las buenas soluciones que son posibles. El primer gráfico en esta respuesta supone que los diferentes niveles de tasa de mortalidad se pueden discutir y explicar por separado. Al permitir que cada serie ocupe gran parte del espacio disponible, enfoca la atención de los lectores en patrones de cambio relativo.

Por lo general, el orden alfabético por país es un error de tonto, y no se insiste aquí. Afortunadamente, y afortunadamente, Alemania como de está en el centro de esta pantalla de 3 x 3. Una narración simple: ¡Mira! El patrón de Alemania es excepcional con un repunte desde 1932: es posible y plausible.

ingrese la descripción de la imagen aquí

Afortunadamente, pero afortunadamente, 9 países son suficientes para justificar el intento de paneles separados, pero no demasiados para hacer que ese diseño sea impracticable (con, digamos, 30 y ciertamente 300 paneles, podría (habría) demasiados paneles para escanear, cada uno demasiado pequeño para escudriñar).

Evidentemente, hay mucho espacio aquí para nombres de países más completos. (En algunas otras respuestas, las leyendas ocupan una gran parte del espacio disponible, sin dejar de ser un poco crípticas. En la práctica, las personas interesadas en dichos datos encontrarán que las abreviaturas de los países son fáciles de descifrar, pero a menudo se necesita una leyenda problema molesto en el diseño gráfico).

Código Stata para el registro:

clear
input int year double(de fr be nl den ch aut cz pl)
1927 10.9 16.5   13 10.2 11.6 12.4   15   16 17.3
1928 11.2 16.4 12.8  9.6   11   12 14.5 15.1 16.4
1929 11.4 17.9 14.4 10.7 11.2 12.5 14.6 15.5 16.7
1930 10.4 15.6 12.8  9.1 10.8 11.6 13.5 14.2 15.6
1931 10.4 16.2 12.7  9.6 11.4 12.1   14 14.4 15.5
1932 10.2 15.8 12.7    9   11 12.2 13.9 14.1   15
1933 10.8 15.8 12.7  8.8 10.6 11.4 13.2 13.7 14.2
1934 10.6 15.1 11.7  8.4 10.4 11.3 12.7 13.2 14.4
1935 11.4 15.7 12.3  8.7 11.1 12.1 13.7 13.5   14
1936 11.7 15.3 12.2  8.7   11 11.4 13.2 13.3 14.2
1937 11.5   15 12.5  8.8 10.8 11.3 13.3 13.3   14
end

rename (de-pl) (death=)
reshape long death, i(year) j(country) string
set scheme s1color 
line death year, by(country, yrescale note("")) xtitle("") xla(1927(5)1937)

EDITAR:

Una mejora simple de este gráfico sugerido por Tim Morris es resaltar el año en que ocurrió el máximo:

ingrese la descripción de la imagen aquí

egen max = max(death) , by(country)
replace max = max == death
twoway line death year || scatter death year if max, ms(O)  ///
by(country, yrescale note("") legend(off)) xtitle("") xla(1927(5)1937)  

EDIT 2 (revisado para mostrar código más simple):

Alternativamente, este próximo diseño muestra cada serie por separado, pero cada vez con la otra serie como telón de fondo. La idea general se discute dentro de este hilo relacionado .

ingrese la descripción de la imagen aquí

Aquí hay pérdida y ganancia. Si bien cada serie se puede ver más fácilmente en el contexto de otras, el espacio se pierde por la repetición.

Código Stata para el registro:

(Código de input, reshape, renamecomo anteriormente en esta respuesta)

* type "ssc inst fabplot" to install
fabplot line death year, by(country, compact note("countries highlighted in turn")) ///
ytitle("death rate, yearly deaths per 1000") yla(8(2)18, ang(h)) ///
xla(1927(5)1937, format(%tyY)) xtitle("") front(connected) 

fabplotdebe entenderse como front u foreground and backdrop o background plot, no como un eco de la jerga de 1960 para "fabuloso".

Nick Cox
fuente
3
+1, debo decir, el código es bastante conciso para producir una buena trama como esa.
gung - Restablece a Monica
@gung Gracias. Cualquier aclamación aquí es merecida por StataCorp ya que estos son comandos incorporados. Cosméticamente, estoy eliminando texto predeterminado, por ejemplo, yearcomo título del eje x (¿quién lo necesita? Agregaré que a un usuario de Stata la estructura de datos naturales sería una que no obligara a renamey reshape. pero tiene paneles distintos (aquí países) como bloques distintos de observaciones.
Nick Cox
+1 Sin embargo, una característica problemática de esta solución es que pierde el contexto: no podemos ver fácilmente que, aunque la tasa de mortalidad de Alemania ha aumentado, comenzó en un nivel bajo y todavía no era (relativamente) muy alta al final.
whuber
1
El diseño alternativo en EDIT 2 es una forma de abordar el punto clave hecho por @whuber sobre el contexto.
Nick Cox
15

Su gráfico es razonable, pero requeriría cierto refinamiento, incluido un título, etiquetas de eje y etiquetas completas de país. Si su objetivo es enfatizar el hecho de que Alemania fue el único país con un aumento en la tasa de mortalidad durante el período de observación, entonces una forma simple de hacerlo sería resaltar esta línea en la trama, ya sea usando una línea más gruesa, una diferente tipo de línea o transparencia alfa. También puede aumentar su diagrama de series de tiempo con un diagrama de barras que muestra el cambio en la tasa de mortalidad a lo largo del tiempo, de modo que la complejidad de las líneas de series de tiempo se reduzca a una sola medida de cambio.

Así es como se podría producir estas parcelas utilizando ggploten R:

library(tidyr);
library(dplyr);
library(ggplot2);

#Create data frame in wide format
DATA_WIDE <- data.frame(Year = 1927L:1937L,
                        DE   = c(10.9, 11.2, 11.4, 10.4, 10.4, 10.2, 10.8, 10.6, 11.4, 11.7, 11.5),
                        FR   = c(16.5, 16.4, 17.9, 15.6, 16.2, 15.8, 15.8, 15.1, 15.7, 15.3, 15.0),
                        BE   = c(13.0, 12.8, 14.4, 12.8, 12.7, 12.7, 12.7, 11.7, 12.3, 12.2, 12.5),
                        NL   = c(10.2,  9.6, 10.7,  9.1,  9.6,  9.0,  8.8,  8.4,  8.7,  8.7,  8.8),
                        DEN  = c(11.6, 11.0, 11.2, 10.8, 11.4, 11.0, 10.6, 10.4, 11.1, 11.0, 10.8),
                        CH   = c(12.4, 12.0, 12.5, 11.6, 12.1, 12.2, 11.4, 11.3, 12.1, 11.4, 11.3),
                        AUT  = c(15.0, 14.5, 14.6, 13.5, 14.0, 13.9, 13.2, 12.7, 13.7, 13.2, 13.3),
                        CZ   = c(16.0, 15.1, 15.5, 14.2, 14.4, 14.1, 13.7, 13.3, 13.5, 13.3, 13.3),
                        PL   = c(17.3, 16.4, 16.7, 15.6, 15.5, 15.0, 14.2, 14.4, 14.0, 14.2, 14.0));

#Convert data to long format
DATA_LONG <- DATA_WIDE %>% gather(Country, Measurement, DE:PL);

#Set line-types and sizes for plot
#Germany (DE) is the fifth country in the plot
LINETYPE <- c("dashed", "dashed", "dashed", "dashed", "solid", "dashed", "dashed", "dashed", "dashed");
SIZE     <- c(1, 1, 1, 1, 2, 1, 1, 1, 1);

#Create time-series plot
theme_set(theme_bw());
PLOT1 <- ggplot(DATA_LONG, aes(x = Year, y = Measurement, colour = Country)) + 
         geom_line(aes(size = Country, linetype = Country)) +
         scale_size_manual(values = SIZE) +
         scale_linetype_manual(values = LINETYPE) +
         scale_x_continuous(breaks = 1927:1937) +
         scale_y_continuous(limits = c(0, 20)) +
         labs(title = "Annual Time Series Plot: Death Rates over Time", 
              subtitle = "Only Germany (DE) trends upward from 1927-37") +
         xlab("Year") + ylab("Crude Death Rate\n(per 1,000 population)");


#Create new data frame for differences
DATA_DIFF <- data.frame(Country = c("DE", "FR", "BE", "NL", "DEN", "CH", "AUT", "CZ", "PL"),
                        Change  = as.numeric(DATA_WIDE[11, 2:10] - DATA_WIDE[1, 2:10]));

#Create bar plot
PLOT2 <- ggplot(DATA_DIFF, aes(x = reorder(Country, - Change), y = Change, colour = Country, fill = Country)) + 
         geom_bar(stat = "identity") +
         labs(title = "Bar  Plot: Change in Death Rates from 1927-37", 
              subtitle = "Only Germany (DE) shows an increase in death rate") +
         xlab(NULL) + ylab("Change in crude Death Rate\n(per 1,000 population)");

Esto lleva a las siguientes parcelas:

ingrese la descripción de la imagen aquí ingrese la descripción de la imagen aquí

Nota: Soy consciente de que el OP tenía la intención de resaltar el cambio en la tasa de mortalidad desde 1932, cuando la tendencia en Alemania comenzó a subir. Esto me parece un poco como recoger cerezas, y me parece dudoso cuando se eligen intervalos de tiempo para obtener una tendencia particular. Por esta razón, he analizado el intervalo en todo el rango de datos, que es una comparación diferente con el OP.

Reinstalar a Mónica
fuente
Gracias por sus sugerencias El formato es un trabajo en progreso, este fue solo un ejemplo aproximado de lo que quería obtener;)
PhDing
1
@Graipher: Bien visto (+1): editaré cuando tenga un poco más de tiempo.
Vuelva a instalar Mónica
1
Me gusta el diagrama de barras, pero en lugar del eje x alfabético, ordenaría por el cambio.
Gregor
14

Aunque el objetivo declarado es mostrar los cambios, aparentemente también desea mostrar las series temporales anuales por país. Eso sugiere no rehacer completamente el gráfico, sino solo modificarlo.

Dado que un cambio se refiere a lo que sucede de un año al siguiente, puede considerar representar los cambios mediante símbolos gráficos que abarcan años sucesivos: es decir, los segmentos de línea que conectan los puntos de datos en el gráfico.

Dado que el color es muy útil para distinguir países, y de lo contrario no es tan bueno para indicar variables cuantitativas, eso nos deja esencialmente con otras dos características que se pueden variar para indicar el cambio: el estilo y el grosor de los segmentos. Debido a que su tesis se refiere a un cambio positivo, querrá hacer que los segmentos de línea para los aumentos sean más prominentes: sus estilos deben ser más continuos y más gruesos.

Finalmente, su tesis se refiere a datos posteriores a 1932. Queremos enfatizar esos elementos del gráfico en relación con los demás. Eso se puede hacer saturando el color.

Trama

Esta solución proporciona de inmediato ideas que no eran aparentes en el original:

  • Ningún país experimentó aumentos anuales en las tasas de mortalidad durante todos los años posteriores a 1932. Cualquiera de esos países aparecería como una línea continua continua, pero no existe dicha línea.

  • Gran parte del cambio debería atribuirse a factores comunes a todos los países. Esto es evidente en las similitudes de estilo de línea y grosor dentro de columnas verticales. Por ejemplo, durante el período 1934-35 las tasas de mortalidad aumentaron en casi todos los países, donde en 1933-34 disminuyeron en casi todos los países.

  • Alemania fue inusual al experimentar un gran aumento en las tasas de mortalidad en 1932-33 y también un ligero aumento en 1935-36.

Estos sugieren realizar una exploración bidireccional robusta del cambio en la tasa de mortalidad versus el país, tal vez por medio de polaco, para penetrar más profundamente en el rendimiento relativo de los países europeos durante este período.

Si desea enfatizar solo la diferencia entre 1937 y 1932, se puede usar una técnica similar para simbolizar las porciones de los caminos entre esas fechas. Alemania se destacaría:

Parcela 2

whuber
fuente
10

Slopegraphs

Una forma de presentar sus datos es utilizando un gráfico de pendiente que es particularmente bueno para comparar cambios o gradientes (algunos enlaces: 1 2 )

A continuación es

  • A la izquierda, un ejemplo de un gráfico de pendiente que muestra cómo se ve esto para su caso.

  • En el centro, un gráfico de pendiente más complejo que también muestra el año 1932.

  • A la derecha, una variación del gráfico de pendiente, más una especie de minigráficos, donde se muestran todos los datos (lo que significa que no hay líneas rectas).

No estoy seguro de cuál es el mejor. La tercera opción / derecha proporciona una idea más clara sobre las variaciones de un año a otro (y, por ejemplo, se hace más visible que Danmark vs Alemania no se ven tan diferentes y está subiendo y bajando mucho de un año a otro) pero puede También será una distracción (especialmente el pico de 1929). Entonces, cuál es mejor depende de lo que quieras transmitir con el gráfico y de la cantidad de detalles que requiera tu historia (por ejemplo, el giro alrededor de 1932 con el gobierno diferente, que es más claro en la segunda opción).

La variación del gráfico de pendiente de la derecha se parece mucho al gráfico de Xan. Sin embargo, además de las diferencias estilísticas, hay una diferencia más importante. El ancho y la altura de la figura se eligen de tal manera que el ángulo de las curvas sea cercano a 45 grados. De esta manera, las diferencias son más notables (creo que el mejor ejemplo es el ejemplo de manchas solares de Edward Tufte )

gráfico de pendiente y una variación

Más contexto

Si desea agregar más complejidad que el gráfico de pendiente simple, entonces creo que en realidad es mejor mostrar más datos fuera del rango 1927-1937 que dentro del rango. (de nuevo, un ejemplo de Tufte de las páginas 74-75 en The Visual Display of Quantitive Information que puede obtener a través de esta página en el tablón de anuncios de su sitio web)

El siguiente ejemplo muestra datos para los años 1900-2000 (excluyendo Polonia, cuyos datos son un poco difíciles) extraídos de wikipedia (por ejemplo, esta página para la República Checa ) y para Suiza y los Países Bajos sus oficinas nacionales de estadísticas ( bfs y Statline ).

(Los datos son un poco diferentes de los suyos, pero son los mismos que, por ejemplo, el artículo "Autarquía, desintegración del mercado y salud: la mortalidad y la crisis nutricional en la Alemania nazi, 1933-1937" por Jörg Baten y Andrea Wagner. Este artículo es interesante leer, ya que proporcionan muchos más datos que solo las tasas brutas de mortalidad, aunque también se limitan a un pequeño período. Especialmente interesante es que el aumento de la tasa de mortalidad, de 1932 a 1937, existió principalmente entre las ciudades en una franja de Frankfurt a Bremen y Hamburgo)

más contexto

Creo que este gráfico es importante porque muestra que Alemania tuvo una caída muy fuerte antes del aumento después de 1932. Más fuerte que otros países. Entonces puedes tener interpretaciones negativas y positivas. La tasa de mortalidad de Alemania aumentó más que otros países entre 1932 y 1937, pero ¿fue esto (1) un aumento desde un pico bajo o (2) un aumento hacia un pico alto? Un aspecto interesante a este respecto es que el nivel de 10.8 de 1932 es un nivel muy bajo para Alemania (en este punto, solo los Países Bajos tenían una tasa de mortalidad más baja). Este no es solo el nivel más bajo para los años hasta 1937, sino que también lleva hasta 1995 antes de que se alcance nuevamente este nivel de 10.8.

Otro punto, relacionado con la salud (si este es su contexto) podría ser mejor comparar la esperanza de vida, la composición demográfica de la población influye en la tasa de mortalidad, independientemente de los cambios en la situación de salud.

Un poco menos de contexto adicional

El gráfico anterior muestra la totalidad, pero puede ser una exageración para la mayoría de los propósitos (excepto en esta publicación donde quería mostrar toda la historia y es más para un propósito exploratorio). El siguiente gráfico es una alternativa que, creo, sigue siendo decente.

gráfico contextual más pequeño

Sexto Empírico
fuente
Gracias por todas sus sugerencias. Creo que los gráficos de pendiente que proporcionó son muy intuitivos. Estoy seguro de que sería útil incluir un período de tiempo más largo, pero queremos hacer un punto centrado en este período específico y dejarlo claro. Creo que la trama de 1900-2000 sería un poco desordenada. Con respecto a su último punto, ajustamos por edad las tasas brutas para seguir usando las tasas de mortalidad.
PhDing
1
@Alessandro He agregado una alternativa que es más práctica. Nuevamente, los números son diferentes porque utilicé diferentes fuentes (no ajustadas por edad), pero supongo que el fuerte descenso de Alemania seguido de un fuerte aumento podría ser el mismo.
Sextus Empiricus
4

Depende de la audiencia, pero simplificaría las cosas:

ingrese la descripción de la imagen aquí

Luego deletrearlo en el título, por ejemplo

De 1932 a 1937, la tasa de mortalidad anual aumentó en Alemania, mientras que disminuyó en general en toda Europa central (Francia, Bélgica, Países Bajos, Dinamarca, Austria, República Checa, Polonia).

(Por cierto, ¿qué es ch vs. cz, es decir, qué país me falta más arriba?)

Para ser exhaustivo, por supuesto, tendrá que sopesar death rateuna estimación de la población al 'agrupar' esto para los 'Otros', pero estoy seguro de que esta información está disponible para usted.

Actualización 6/9/18: Este es, por supuesto, un boceto de "juguete" y no se deriva de los datos; la idea es proporcionar un borrador de la forma que debe tomar un gráfico.

OyOi=1...88×

Oyi=i=8i=1ADRyi.populationitotalPopulation

o mejor, si tienes información de población. por cada año:

Oyi=i=8i=1ADRyi.populationyitotalPopulationy

Dependiendo de los lectores (por ejemplo, epidemiólogos versus historiadores), se podría agregar una desviación estándar o un error estándar a este último, aunque creo que esto estropearía el aspecto simple de la trama.

Dardisco
fuente
55
ches Suiza (Y, por cierto, todavía no era la República Checa en los años 30). Lo que no me gusta de su enfoque es que no está claro que la tendencia a la baja sea consistente en los demás países. Puede parecer que solo hay fluctuaciones aleatorias que suceden en promedio a algo negativo en los otros países, pero resultan positivas en Alemania.
Leftaroundabout
Me gusta esta respuesta, pero podría agregar una imagen del rango o desviación estándar alrededor de la línea 'otros', de lo contrario, los medios pueden ser engañosos.
Tasos Papastylianou
2
Me gusta mucho esta idea, pero ¿podría explicar cómo determinó las tasas de mortalidad de "otros"? Los medios aritméticos de sus tasas no serían apropiados debido a la gran variedad de poblaciones que representan.
whuber
3

Si desea resaltar el cambio, entonces quizás calcule esto y muestre eso. El uso de un mapa de calor para mostrar los cambios puede ser útil, ya que permite realizar comparaciones sin problemas de superposición y evita problemas de interpolación que pueden provenir de gráficos de líneas.

Usando sus datos como den R:

library(tidyverse)
d2 <- data.frame(apply(d[-1],2,diff))
d2$year <- d$year[-1]
d2 %>% gather(key="country",value=deathrate,-year) %>% 
   ggplot(aes(x=factor(year),y=country,fill=deathrate)) + 
   geom_tile() + 
   scale_fill_gradient2("\u0394 deathrate")

mapa de calor de la tasa de mortalidad

Tenga en cuenta que los datos ahora cambian con respecto al año anterior. Puede ver que Alemania tiene un grupo de azules (aumentos en las tasas de mortalidad) después de 1932 que otros países no tienen. También puede ver que entre 1934 y 1935 todos los países, excepto Polonia, registraron aumentos en las tasas de mortalidad, pero la tendencia de Alemania parece ser 1932-1933 y 1935-1936 (así como 1927-1928).

Una característica interesante es el hecho de que los colores son más intensos a la izquierda que a la derecha. Esto significa que la magnitud de los cambios fue mayor al comienzo del período y más silenciada hacia el final.

Recomendaría emparejar esto con un gráfico lineal que muestre los niveles también.

James
fuente
2

Aquí les muestro la diferencia del logaritmo de la proporción de muertes por 1000 habitantes, con respecto al año anterior (por lo tanto, no se muestra 1927). Alemania se muestra en rojo, mientras que el promedio de otros países se muestra en la gruesa línea negra.

ingrese la descripción de la imagen aquí

Alemania tuvo aumentos en la proporción en 5 de cada 10 años. Después de 1932, fue superior al promedio de otros países (y en su mayoría positivo), hasta 1937.

Aunque ¿por qué el logaritmo? La razón es simple: el cambio de 2 a 1 es más drástico que el cambio de 1000 a 999 :)


Código:

x = read.table("clipboard", header = TRUE, dec = ".")
xl = log(x[-1])
xd = apply(xl, 2L, diff)

png("CVquestion.png")
plot(0,0, xlim = range(x[-1,1]), ylim = range(xd), type = "n", ylab = "", main = "Difference of the log(death rate per 1000 inhab.)", xlab = "year")
grid()
for (i in rev(seq(ncol(xl)))) lines(x[-1,1], xd[,i], type = "o", col = adjustcolor(ifelse(i == 1, 2, 1), 0.7), lwd = ifelse(i == 1, 2, 1), lty = ifelse(i == 1, 1, 2), pch = ifelse(i == 1,16,NA))
lines(x[-1,1], rowMeans(xd[,-1]), type = "o", col = adjustcolor(1, 0.7), lwd = 2, lty = 1, pch = 16)

text(x = 1937, y = rev(xd[10,]), label = rev(colnames(xd)), col = rev(c(2, rep(1,8))))
dev.off()
Firebug
fuente
2
El OP habla sobre la tasa de mortalidad, no la tasa de asesinatos
kjetil b halvorsen
@kjetilbhalvorsen Ooops, eso es lo que sucede cuando intentas la visualización de datos después de las 9 pm en un día que has estado trabajando desde las 8 am jaja. Se solucionará lo antes posible, gracias por el aviso :)
Firebug
1

Una versión más: proporciones (tasa de mortalidad promedio de 1927 al año actual) / (tasa de mortalidad de 1927)

ingrese la descripción de la imagen aquí

Hecho con el código de Mathematica

data = {
 {year,   de,   fr,   be,   nl,  den,   ch,  aut,   cz,   pl},
 {1927, 10.9, 16.5, 13.0, 10.2, 11.6, 12.4, 15.0, 16.0, 17.3},
 {1928, 11.2, 16.4, 12.8,  9.6, 11.0, 12.0, 14.5, 15.1, 16.4},
 {1929, 11.4, 17.9, 14.4, 10.7, 11.2, 12.5, 14.6, 15.5, 16.7},
 {1930, 10.4, 15.6, 12.8,  9.1, 10.8, 11.6, 13.5, 14.2, 15.6},
 {1931, 10.4, 16.2, 12.7,  9.6, 11.4, 12.1, 14.0, 14.4, 15.5},
 {1932, 10.2, 15.8, 12.7,  9.0, 11.0, 12.2, 13.9, 14.1, 15.0},
 {1933, 10.8, 15.8, 12.7,  8.8, 10.6, 11.4, 13.2, 13.7, 14.2},
 {1934, 10.6, 15.1, 11.7,  8.4, 10.4, 11.3, 12.7, 13.2, 14.4},
 {1935, 11.4, 15.7, 12.3,  8.7, 11.1, 12.1, 13.7, 13.5, 14.0},
 {1936, 11.7, 15.3, 12.2,  8.7, 11.0, 11.4, 13.2, 13.3, 14.2},
 {1937, 11.5, 15.0, 12.5,  8.8, 10.8, 11.3, 13.3, 13.3, 14.0}
}

ListPlot[
 Map[
  Table[{First[data[[k + 1]]], Mean[Take[#, k]]/First[#]}, {k, Length[#]}] &,
  Map[Rest, Rest[Transpose[data]]]
 ],
 Joined -> True,
 PlotRange -> All,
 Frame -> True,
 FrameTicks -> {Map[First, Rest[data]], Automatic},
 PlotLabels -> Rest[First[data]],
 AxesOrigin -> {First[First[Rest[data]]], 1} 
]

(Los picos en 1929 parecen estar relacionados con una pandemia de gripe que ocurrió alrededor de esa época)

მამუკა ჯიბლაძე
fuente