傾向を適切にプロットする方法


45

さまざまな国の死亡率の傾向(1000人あたり)を示すグラフを作成していますが、このプロットから得られるストーリーは、1932年以降に傾向が増加しているのはドイツ(水色の線)だけです。私の最初の(基本的な)トライ

ここに画像の説明を入力してください

私の意見では、このグラフはすでに伝えたいことを示していますが、非常に直感的ではありません。トレンド間の区別を明確にするための提案はありますか?成長率をプロットすることを考えていましたが、試してみましたが、それほど良くはありません。

データは次のとおりです

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
イタリアとスペインのデータは比較すると興味深いでしょう。また、その頃にはファシスト政府もありました。
asmaier

1
回答で与えられた良いアイデアに加えて、相対的な変化の大きさがより見えるように、0(y軸)からプロットを開始してください。
WoJ

2
@WoJあなたの主張はわかりますが、実際には、範囲は1000あたり約9から約18であるため、グラフスペースの半分は、死亡率がゼロでないことを示すために費やされます。これが、ほとんどの人(私も含めて)がこれまでの回答でそれをしたくなかった理由だと思います。あなたの基準がどこで止まるかを考えてください。例えば、大人の身長の歴史的変動のプロットはすべてゼロから始まると主張しますか?たとえばstats.stackexchange.com/questions/184525/
ニックコックス

1
グラフについて考えるのではなく、最初にデータと分析の根底にあるものを疑問に思います。死亡率にはどのような要因が関係していますか?死亡率はすでに高い場合(ポーランドなど)、より速く減少しますか?死亡率はあるレベルで横ばいですか?この高原効果(ドイツでより強い)は、オーストリア(過去数年)での増加をより強い効果にするのでしょうか?グラフは生データの一種であり(まだ分析する必要があります)、同時に導出されます(数値は単純な測定値ではなく導出されます)。これにより、1つの効果を強調することが困難になります。
セクストゥスエンピリカス

1
また、10年よりも長い期間を表示することをお勧めします。この10年間に焦点を当てるのは、周囲を見せたときだけです。より広い視野で意味をなさないクローズアップを見るのはとても一般的です。これらの曲線が嵐の波のように上下するとき、素敵な物語と相関するたった1つの波ではなく、海全体を表示する必要があります。(この原理を示すTufteの例があると確信しています)
Sextus Empiricus

回答:


53

時には少ないほど多い。ではあまり詳しく前年比の変動と国の区別についてあなたが提供することができますより多くの情報の動向についてを。他の国はほとんど一緒に動いているので、別々の色なしで済ますことができます。

スムーザーを使用する場合、読者は、興味深いバリエーションをスムージングしていないことを読者に信頼するよう要求しています。

ここに画像の説明を入力してください

いくつかのコードリクエストを取得した後に更新します

これは、JMPのインタラクティブなグラフビルダーで作成しました。JMPスクリプトは次のとおりです。

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
私の経験では、シリーズを平滑化することは社会科学では非常にまれな方法です。
ルチョナチョ

6
たぶんそれが彼らに何か新しい有用なものを示す理由でしょうか?
kjetil bハルヴォルセン

9
社会科学の規範に関係なく、1930年に発生するドロップオフと1935年に発生する上昇がスムージングによって隠されていることがわかります。1929年に発生する複数の国の急上昇も隠されています。そうでなければ、私はこの単純なアプローチがとても好きです。
アンダーマイナー

7
+1は2色のみを使用し(おそらくグレーをさらに明るくしますか?)、国名を右側に配置して凡例を避けます。平滑化の場合は-1。正当な理由なしに情報を破棄します。だから、実際に投票する必要はありません;-)
S.コラッサ-復帰モニカ

10
@StephanKolassa私はXANのポイントがあると思うである「ノイズ」という年々変動よりも、全体的な傾向に焦点を当てる:廃棄情報に良い理由が。ある程度まで、あなたはすでに「情報を破棄しています」-あなたは年間の数字を見ています。毎日の料金をプロットすることでグラフが改善されるのではないかと疑っています。これは、「情報を破棄しないでください」という不条理です。-いくつかの傾向は平滑化によって不明瞭になっていますが、他の傾向(季節変動など)は年率の選択によって不明瞭になっています。関連するバリエーションがまだ表示されているという信頼関係があります。
RM

