Comment tracer correctement les tendances


45

Je crée un graphique pour montrer les tendances des taux de mortalité (pour 1 000 personnes) dans différents pays et l'histoire qui devrait résulter de l'intrigue est que l'Allemagne (ligne bleu clair) est le seul dont la tendance est à la hausse après 1932. C'est mon premier essai (basique)

entrez la description de l'image ici

À mon avis, ce graphique montre déjà ce que nous voulons qu'il raconte, mais il n'est pas très intuitif. Avez-vous des suggestions pour clarifier cette distinction entre les tendances? Je pensais tracer des taux de croissance, mais j’ai essayé et ce n’est pas mieux.

Les données sont les suivantes

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

2
Des données italiennes et espagnoles seraient intéressantes en comparaison. Ils avaient aussi des gouvernements fascistes à cette époque.
Asmaier

1
à côté des bonnes idées données dans les réponses, assurez-vous de commencer votre parcelle par 0 (axe des ordonnées) afin que les changements relatifs soient plus visibles.
WoJ

2
@WoJ Je vois ce que vous voulez dire, mais dans la pratique, la fourchette va d'environ 9 à environ 18 pour 1 000. La moitié de la surface du graphique sera donc dépensée, ce qui montre que le taux de mortalité n'est pas nul. Je pense que c'est pourquoi la plupart des gens (y compris moi-même) ne voulaient pas faire cela dans leurs réponses jusqu'à présent. Pensez au point où s'arrête votre critère, par exemple, insisteriez-vous pour que les parcelles présentant des variations historiques de la taille d'un adulte commencent toutes à zéro? Plus de discussions, par exemple à stats.stackexchange.com/questions/184525/…
Nick Cox

1
Plutôt que de penser au graphique, je me demanderais d’ abord en quoi consistent les données et l’analyse. Quels sont les facteurs impliqués dans le taux de mortalité? Le taux de mortalité diminue-t-il plus rapidement s'il est déjà élevé (par exemple en Pologne)? Les taux de mortalité se stabilisent-ils à un certain niveau? Cet effet de plateau (qui est plus fort pour l'Allemagne) rend-il peut-être plus fort l'augmentation de l'Autriche (au cours des dernières années)? Le graphique est en quelque sorte une donnée brute (il reste à analyser) et en même temps, il est dérivé (les nombres ne sont pas de simples mesures mais dérivés), ce qui rend difficile la mise en évidence d'un effet.
Sextus Empiricus

1
Aussi, vous feriez mieux de montrer une période plus longue que 10 ans. L’attention portée à ces dix années n’est juste que lorsque vous montrez les environs. Il est si courant de voir des gros plans qui ont beaucoup moins de sens dans une perspective plus large. Lorsque ces courbes montent et descendent comme des vagues dans une tempête, vous devez montrer toute la mer et non pas une seule vague qui se corrèle avec une belle histoire. (Je suis sûr qu'il y a un exemple de Tufte qui montre ce principe)
Sextus Empiricus

Réponses:


53

Parfois, moins c'est plus. Avec moins de détails sur les variations d’une année sur l’autre et les distinctions de pays, vous pouvez fournir plus d’informations sur les tendances. Comme les autres pays se déplacent généralement ensemble, vous pouvez vous en tirer sans couleurs séparées.

En utilisant un lisseur, vous obligez le lecteur à croire que vous n’avez lissé aucune variation intéressante.

entrez la description de l'image ici

Mise à jour après avoir reçu quelques demandes de code :

J'ai créé cela dans le générateur de graphes interactif de JMP . Le script JMP est:

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)

));


4
D'après mon expérience, le lissage en série est une pratique très rare en sciences sociales.
luchonacho

6
Peut-être est-ce une raison pour leur montrer quelque chose de nouveau et d’utile?
kjetil b halvorsen

