트렌드를 올바르게 플롯하는 방법


45

여러 나라에서 사망률 (1000 ppl 당) 추세를 보여주는 그래프를 작성하고 있으며 플롯에서 나와야 할 이야기는 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입니다. 그래서 그래프 공간의 절반은 사망률이 0이 아님을 나타내는 데 소비됩니다. 나는 그것이 대부분의 사람들 (자신을 포함)이 지금까지 그들의 답변에서 그렇게하고 싶지 않은 이유라고 생각합니다. 예를 들어, 성인 키의 역사적 변화에 대한 도표가 모두 0에서 시작한다고 주장 하시겠습니까? 예에서 추가 논의 stats.stackexchange.com/questions/184525/...
닉 콕스

1
그래프에 대해 생각하기보다는 먼저 데이터와 분석의 기본이 무엇인지 궁금합니다. 사망률과 관련된 요인은 무엇입니까? 사망률이 이미 높은 경우 (예 : 폴란드) 더 빨리 감소합니까? 사망률이 어느 정도 정체되어 있습니까? 이 고원 효과 (독일에 더 강한)가 오스트리아 (지난 몇 년 동안)의 증가를 더 강한 효과로 만들 수 있습니까? 그래프는 일종의 원시 데이터 (여전히 분석해야 함)이며 동시에 도출됩니다 (수는 단순한 측정이 아니라 도출 됨). 1 강조 효과를 어렵게 만듭니다.
Sextus Empiricus 2016 년

1
또한 10 년보다 더 큰 기간을 표시하는 것이 좋습니다. 이 10 년의 초점은 주변을 보여줄 때만 공평합니다. 더 넓은 관점에서 훨씬 덜 이해되는 클로즈업을 보는 것이 일반적입니다. 이 곡선들이 폭풍우의 파도처럼 오르 내릴 때, 멋진 이야기와 관련이있는 단 하나의 파도가 아니라 바다 전체를 보여 주어야합니다. (이 원칙을 보여주는 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
내 경험에 따르면 평활화 시리즈는 사회 과학에서 매우 드문 사례입니다.
luchonacho

6
어쩌면 그것이 새롭고 유용한 것을 보여 주어야 할 이유일까요?
kjetil b halvorsen 2016 년

9
사회 과학의 규범에 관계없이, 평활화는 1930 년에 발생하는 감소와 1935 년에 발생하는 증가를 숨 깁니다. 1929 년에 발생하는 여러 국가의 급증도 가려져 있습니다. 그렇지 않으면이 단순한 접근 방식이 매우 좋습니다.
Underminer

7
두 가지 색상 만 사용하고 (회색을 더 밝게 만들까요?) 오른쪽에 국가 이름을 지정하여 범례를 피하려면 +1하십시오. 평활화 -1-아무 이유없이 정보를 버립니다. 따라서 실제로 투표 할 필요는 없습니다. ;-)
S. Kolassa-Monica Monica

10
@StephanKolassa 나는 xan의 관점이 있다고 생각 이다 "노이즈"오히려 해마다 변화보다 전반적인 동향에 초점을 : 폐기 정보에 좋은 이유는. 어느 정도, 당신은 이미 "정보를 버리고 있습니다"– 당신은 매년 숫자를보고 있습니다. 나는 "정보를 버리지 말 것"인 ad absurdum을 사용 하는 일일 비율을 그려서 그래프가 개선 될지 의심 스럽다 . -일부 추세는 매끄럽게 가려지는 것이 사실이지만, 계절 변화와 같은 다른 추세는 연간 요율의 선택으로 가려져 있습니다. 관련 유사 콘텐츠가 여전히 표시되고 있다는 신뢰가 있습니다.
RM

39