39

ここには良い答えがあります。ドイツの傾向が他の傾向とは異なることを示したいというあなたの言葉に触れさせてください。 レベル対変化は、経済学における一般的な区別です。あなたのデータはレベルにありますが、あなたの質問は変更を求めていると述べられています。その方法は、参照レベル(ここでは1932)をに設定することです。そこから、連続する各年は前の年の一部です。(ログを取り、より安定した対称的な変更を行うのが一般的です。実際に誰かがプロットからそれを取得したい場合、これは正確な数値の意味を多少変更しますが、通常この種のことは、パターンを見ることができます。)その後、各シリーズの連続した合計を取得し、を掛けます1100慣例により。それはあなたがプロットするものです。参照ポイントがシリーズの途中にあるという点で、ケースはやや一般的ではないので、1932年から両方向でこれを実行しました。以下は、Rでコーディングされた簡単な例です(コードを作成する方法はたくさんありますより良くプロットしますが、これはアイデアを簡単に示すはずです)。凡例でドイツを区別するためにドイツの線を太くし、参照線を追加しました。ドイツが他の地域よりも際立っていることは容易に理解できます。また、他のすべての国では、1932年よりも1937年に低いレートで終わり、1932年以降の年の変動は、それ以前の年よりもはるかに小さいことがわかります。 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)

ここに画像の説明を入力してください

対照的に、以下はレベルでのデータの対応するプロットです。それにもかかわらず、1932年以降、ドイツだけが2つの方法で上昇することを確認できるようにしようとしました。

ここに画像の説明を入力してください


+1本当に素晴らしいソリューション
-Repmat

2
凡例を失い(キーを押して)、グラフの本体内で各曲線に直接ラベルを付けるのに十分なスペースがあります。
ニックコックス

3
コードとプロットをより良くする方法はたくさんあります。ここでの私の主なポイントは、レベルと変更の概念を区別し、変更を視覚化する方法の基本的なデモを提供することでした。
GUNG -復活モニカ

17

ここには他の答えにも多くの良いアイデアがありますが、可能な良い解決策を尽きません。この回答の最初のグラフでは、さまざまなレベルの死亡率について個別に議論および説明できることがわかります。各シリーズが利用可能なスペースの多くを埋めることができるように、相対的な変化のパターンに読者の注意を集中させます。

国ごとのアルファベット順は通常、不審なデフォルトであり、ここでは主張されていません。偶然、そして幸いなことに、ドイツはdeとしてこの3 x 3ディスプレイの中心にあります。簡単な物語-見て!ドイツのパターンは、1932年からの好転により例外的であり、可能になり、もっともらしい。

ここに画像の説明を入力してください

幸いなことに、幸いなことに、9つの国で個別のパネルを試してみるのに十分ですが、その設計を実行不可能にするほど多すぎません(たとえば、30枚、確かに300枚のパネルでは、スキャンするパネルが多すぎて、それぞれが小さすぎます)精査)。

明らかに、完全な国名のための十分なスペースがここにあります。(他のいくつかの回答では、凡例は利用可能なスペースの大部分を占め、少し謎めいたままです。実際、そのようなデータに興味がある人は国の略語を解読しやすいと感じますが、凡例が必要な範囲はグラフィカルデザインの厄介な問題。)

レコードのStataコード:

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)

編集:

ティム・モリスによって提案されたこのグラフの単純な拡張の1つは、最大値が発生した年を強調表示することです。

ここに画像の説明を入力してください

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)  

編集2(より単純なコードを表示するように改訂):

または、この次のデザインでは各シリーズを個別に表示しますが、そのたびに他のシリーズを背景として使用します。一般的な考え方は、この関連するスレッド内で説明されています

ここに画像の説明を入力してください

ここには損失と利益があります。各シリーズは他のコンテキストでより簡単に見ることができますが、繰り返しによってスペースが失われます。

レコードのStataコード:

(この回答の上記のようにinputreshapeにコードrename

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

fabplot「素晴らしい」という1960年代のスラングのエコーとしてではなく、frontまたはforeground and backdropまたはackground bプロットとして理解されるべきです。


3
+1、私は言わなければならない、コードはそのような素晴らしいプロットを生成するためにかなり簡潔です。
GUNG -復活モニカ

@gungありがとう。これらは組み込みコマンドであるため、ここでの称賛はStataCorpに値します。化粧品的に私はいくつかのデフォルトのテキスト、例えばザッピングしていますyearとしてのx軸のタイトル(つまりを必要ですか?)。これをStataユーザーに追加します。自然なデータ構造は、renameとを義務付けていないものですreshape。しかし、観測の別個のブロックとして別個のパネル(ここでは国)があります。
ニックコックス

+1ただし、このソリューションの問題のある特徴の1つは、コンテキストが失われることです。ドイツの死亡率は増加しましたが、低レベルで始まり、最後には(比較的)それほど高くなかったことはすぐにはわかりません。
whuber

1
EDIT 2の代替設計は、コンテキストについて@whuberが作成したキーポイントに対処する1つの方法です。
ニックコックス

15

グラフは妥当ですが、タイトル、軸ラベル、完全な国ラベルなど、いくつかの改良が必要です。観測期間中に死亡率が上昇している唯一の国がドイツであるという事実を強調することが目標である場合、これを行う簡単な方法は、プロットのこの線を強調することです。ラインタイプ、またはアルファ透明度。経時的な死亡率の変化を示す棒グラフで時系列プロットを増強することもできます。これにより、時系列線の複雑さは単一の変化の尺度に減少します。

ggplotin を使用してこれらのプロットを作成する方法を次に示します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)");

これにより、次のプロットが得られます。

ここに画像の説明を入力してください ここに画像の説明を入力してください

注: OPが、ドイツの傾向が上昇し始めた1932年以降の死亡率の変化を強調することを意図していたことは承知しています。これは私にはさくらんぼ狩りに似ているように見えますが、特定のトレンドを取得するために時間間隔が選択されると疑わしいと思います。このため、データ範囲全体の間隔を調べましたが、これはOPとは異なります。


ご提案ありがとうございます。形式は進行中の作業であり、これは私が取得したかったものの大まかな例にすぎません;)
PhDing

1
@Graipher:よく見かけます(+1)-もう少し時間があれば編集します。
モニカを

1
私は棒グラフが好きですが、アルファベットのX軸ではなく、変化で並べ替えます。
グレゴール

14

記載されている目的は変更を表示することですが、明らかにあなたは国ごとに年次時系列も表示したいようです。これは、グラフィックを完全にやり直すのではなく、単に変更することを示唆しています。

変更は1年から次の年に何が起こるかに関するものであるため、連続する年にまたがるグラフィックシンボル、つまり、プロット内のデータポイントを結ぶ線分で変更を表すことを検討できます。

色は国を区別するのに非常に有用であり、その他の点では量的変数を示すのにはあまり適していません。そのため、変化を示すために変更できる本質的に2つの特性、セグメントのスタイルと太さだけが残ります。あなたの論文はポジティブな変化に関するものなので、増加のための線分をより目立たせたいと思うでしょう。それらのスタイルはより連続的で、より太くなければなりません。

最後に、あなたの論文は1932年以降のデータに関するものです。グラフィックの要素を他の要素に比べて強調したいと思います。これは、色を飽和させることで実行できます。

プロット

このソリューションは、オリジナルには見られなかった洞察を即座に提供します。

  • 1932年以降、年間死亡率の年間増加を経験した国はありません。 そのような国は連続した実線として表示されますが、そのような行は存在しません。

  • 変更の多くは、すべての国に共通の要因に起因するものである必要があります。 これは、垂直列内の線のスタイルと太さの類似点で明らかです。たとえば、1934年から35年にかけて、ほぼすべての国で死亡率が増加しましたが、1933年から34年にはほぼすべての国で死亡率が減少しました。

  • ドイツでは、1932-33年に死亡率が大幅に増加し、1935-36年にわずかに増加しました。

これらは、この期間中に欧州諸国の相対的なパフォーマンスにさらに深く浸透するために、おそらく中央値の研磨によって、国に対する死亡率の変化の堅牢な双方向調査を実行することを示唆しています。