9
Quelles que soient les normes en sciences sociales, je trouve que le lissage cache la baisse qui a eu lieu en 1930 et la hausse qui se produit en 1935. La flambée qui a eu lieu dans de nombreux pays en 1929 est également occultée. Sinon, j'aime beaucoup cette approche simpliste.
Underminer

7
+1 pour utiliser seulement deux couleurs (peut-être rendre le gris encore plus léger?) Et éviter la légende en plaçant les noms de pays à droite. -1 pour le lissage, qui supprime les informations sans raison valable. Je n'ai donc pas besoin de voter ;-)
S. Kolassa - Réintégrer Monica

10
@StephanKolassa Je pense que le point de vue de xan est qu'il y a une bonne raison de rejeter des informations: se concentrer sur les tendances générales plutôt que sur la variabilité "du bruit" d'une année à l'autre. Dans une certaine mesure, vous "supprimez déjà des informations" - vous regardez des chiffres annuels. Je doute que le graphique serait amélioré en traçant les taux quotidiens, qui est l'endroit où "ne pas jeter les informations" vous emmène, ad absurdum . - Il est vrai que certaines tendances sont masquées par le lissage, mais d'autres (comme les variations saisonnières) sont masquées par le choix des taux annuels. Il existe une certaine confiance dans le fait que la variation pertinente est toujours affichée.
RM

39

1100100

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)

entrez la description de l'image ici

En revanche, vous trouverez ci-dessous un graphique correspondant aux données en niveaux. J'ai néanmoins essayé de faire en sorte que l'Allemagne seule monte après 1932 de deux manières: j'ai mis un point en évidence sur chaque série à 1932 et j'ai tracé une légère ligne grise sur l'arrière-plan à l'arrière-plan.

entrez la description de l'image ici


+1 vraiment bonne solution
Repmat

2
Il y a suffisamment d'espace pour perdre la légende (tuer la clé) et étiqueter chaque courbe directement dans le corps du graphique.
Nick Cox

3
Il y a beaucoup de façons de rendre le code et l'intrigue plus agréables. Mon objectif principal ici était de distinguer entre les idées de niveaux et de changements et de fournir une démonstration de base de la façon dont les changements peuvent être visualisés.
gung - Rétablir Monica

17

Il y a beaucoup de bonnes idées ici dans d'autres réponses, mais elles n'épuisent pas les bonnes solutions possibles. Le premier graphique de cette réponse suppose que différents niveaux de taux de mortalité peuvent être discutés et expliqués séparément. En permettant à chaque série de occuper une grande partie de l'espace disponible, il attire l'attention du lecteur sur les modèles de changement relatif.

L'ordre alphabétique par pays est généralement un défaut de traitement et n'est pas insisté ici. Heureusement et fort heureusement, l’Allemagne en tant que de est au centre de cet affichage 3 x 3. Un récit simple - Regardez! Le modèle allemand est exceptionnel avec une reprise à partir de 1932 - est rendu possible et plausible.

entrez la description de l'image ici

Heureusement, mais heureusement, 9 pays suffisent à justifier l’essai de panneaux séparés, mais pas trop pour rendre cette conception impraticable (avec 30 et certainement 300 panneaux, il pourrait y avoir (trop) de panneaux à numériser, trop petits pour scruter).

De toute évidence, il y a beaucoup d'espace ici pour des noms de pays plus complets. (Dans d’autres réponses, les légendes occupent une grande partie de l’espace disponible, tout en restant un peu cryptiques. En pratique, les personnes intéressées par de telles données trouveraient facilement les abréviations de pays faciles à décoder, mais la légende est souvent trop complexe. problème épineux dans la conception graphique.)

Code Stata pour l'enregistrement:

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)

MODIFIER:

Une amélioration simple de ce graphique suggérée par Tim Morris consiste à mettre en évidence l'année au cours de laquelle le maximum s'est produit:

entrez la description de l'image ici

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 (révisé pour montrer un code plus simple):