여기에 좋은 답변이 있습니다. 독일의 트렌드가 다른 나라와 다르다는 것을 보여주고 싶다는 말을 전하겠습니다. 수준 대 변화 는 경제학에서 공통적 인 차이점입니다. 귀하의 데이터는 수준 이지만 귀하의 질문은 변화 를 추구하는 것으로 명시됩니다 . 이를 수행하는 방법은 참조 레벨 (여기서는 1932)을 로 설정하는 것 입니다. 거기에서 각 연속 연도는 전년도의 일부입니다. (보다 안정적이고 대칭적인 변경을 위해 로그를 취하는 것이 일반적입니다. 이것은 누군가가 실제로 줄거리에서 그것을 얻길 원한다면 보통 정확한 숫자의 의미를 약간 변경합니다. 그러나 보통 이런 종류의 사람들은 패턴을 볼 수 있습니다.) 그런 다음 각 계열에 대한 누계를 가져와 곱합니다.100 1001100관례에 따라. 그것이 당신이 그린 것입니다. 귀하의 사례는 참조 점이 시리즈의 중간에 있다는 점에서 약간 덜 일반적이므로 1932 년부터 양방향으로 이것을 실행했습니다. 아래는 R로 코딩 된 간단한 예입니다 (코드를 작성하는 많은 방법이 있으며 더 좋은 음모를 꾸미지 만 아이디어를 직접 보여 주어야합니다). 범례에서 독일을 구별하기 위해 선을 두껍게 만들고 참 조선을 추가했습니다 . 독일이 다른 국가들보다 두드러지는 것을 쉽게 알 수 있습니다. 또한 다른 모든 국가는 1932 년보다 1937 년에 더 낮은 비율로 끝나고, 1932 년 이후 매년 변화하는시기가 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 년 이후 독일 만 두 가지 방식으로 올라가는 것을 볼 수있게하려고 노력했다. 나는 1932 년 각 시리즈에 두드러진 점을 두었고, 그 수준에서 배경에 줄거리에 희미한 회색 선을 그렸다.

여기에 이미지 설명을 입력하십시오


+1 정말 훌륭한 솔루션
Repmat

2
범례를 잃을 수있는 충분한 공간이 있으며 (키를 죽이고) 그래프 본문 내에서 직접 각 곡선에 레이블을 지정하십시오.
Nick Cox

3
코드와 플롯을 더 좋게 만드는 많은 방법이 있습니다. 나의 주요 요점은 레벨과 변화의 아이디어를 구별하고 변화를 시각화하는 방법에 대한 기본적인 데모를 제공하는 것이 었습니다.
gung-Monica Monica 복원

17

다른 답변에는 많은 좋은 아이디어가 있지만 가능한 좋은 해결책을 다 쓰지는 않습니다. 이 답변의 첫 번째 그래프는 다양한 수준의 사망률을 개별적으로 논의하고 설명 할 수 있다는 것을 보여줍니다. 각 시리즈가 사용 가능한 공간을 많이 채울 수 있도록함으로써 상대적 변화 패턴에 독자의 관심을 집중시킵니다.

국가 별 알파벳 순서는 일반적으로 기이 한 기본값이며 여기에서는 주장하지 않습니다. 운 좋게도 다행히도 독일은이 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)

편집하다:

Tim Morris가 제안한이 그래프의 한 가지 간단한 개선 사항은 최대 발생 연도를 강조하는 것입니다.

여기에 이미지 설명을 입력하십시오

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 코드 :