1937年と1932年の違いだけを強調したい場合は、同様の手法を使用して、それらの日付間のパスの部分をシンボル化できます。ドイツが目立つ:

プロット2


10

スロープグラフ

データを表示する1つの方法は、変化や勾配の比較に特に適した勾配グラフを使用することです(一部のリンク:1 2

以下であり

  • 左側に、これがあなたのケースにどのように見えるかを示す傾斜グラフの例があります。

  • 中央には1932年も示すより複雑な傾斜グラフ

  • 右側には、すべてのデータが表示されるスロープグラフのバリエーション、より多くの種類のスパークラインがあります(直線がないことを意味します)。

どちらが最適かわかりません。3番目/右のオプションは、年ごとのバリエーションについてより強力なアイデアを提供します(たとえば、デンマークとドイツの違いはそれほど見られず、年ごとに大きく上下していることがわかりやすくなります)気が散ることもあります(特に1929年のピーク)。どちらが良いかは、グラフで何を伝えたいか、そしてあなたのストーリーがどれだけ詳細に必要かによって異なります(たとえば、1932年頃の第2 /中間オプションでより明確な異なる政府との転換)。

右側のスロープグラフのバリエーションは、Xanのグラフによく似ています。ただし、スタイルの違いに加えて、もう1つの重要な違いがあります。図の幅と高さは、曲線の角度が45度に近くなるように選択されます。このように、違いはより顕著です(エドワード・タフテによる黒点の例が最良の例だと思います)

勾配グラフとバリエーション

より多くのコンテキスト

単純なスロープグラフよりも複雑さを追加したい場合、範囲内からよりも範囲1927-1937の外に多くのデータを表示する方が実際には良いと思います。(再び、量的情報の視覚的表示の74〜75ページのTufteによる例は、彼のWebサイトの掲示板のこのページからアクセスできます)

以下の例は、ウィキペディア(例:チェコ共和国のこのページ)およびスイスとオランダの統計局(bfsおよびStatline)から抽出した1900〜2000年のデータ(データが少し難しいポーランドを除く)を示しています。

(データはあなたのものとは少し異なりますが、たとえば、ヨルグ・バテンとアンドレア・ワグナーによる記事「オータチャーキー、市場崩壊、健康:ナチスドイツの死亡率と栄養危機、1933-1937」と同じです。この記事は興味深いです特に興味深いのは、1932年から1937年までの死亡率の上昇が、主にフランクフルトからブレーメンにかけての都市に存在していたことです。およびハンブルク)

より多くのコンテキスト

このグラフは、ドイツが1932年以降の上昇前に非常に強い下落を示したことを示すため、重要だと思います。他の国よりも強いです。したがって、否定的な解釈と肯定的な解釈を行うことができます。ドイツの死亡率は1932年から1937年の間に他の国よりも増加していましたが、これは(1)低いピークからの上昇、または(2)高いピークへの上昇ですか?この点で興味深い側面は、1932年の10.8レベルがドイツにとって非常に低いレベルであることです(この時点で、オランダのみが死亡率が低かった)。これは、1937年までの最低レベルであるだけでなく、この10.8レベルに再び達するまで1995年までかかります。

健康に関連する別のポイント(これがあなたのコンテキストである場合)平均余命を比較する方が良いかもしれません。人口の人口構成は健康状態の変化とは無関係に死亡率に影響を与えます

追加のコンテキストが少し少ない

上記のグラフは全体を示していますが、ほとんどの目的には過剰すぎる可能性があります(この投稿で履歴全体を表示したかったので、これは探索目的のものです)。下のグラフは代替案であり、私は信じています。

より小さなコンテキストグラフ


すべてのご提案ありがとうございます。あなたが提供した傾斜グラフは非常に直感的だと思います。より長い期間を含めることは有益であると確信していますが、この特定の期間に焦点を当てて明確にしたいと思います。1900-2000年のプロットは少し面倒だと思います。最後の点については、死亡率を引き続き使用するために粗率を年齢調整しました。
PhDing

1
@Alessandroより実用的な代替手段を追加しました。ここでも、年齢を調整せずに異なるソースを使用したため、数字は異なりますが、ドイツの大幅な減少とそれに続く強力な増加は同じである可能性があります。
セクストゥスエンピリカス

4

観客に依存しますが、私は物事を簡素化するでしょう:

ここに画像の説明を入力してください

次に、キャプションでそれを綴ります

1932年から37年にかけて、ドイツでは年間死亡率が増加しましたが、中央ヨーロッパ全体(フランス、ベルギー、オランダ、デンマーク、オーストリア、チェコ共和国、ポーランド)全体で減少しました。

(ところで、ch vs czとは何ですか。つまり、上記の国がどこにありませんか?)

徹底的にするdeath rateために、「その他」のためにこれを「プール」するとき、当然のことながら人口の推定値で重み付けする必要がありますが、この情報はすぐに利用できると確信しています。

更新6/9/18:これはもちろん「おもちゃ」のスケッチであり、データから派生したものではありません。アイデアは、グラフが取る形式の大まかなドラフトを提供することです。

アドレスwhuberさんのコメントに:「その他」の値は、平均値として生成することができ、加重と人口などによりの値を示す年間をし、として「その他」に国:OyOi=1...88×

Oyi=i=8i=1ADRyi.populationitotalPopulation

人口情報がある場合はそれ以上です。毎年:

Oyi=i=8i=1ADRyi.populationyitotalPopulationy

読者によっては(たとえば、疫学者と歴史学者)、後者に標準偏差または標準誤差を追加できますが、これはプロットの単純な外観を損なうと思います。


5
chスイスです。(ところで、まだ30代のチェコ共和国ではありませんでした。)—あなたのアプローチについて私が気に入らないのは、下降傾向が他の国で一貫していることは明らかではないということです。他の国では平均してマイナスになるが、ドイツではプラスになるようなランダムな変動があるように見えるかもしれません。
leftaroundabout

私はこの答えが好きですが、「その他」の線の周りに範囲または標準偏差の視覚的要素を追加するかもしれません。
タソスパパスティリアーノウ

2
私はこの考えがとても好きですが、「他者」の死亡率をどのように決定したか説明していただけますか?それらのレートの算術平均は、それらが表す人口が大きく異なるため適切ではありません。
whuber

3

変更を強調表示する場合は、おそらくこれを計算して表示します。ヒートマップを使用して変更を表示すると、オーバープロットの問題なく比較を行うことができ、折れ線グラフから発生する可能性のある補間の問題を回避できるため便利です。

dRのようにデータを使用する:

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

死亡率ヒートマップ

現在、データは前年から変更されていることに注意してください。ドイツでは、1932年以降、他の国にはないブルースのクラスター(死亡率の増加)が見られます。また、1934年から1935年の間に、ポーランドを除くすべての国で死亡率が増加しましたが、ドイツの傾向は1932-1933年と1935-1936年(および1927-1928年)であることがわかります。

興味深い特徴の1つは、右側に比べて左側の色がより強いという事実です。これは、期間の初めに変化の大きさが大きく、終わりに向かってより弱くなることを意味します。

レベルを示す折れ線グラフとこれを組み合わせることをお勧めします。


2

ここでは、前年との関係で、1000人あたりの死亡率の対数の差を示します(したがって、1927は表示されていません)。ドイツは赤で示され、他の国の平均は太い黒線で示されています。

ここに画像の説明を入力してください

ドイツでは、10年のうち5年で比率が増加しました。1932年以降、それは1937年まで、他の国の平均を上回っていました(そしてほとんどが肯定的でした)。

なんで対数?理由は簡単です:2から1への変更は、1000から999への変更よりも劇的です:)


コード:

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
OPは殺人率ではなく死亡率について語る
kjetil b halvorsen

@kjetilbhalvorsenおっと、これは午前8時からデータの可視化を試みたときに起こることです。できるだけ早く修正します。ヘッズアップに感謝します:)
Firebug

1

もう1つのバージョン:比率(1927年から当年までの平均死亡率)/(死亡率1927)

ここに画像の説明を入力してください

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} 
]

(1929年のピークは、その頃に発生したインフルエンザのパンデミックに関連しているようです)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.