Alternativement, cette conception suivante montre chaque série séparément, mais chaque fois avec l’autre série en toile de fond. L'idée générale est discutée dans ce fil connexe .

entrez la description de l'image ici

Il y a une perte aussi bien qu'un gain ici. Alors que chaque série peut être plus facilement vue dans le contexte des autres, l’espace est perdu par la répétition.

Code Stata pour l'enregistrement:

(Code à input, reshape, renamecomme ci - dessus dans cette réponse)

* 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) 

fabplotdoit être comprise comme fRont ou foreground and backdrop ou bparcelle ackground, non pas comme un écho des années 1960 l' argot pour « fabuleux ».


3
+1, je dois dire que le code est assez concis pour produire une belle intrigue comme celle-là.
gung - Rétablir Monica

@gung Merci. StataCorp mérite tous les éloges, car il s'agit de commandes intégrées. Sur le plan esthétique, je zappe un texte par défaut, par exemple un yeartitre d’ axe x (qui en a besoin?). J'ajouterai que pour un utilisateur Stata, la structure de données naturelle serait une structure qui n'obligerait pas a renameet reshape. mais a des panels distincts (ici des pays) sous forme de blocs d'observations distincts.
Nick Cox

+1 Cependant, un problème de cette solution est qu’elle perd le contexte: on ne voit pas facilement que, même si le taux de mortalité a augmenté en Allemagne, il a commencé à un niveau bas et n’était pas (relativement) très élevé à la fin.
whuber

1
La conception alternative dans EDIT 2 est un moyen de traiter le point clé soulevé par @whuber à propos du contexte.
Nick Cox

15

Votre graphique est raisonnable, mais il nécessiterait quelques améliorations, notamment un titre, des étiquettes d'axe et des étiquettes de pays complètes. Si votre objectif est de souligner le fait que l’Allemagne est le seul pays où le taux de mortalité a augmenté au cours de la période d’observation, un moyen simple de le faire serait de mettre en évidence cette ligne dans l’intrigue, soit en utilisant une ligne plus épaisse, une ligne différente. type de ligne ou transparence alpha. Vous pouvez également augmenter votre graphique chronologique avec un graphique en barres indiquant l'évolution du taux de mortalité au fil du temps, de manière à réduire la complexité des lignes chronologiques à une seule mesure du changement.

Voici comment vous pouvez produire ces parcelles en utilisant ggplotdans 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)");

Cela conduit aux parcelles suivantes:

entrez la description de l'image ici entrez la description de l'image ici

Remarque: Je suis conscient que le PO avait pour but de mettre en évidence l'évolution du taux de mortalité depuis 1932, lorsque la tendance en Allemagne a commencé à monter. Cela me semble un peu comme une cueillette de cerises, et je trouve cela douteux que des intervalles de temps soient choisis pour obtenir une tendance particulière. Pour cette raison, j'ai examiné l'intervalle sur toute la plage de données, ce qui est une comparaison différente de celle du PO.


Merci pour vos suggestions. Le format est un travail en cours, ce n'était qu'un exemple approximatif de ce que je voulais obtenir;)
PhDing

1
@Graipher: Bien vu (+1) - J'éditerai quand j'ai un peu plus de temps.
Rétablir Monica

1
J'aime le graphique en barres, mais plutôt que l'axe alphabétique alphabétique, je trierais par le changement.
Gregor

14

Bien que l'objectif affiché soit d'afficher les modifications, il semble que vous souhaitiez également afficher les séries chronologiques annuelles par pays. Cela suggère de ne pas refaire complètement le graphique, mais simplement de le modifier.

Étant donné qu’une modification concerne ce qui se passe d’une année sur l’autre, vous pouvez envisager de représenter les modifications à l’aide de symboles graphiques étalés sur plusieurs années, c’est-à-dire les segments linéaires reliant les points de données du tracé.