(코드 input, reshape, 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로 이해되어야한다 front 또는 foreground aND backdrop 또는 b없음 "엄청난"의 1960 속어 일부 에코로서 ackground 플롯.


3
+1, 나는 코드가 그와 같은 멋진 음모를 만들어내는 것이 간결하다는 것을 말해야합니다.
gung-Monica Monica 복원

감사합니다. StataCorp는 내장 명령이므로 여기에서 모든 찬사를받을 자격이 있습니다. 외관상 year으로 x 축 제목 과 같은 기본 텍스트를 자포하고 있습니다 (누가 필요합니까?). 나는 자연의 데이터 구조가 의무를 부과하지 않았다 하나가 될 것 STATA 사용자에게 그를 추가 할 것입니다 renamereshape. 그러나 별개의 관찰 블록으로 별개의 패널 (여기 국가)이 있습니다.
Nick Cox

+1 그러나이 솔루션의 한 가지 문제는 문맥을 잃어버린다는 점입니다. 독일의 사망률은 증가했지만 낮은 수준에서 시작했지만 여전히 상대적으로 매우 높지 않은 것을 쉽게 알 수 없습니다.
whuber

1
EDIT 2의 대체 디자인은 컨텍스트에 대해 @whuber가 만든 요점을 해결하는 한 가지 방법입니다.
Nick Cox

15

그래프는 합리적이지만 제목, 축 레이블 및 완전한 국가 레이블을 포함하여 약간의 수정이 필요합니다. 독일이 관측 기간 동안 사망률이 상승한 유일한 국가라는 사실을 강조하는 것이 목표라면 간단한 방법은 더 두꺼운 선을 사용하여 줄거리에서이 선을 강조 표시하는 것입니다. 선 종류 또는 알파 투명도. 또한 시간 경과에 따른 사망률의 변화를 보여주는 막대 그림으로 시계열 그림을 보강하여 시계열 선의 복잡성을 단일 측정 단위로 줄일 수 있습니다.

다음은 사용이 플롯 생산할 수있는 방법입니다 ggplot에를 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)-조금 더 시간이 있으면 편집하겠습니다.
복원 상태 Monica

1
나는 막대 그림을 좋아하지만 알파벳 x 축보다는 변화에 따라 정렬합니다.
Gregor

14

명시된 목표는 변경 사항 을 표시하는 것이지만 연간 시계열도 국가별로 표시하려고합니다. 그래픽을 완전히 다시 실행하는 것이 아니라 수정하는 것입니다.

변경 사항은 1 년에서 다음 해까지의 일과 관련이 있기 때문에 연속적인 수년에 걸친 그래픽 심볼 즉 , 플롯의 데이터 포인트를 연결하는 선 세그먼트로 변경을 나타내는 것을 고려할 수 있습니다 .

색상은 국가를 구별하는 데 매우 유용하고, 그렇지 않으면 양적 변수를 나타내는 데 너무 좋지 않기 때문에 본질적으로 변화를 나타 내기 위해 변할 수있는 두 가지 다른 특성, 즉 세그먼트의 스타일과 두께가 있습니다. 논문이 긍정적 인 변화와 관련이 있기 때문에 증가를 위해 선 세그먼트를 더 두드러지게 만들고 싶을 것입니다. 스타일은 더욱 연속적이고 두껍어야합니다.

마지막으로, 당신의 논문은 1932 년 이후의 데이터에 관한 것입니다. 우리는 다른 것들에 비해 그래픽의 요소들을 강조하고 싶습니다. 색상을 채도하여 수행 할 수 있습니다.

음모

이 솔루션 은 원본에서 명확하지 않은 통찰력을 즉시 제공합니다.

  • 1932 년 이후 매년 몇 년 동안 사망률이 매년 증가한 국가는 없었습니다. 그러한 국가는 지속적인 실선으로 보이지만 그러한 선은 존재하지 않습니다.

  • 이러한 변화의 대부분은 모든 국가에 공통적 인 요소에 기인합니다. 이것은 세로 열의 선 스타일 및 두께와 유사합니다. 예를 들어, 1934-35 년 기간 동안 거의 모든 국가에서 사망률이 증가했으며, 1933-34 년에는 거의 모든 국가에서 사망률이 감소했습니다.

  • 독일은 1932-33 년에 사망률이 크게 증가한 것과 1935-36 년에 약간 증가한 것은 드문 일이었습니다 .

이는 이 기간 동안 유럽 국가 들의 상대적 성과에 보다 깊이 침투하기 위해 아마도 중간 정도의 연마에 의한 국가 사망률 변화의 강력한 양방향 탐색을 수행하는 것을 제안한다 .

1937 년과 1932 년의 차이점 만 강조하고 싶다면 비슷한 기법을 사용하여 해당 날짜 사이의 경로 부분을 상징 할 수 있습니다. 독일은 두드러 질 것입니다 :

줄거리 2


10

슬로프 그래프

데이터를 표현할 수있는 한 가지 방법은 변화 또는 그라디언트를 비교하는 데 특히 유용한 경사도를 사용하는 것입니다 (일부 링크 : 1 2 )