Étant donné que la couleur est très utile pour distinguer les pays et qu’elle n’est pas aussi efficace pour indiquer des variables quantitatives, nous ne disposons que de deux autres caractéristiques pouvant être modifiées pour indiquer un changement: le style et l’épaisseur des segments. Étant donné que votre thèse concerne les changements positifs, vous souhaiterez mettre davantage en évidence les segments de droite pour les augmentations: leurs styles doivent être plus continus et plus épais.

Enfin, votre thèse concerne les données postérieures à 1932. Nous voudrons souligner ces éléments du graphique par rapport aux autres. Cela peut être fait en saturant la couleur.

Terrain

Cette solution fournit immédiatement des informations qui n'étaient pas apparentes dans l'original:

  • Aucun pays n'a connu d'augmentation annuelle du taux de mortalité pour toutes les années postérieures à 1932. Un tel pays apparaîtrait sous la forme d'une ligne continue, mais cette ligne n'existe pas.

  • Une grande partie du changement devrait être attribuée à des facteurs communs à tous les pays. Cela est évident dans les similitudes de style de trait et d'épaisseur au sein des colonnes verticales. Par exemple, au cours de la période 1934-1935, les taux de mortalité ont augmenté dans presque tous les pays, où ils ont diminué en 1933-1934 dans presque tous les pays.

  • L’Allemagne a eu la particularité de connaître une forte augmentation du taux de mortalité en 1932-1933, ainsi qu’une légère augmentation en 1935-1936.

Ceux-ci suggèrent de procéder à une exploration bidirectionnelle robuste du changement du taux de mortalité par pays, peut-être par polissage médian, afin de pénétrer plus profondément dans la performance relative des pays européens au cours de cette période.

Si vous souhaitez souligner uniquement la différence entre 1937 et 1932, une technique similaire peut être utilisée pour symboliser les portions de chemins situées entre ces dates. L'Allemagne se démarquerait:

Parcelle 2


10

Slopegraphs

Une façon de présenter vos données consiste à utiliser un slopegraph, particulièrement utile pour comparer les modifications ou les gradients (certains liens: 1 2 ).

Ci-dessous est

  • Sur la gauche, un exemple de slopegraph qui montre à quoi cela ressemble pour votre cas.

  • Au centre un slopegraph plus complexe qui montre également l'année 1932

  • A droite, une variante du slopegraph, plus une sorte de sparklines, où toutes les données sont affichées (c'est-à-dire sans lignes droites).

Je ne sais pas lequel est le meilleur. La troisième option / droite donne une idée plus précise des variations d’une année à l’autre (par exemple, il devient plus évident que le Danmark par rapport à l’Allemagne ne soit pas si différent et qu’il varie beaucoup d’une année à l’autre), mais cela peut se produire. aussi être distrayant (surtout le pic de 1929). La meilleure solution dépend donc de ce que vous voulez exprimer avec le graphique et du niveau de détail requis par votre récit (par exemple, le tournant autour de 1932 avec le gouvernement différent, ce qui est plus clair dans la deuxième / solution intermédiaire).

La variation du slopegraph à droite ressemble beaucoup au graphique de Xan. Cependant, outre les différences stylistiques, il existe une autre différence importante. La largeur et la hauteur de la figure sont choisies de telle sorte que l'angle des courbes soit proche de 45 degrés. De cette manière, les différences sont plus saillantes (je crois que le meilleur exemple est l'exemple de la tache solaire d'Edward Tufte ).

graphique de pente et une variation

Plus de contexte

Si vous voulez ajouter plus de complexité que le simple slopegraph, alors je pense qu’il est préférable de montrer plus de données en dehors de la plage 1927-1937 à l’intérieur de la plage. (encore un exemple de Tufte des pages 74 à 75 dans L'affichage visuel d'informations quantitatives, vous pouvez y accéder via cette page sur le babillard de son site Web)

L'exemple ci - dessous présente les données pour les années 1900-2000 (hors Pologne dont les données sont un peu difficile) extrait de wikipedia (par exemple cette page pour la République tchèque ) et pour la Suisse et les Pays - Bas leurs bureaux nationaux de statistique ( BFS et Statline ).

(Les données sont un peu différentes des vôtres mais identiques à celles de l'article "Autarcie, désintégration des marchés et santé: la mortalité et la crise nutritionnelle dans l'Allemagne nazie, 1933-1937" de Jörg Baten et Andrea Wagner. Cet article est intéressant. A lire car ils fournissent beaucoup plus de données que des taux de mortalité bruts, bien qu'ils se limitent également à une petite période. Il est particulièrement intéressant de noter que la hausse du taux de mortalité, de 1932 à 1937, a principalement existé entre les villes d'une bande de Francfort à Brême. et Hambourg)

plus de contexte

Je pense que ce graphique est important car il montre que l'Allemagne a enregistré une très forte baisse avant la hausse après 1932. Plus forte que d'autres pays. Vous pouvez donc avoir des interprétations négatives et positives. Le taux de mortalité en Allemagne a augmenté davantage que les autres pays entre 1932 et 1937, mais s'agissait-il (1) d'un éloignement d'un sommet bas, ou (2) d'un essor vers un sommet élevé? Un aspect intéressant à cet égard est que le niveau de 1932 de 1932 est un niveau très bas pour l'Allemagne (à ce stade, seul le taux de mortalité était bas aux Pays-Bas). Ce n'est pas seulement le niveau le plus bas pour les années jusqu'en 1937, mais il faut aussi jusqu'en 1995 pour atteindre à nouveau ce niveau de 10,8.

Autre point, lié à la santé (si tel est votre contexte), il serait peut-être préférable de comparer l'espérance de vie, la composition démographique de la population ayant une influence sur le taux de mortalité, indépendamment de l'évolution de la situation sanitaire.

Un peu moins de contexte supplémentaire

Le graphique ci-dessus montre la totalité, mais peut être exagéré pour la plupart des buts (sauf dans ce post où je voulais montrer toute l'histoire et c'est plus à des fins exploratoires). Le graphique ci-dessous est une alternative qui, à mon avis, reste décente.

petit graphique contextuel


Merci pour toutes vos suggestions. Je pense que les slopegraphs que vous avez fournis sont très intuitifs. Je suis sûr qu’il serait utile d’inclure une période plus longue, mais nous souhaitons mettre l’accent sur cette période et la préciser. Je pense que l'intrigue 1900-2000 serait un peu trop compliquée. En ce qui concerne votre dernier point, nous avons ajusté l’âge des taux bruts afin de continuer à utiliser les taux de mortalité.
PhDing

1
@Alessandro, j'ai ajouté une alternative plus pratique. Encore une fois, les chiffres sont différents parce que j'ai utilisé différentes sources (non ajustées en fonction de l'âge), mais je suppose que la forte baisse de l'Allemagne suivie d'une forte augmentation pourrait être la même.
Sextus Empiricus

4

Cela dépend du public, mais je simplifierais les choses:

entrez la description de l'image ici

Ensuite, épelez-le dans la légende, par exemple

De 1932 à 1937, le taux de mortalité annuel a augmenté en Allemagne, alors qu'il a globalement diminué dans toute l'Europe centrale (France, Belgique, Pays-Bas, Danemark, Autriche, République tchèque, Pologne).

(BTW qu'est-ce que ch vs cz, c'est-à-dire quel pays me manque plus haut?)

Pour être approfondi, vous devrez bien sûr pondérer la death ratepopulation par une estimation de la population lorsque vous la "mettez en commun" pour les "Autres", mais je suis sûr que cette information vous est facilement accessible.

Mise à jour du 6/9/18: Il s’agit bien entendu d’une esquisse "jouet" qui n’a pas été déduite des données; L'idée est de fournir un brouillon de la forme que devrait prendre un graphique.

OyOje=1 ... 88×

Oyje=Σje=8je=1UNERyje.popvouslunetjeonjetotunelPopvouslunetjeon

ou mieux, si vous avez des informations sur la population. pour chaque année:

Oyje=Σje=8je=1UNERyje.popvouslunetjeonyjetotunelPopvouslunetjeony

Selon le lectorat (par exemple les épidémiologistes par rapport aux historiens), un écart-type ou une erreur-type pourrait être ajouté à cette dernière, bien que je pense que cela gâcherait plutôt l'aspect simple de l'intrigue.


5
chest la Suisse. (Et d'ailleurs, ce n'était pas encore la République tchèque dans les années 30.) - Ce que je n'aime pas dans votre approche, c'est qu'il n'est pas clair que la tendance à la baisse soit constante dans les autres pays. Il pourrait sembler qu'il y ait des fluctuations aléatoires qui se situent en moyenne dans les autres pays, mais positives en Allemagne.
gauche vers le

J'aime cette réponse, mais j'ajouterais peut-être un visuel de l'écart type ou de l'écart type autour de la ligne "autres", sinon les moyens peuvent être trompeurs.
Tasos Papastylianou

2
J'aime beaucoup cette idée - mais pourriez-vous expliquer comment vous avez déterminé le taux de mortalité des "autres"? Les moyennes arithmétiques de leurs taux ne seraient pas appropriées en raison de la grande diversité des populations qu’elles représentent.
whuber

3

Si vous souhaitez mettre en surbrillance le changement, calculez peut-être ceci et affichez-le. L'utilisation d'une carte thermique pour afficher les modifications peut s'avérer utile car elle permet d'effectuer des comparaisons sans problèmes de sur-traçage et d'éviter les problèmes d'interpolation pouvant provenir de graphiques à courbes.

En utilisant vos données comme ddans 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")

Carte de chaleur des morts

Notez que les données sont maintenant différentes de celles de l'année précédente. Vous pouvez voir que l'Allemagne a un groupe de blues (augmentation du taux de mortalité) après 1932 que les autres pays n'ont pas. Vous pouvez également constater qu'entre 1934 et 1935, tous les pays, à l'exception de la Pologne, ont vu leur taux de mortalité augmenter, mais l'Allemagne semble connaître une tendance à la baisse entre 1932-1933 et 1935-1936 (ainsi que 1927-1928).

Une caractéristique intéressante est le fait que les couleurs sont plus intenses à gauche par rapport à droite. Cela signifie que l'ampleur des changements était plus élevée au début de la période et plus modérée vers la fin.

Je recommanderais de jumeler ceci avec un graphique linéaire montrant également les niveaux.


2

Je vous montre ici la différence du logarithme du taux de mortalité pour 1000 habitants par rapport à l'année précédente (donc 1927 n'est pas indiqué). L'Allemagne est indiquée en rouge tandis que la moyenne des autres pays est indiquée en trait noir épais.

entrez la description de l'image ici

Le ratio a augmenté en Allemagne 5 années sur 10. Après 1932, il se situait au-dessus de la moyenne des autres pays (et principalement positive), jusqu'en 1937.

Bien que pourquoi le logarithme? La raison est simple: le passage de 2 à 1 est plus radical que le passage de 1000 à 999 :)


Code:

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()

2
Le PO parle du taux de mortalité et non du taux de meurtre
kjetil b halvorsen

@kjetilbhalvorsen Oups, c'est ce qui se passe lorsque vous essayez la visualisation de données après 21 heures un jour où vous travaillez depuis 8 heures, haha. Je vais réparer ça, merci pour le heads up :)
Firebug

1

Une version supplémentaire: ratios (taux de mortalité moyen de 1927 à l'année en cours) / (taux de mortalité 1927)

entrez la description de l'image ici

Fait avec le code 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} 
]

(Les pics de 1929 semblent être liés à une pandémie de grippe survenue à cette époque)

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.