아래는

  • 왼쪽 에는 이것이 당신의 사건을 어떻게 보이는지 보여주는 경사도의 예입니다.

  • 중앙 에는 1932 년을 나타내는 더 복잡한 경사도

  • 오른쪽 에는 기울기 그래프의 변형, 더 많은 종류의 스파크 라인이 있으며 모든 데이터가 표시됩니다 (직선 없음).

어느 것이 가장 좋은지 잘 모르겠습니다. 세 번째 / 오른쪽 옵션은 해마다 변화에 대해 더 강력한 아이디어를 제공합니다 (예를 들어 Danmark와 독일이 다르게 보이지 않고 매년 많이 오르락 내리락하는 것이 더 눈에 띄게됩니다). 또한 산만합니다 (특히 1929 피크). 따라서 어느 쪽이 더 나은지 그래프와 함께 전달하려는 내용과 이야기에 필요한 세부 사항에 따라 다릅니다 (예 : 2932 년 중반에 다른 정부의 경우 1932 년경).

오른쪽의 기울기 변화는 Xan의 그래프와 매우 유사합니다. 그러나 스타일 차이 외에 한 가지 더 중요한 차이점이 있습니다. 그림의 너비와 높이는 곡선의 각도가 45도에 가깝도록 선택됩니다. 이런 식으로 차이점이 더 두드러집니다 ( Edward Tufte 의 가장 좋은 예는 태양 흑점 예 라고 생각합니다 )

경사 그래프와 변화

더 많은 맥락

간단한 기울기보다 더 많은 복잡성을 추가하려면 실제로 범위보다 1927-1937 범위를 벗어나는 데이터를 더 많이 표시하는 것이 좋습니다 . (수량 정보의 시각적 디스플레이에있는 74-75 페이지의 Tufte의 예제 에서이 웹 사이트 의 게시판에있는이 페이지를 통해 얻을 수 있습니다 )

아래 예는 위키피디아 (예 : 체코의 경우이 페이지 ) 및 스위스 및 네덜란드의 통계 통계국 ( bfsStatline ) 에서 추출한 1900-2000 년 (데이터가 약간 어려운 폴란드 제외)의 데이터를 보여줍니다 .

(자료는 당신과 약간 다르지만 예를 들어 요 르그 바텐 (Jörg Baten)과 안드레아 바그너 (Andrea Wagner)의 "아 치카, 시장 붕괴, 건강 : 1933-1937 년 나치 독일의 사망과 영양 위기"기사와 동일하다. 비록 그들이 조그마한 사망률보다 더 많은 데이터를 제공하기 때문에 읽을 수는 있지만 작은 기간으로 제한되어 있습니다. 특히 흥미로운 것은 1932 년에서 1937 년까지 사망률의 증가가 주로 프랑크푸르트에서 브레멘에 이르는 도시들 사이에서 존재했다는 것입니다 함부르크)

더 많은 맥락

나는이 그래프가 중요하다고 믿는다. 왜냐하면 독일이 1932 년 이후 상승하기 전에 매우 강한 하락세를 보였기 때문에 다른 국가들보다 강하다고 생각하기 때문이다. 따라서 긍정적이고 긍정적 인 해석을 할 수 있습니다. 독일의 사망률은 1932 년에서 1937 년 사이에 다른 국가들보다 더 많이 상승하고 있었지만, 이것은 (1) 낮은 피크에서 상승했거나 (2) 높은 피크로 상승 했습니까? 이와 관련하여 흥미로운 측면은 1932 년의 10.8 수준 인 10.8이 독일에 대해 매우 낮은 수준이라는 점입니다 (이 시점에서 네덜란드 만 사망률이 낮음). 이것은 1937 년까지 가장 낮은 수준 일뿐만 아니라이 수준 10.8에 다시 도달하기까지 1995 년까지 걸린다.

건강과 관련된 또 다른 요점 (이것이 당신의 상황이라면) 기대 수명을 비교하는 것이 낫습니다. 인구의 인구 통계 학적 구성은 건강 상황의 변화와 무관하게 사망률에 영향을 미칩니다

조금 적은 추가 컨텍스트

위의 그래프는 전체를 보여 주지만 대부분의 목적을 위해 과잉 일 수 있습니다 (이 게시물에서는 전체 역사를 보여주고 싶고 탐구 목적으로 더 많은 경우는 제외). 아래 그래프는 여전히 괜찮은 대안이라고 생각합니다.

더 작은 상황 별 그래프


모든 제안에 감사드립니다. 당신이 제공 한 경사도는 매우 직관적이라고 생각합니다. 더 긴 기간을 포함하는 것이 유용 할 것이라고 확신하지만이 특정 기간에 중점을두고 명확하게 설명하려고합니다. 1900-2000 음모가 약간 지저분하다고 생각합니다. 마지막 요점에 대해서는 사망률을 계속 사용하기 위해 원 유율을 연령 조정했습니다.
PhDing

1
@Alessandro 더 실용적인 대안을 추가했습니다. 다른 출처 (나이 조정이 아님)를 사용했기 때문에 다시 숫자가 달라 지지만 독일의 급격한 감소와 강한 증가는 동일 할 수 있습니다.
Sextus Empiricus 2016 년

4

청중에 따라 다르지만 다음과 같이 단순화합니다.

여기에 이미지 설명을 입력하십시오

그런 다음 자막에 철자를 입력하십시오. 예 :

1932 년부터 37 년까지 독일의 연간 사망률은 증가한 반면, 중부 유럽 (프랑스, 벨기에, 네덜란드, 덴마크, 오스트리아, 체코, 폴란드)에서는 전체 사망률이 감소했습니다.

(BTW ch vs cz는 무엇입니까? 즉, 내가 놓친 국가는 무엇입니까?)

철저히하기 위해, 당신은 death rate'기타'를 위해 이것을 '풀링 (pooling)'할 때 인구 추정치에 의해 가중치를 부여 할 필요가 있지만, 나는이 정보가 당신이 쉽게 이용할 수 있다고 확신합니다.

업데이트 6/9/18 : 이것은 물론 '장난감'스케치이며 데이터에서 파생 된 것이 아닙니다. 아이디어는 그래프가 취해야 할 형태의 대략적인 초안을 제공하는 것입니다.

OyOi=1...88×

Oyi=i=8i=1ADRyi.populationitotalPopulation

인구 정보가 있다면 더 좋습니다. 매년 :

Oyi=i=8i=1ADRyi.populationyitotalPopulationy

독자성 (예 : 역학 자나 역사 학자)에 따라 표준 편차 또는 표준 오류가 후자에 추가 될 수 있지만, 이것이 단순한 음모의 모양을 망칠 것이라고 생각합니다.


5
ch스위스입니다. (그리고 BTW, 그것은 체코 아니었다 공화국 30 대에 아직.) - 나는 당신의 접근 방식은 하향 추세가 다른 나라를 통해 일관성이 있음을 분명하지 것입니다에 대해 좋아하지 않는 무엇. 다른 국가에서는 평균에 부정적인 영향을 미치지 만 독일에서는 긍정적으로 나타나는 무작위 변동이있는 것처럼 보일 수 있습니다.
leftaroundabout

이 답변이 마음에 들지만 '기타'선 주위에 범위 또는 표준 편차를 시각적으로 추가 할 수 있습니다. 그렇지 않으면 수단이 속일 수 있습니다.
Tasos Papastylianou 2016 년

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)으로 나타납니다.

흥미로운 특징 중 하나는 왼쪽에 비해 색상이 더 강하다는 사실입니다. 이것은 변화의 규모가 기간이 시작될 때 더 높았고 끝을 향해 더 음소거되었음을 의미합니다.

레벨을 보여주는 선 그래프와 이것을 연결하는 것이 좋습니다.


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
사망률 살인하지 속도에 대한 영업 회담
할보 르센 kjetil B

@kjetilbhalvorsen Ooops, 오전 8시 이후에 근무한 하루에 오후 9시에 데이터 시각화를 시도하면 발생합니다. : 최대, 최대한 빨리 머리에 대한 감사가 해결됩니다
방화범

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.