Trendleri nasıl doğru bir şekilde çizin


45

Farklı ülkelerdeki ölüm oranlarındaki (1000 ppl başına) trendleri göstermek için bir grafik oluşturuyorum ve arsadan gelmesi gereken hikaye, 1932'den sonra trendi artan tek Almanya (açık mavi çizgi) olmasıdır. ilk (temel) denemem

görüntü tanımını buraya girin

Benim düşünceme göre, bu grafik ne anlatmak istediğimizi gösteriyor ama süper sezgisel değil. Eğilimler arasındaki ayrımın daha açık bir şekilde yapılması için herhangi bir öneriniz var mı? Büyüme oranlarını çizmeyi düşünüyordum ama denedim ve bu daha iyi değil.

Veri aşağıdaki gibidir

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
İtalya ve İspanya'dan gelen veriler kıyaslandığında ilginç olurdu. Ayrıca, o zamanlar facist hükümetler vardı.
asmaier

1
Cevaplarda verilen iyi fikirlerin yanı sıra, göreceli değişiklik büyüklüklerinin daha iyi görülebilmesi için arsayı 0 (y ekseni) ile başlattığınızdan emin olun.
WoJ

2
@WoJ Amacınızı anlıyorum, ancak pratikte bu aralık 1000 başına 9 ile 18 arasındadır, bu nedenle ölüm oranının sıfır olmadığını göstermek için grafik alanının yarısı harcanacaktır. Bence çoğu insan (kendim dahil), şimdiye kadar cevaplarında bunu yapmak istemedi. Kriterinizin nerede durduğunu düşünün, mesela, yetişkin boyundaki tarihsel değişikliklerin tümünün sıfırdan başladığını söyler misiniz? Daha fazla tartışma, örneğin, istatistik.stackexchange.com/questions/184525/…
Nick Cox

1
Aksine grafikle ilgili düşünce daha ben istiyorum ilk veri ve analiz altında yatan ne acaba. Ölüm oranı ile hangi faktörler söz konusudur? Zaten yüksekse ölüm oranı daha hızlı düşüyor mu (örneğin Polonya)? Ölüm oranları plato bir düzeyde mi? Bu plato etkisi (Almanya için daha güçlü olan) Avusturya'nın artışını (son birkaç yılda) daha güçlü bir etki yaratabilir mi? Grafik bir çeşit ham veridir (yine de analiz edilmesi gerekir) ve aynı zamanda türetilir (sayılar basit ölçümler değil, türetilir) bu, 1 etkisinin vurgulanmasını zorlaştırır.
Sextus Empiricus

1
Ayrıca, sadece 10 yıldan daha büyük bir süre göstermelisiniz. Bu on yıla odaklanmak, yalnızca çevreyi gösterdiğinizde adil olur. Daha geniş bir perspektiften daha az anlamlı olan yakın çekimler görmek çok yaygındır. Bu eğriler fırtınada dalgalar gibi yukarı ve aşağı gittiğinde, o zaman tüm denizi göstermek zorundasınız, sadece hoş bir hikaye ile ilişkilendirilen tek bir dalgayı değil. (Bu prensibi gösteren Tufte'nin bir örneği olduğuna eminim)
Sextus Empiricus

Yanıtlar:


53

Bazen daha az. Yıldan yıla değişiklikler ve ülke farklılıkları hakkında daha az ayrıntıyla , trendler hakkında daha fazla bilgi sağlayabilirsiniz . Diğer ülkeler çoğunlukla birlikte hareket ettiğinden, ayrı renkler olmadan geçebilirsiniz.

Daha pürüzsüz bir kullanımda, okuyucunun ilginç herhangi bir varyasyon üzerinde yumuşatmadığınıza güvenmesini istersiniz.

görüntü tanımını buraya girin

Kod için birkaç istek aldıktan sonra güncelleme :

Bunu JMP'nin etkileşimli Grafik Oluşturucusunda yaptım . JMP betiği:

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
Tecrübelerime göre, seriyi düzeltmek sosyal bilimlerde çok nadir görülen bir uygulamadır.
luchonacho

6
Belki de onlara yeni ve kullanışlı bir şey göstermek için bir nedendir?
kjetil b halvorsen

9
Sosyal bilimlerdeki normlar ne olursa olsun, yumuşatmanın 1930'da meydana gelen düşüşü ve 1935'te artan yükselişini sakladığını görüyorum. Aksi halde, bu basit yaklaşımı çok seviyorum.
Underminer

7
Sadece iki renk kullanmak için +1 (belki griyi daha da hafifletir mi?) Ve ülke adlarını sağa yerleştirerek efsaneden kaçının. Düzeltme için -1, hiçbir sebep olmadan bilgiyi atar. Bu yüzden aslında oy kullanmama gerek yok ;-)
S. Kolassa - Monica, 5:08

10
@StephanKolassa ben xan en nokta olduğunu düşünüyorum olduğunu "gürültü" yerine yılbaşından yıl değişkenliği daha genel eğilimlere odaklanmak: ıskarta bilgi için iyi bir neden. Bir dereceye kadar, zaten "bilgiyi atıyorsunuz" - yıllık sayılara bakıyorsunuz. Grafiğin, "bilgi atma" ifadesinin sizi götürdüğü yer olan günlük reklam oranlarının çizilmesiyle geliştirileceğinden şüpheliyim . - Bazı eğilimler yumuşatılarak gizlenmiştir, ancak diğerleri (mevsimsel değişkenler gibi) yıllık oranların seçimiyle gizlenmiştir. İlgili varyasyonun hala gösterildiğine dair bazı güven var.
RM

39

Burada iyi cevaplar var. Almanya trendinin diğerlerinden farklı olduğunu göstermek istediğinizi söyleyeyim. Seviyelere karşı değişimler ekonomide ortak bir ayrımdır. Verileriniz seviyelerdeyse , ancak sorunuzun değişiklik istediği belirtiliyor . Bunu yapmanın yolu referans seviyesini (burada 1932) . Oradan, ardışık her yıl bir öncekinin kesridir. (Değişiklikleri daha istikrarlı ve simetrik hale getirmek için günlükleri almak yaygındır. Bu, kesin rakamların anlamını bir şekilde değiştirir, eğer gerçekten birisinin arsadan almasını istiyorsanız, ancak genellikle bu tür şeyler için, insanlar olmak ister. Deseni görebilirsiniz.) Daha sonra her seri için bir koşu toplamı elde eder ve ile çarpın.1100Kongre tarafından. Bu senin planın. Durumunuz, referans noktanızın serinizin ortasında olması nedeniyle biraz daha az yaygındır, bu yüzden bunu 1932'den itibaren her iki yönde de koştum. Aşağıda R kodlu basit bir örnek var (kodu yapmanın pek çok yolu olacak ve arsa daha güzel, ama bu basit bir şekilde fikir göstermelidir). Efsanede onu ayırt etmek için Almanya için daha kalın bir çizgi çizdim ve bir referans çizgisi ekledim . Almanya'nın diğerlerinden farklı olduğunu görmek kolaydır. Ayrıca, diğer tüm ülkelerin 1937'de 1932'de 1932'den düşük olduğunu ve yıllara göre değişiklik gösterdiğini, 1932'den sonraki yıllarda, öncekine göre çok daha az dalgalandığını görebilirsiniz. 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)

görüntü tanımını buraya girin

Buna karşılık, aşağıda, düzeylerdeki verilerin ilgili grafiği yer almaktadır. Yine de, Almanya'nın 1932'den sonra iki yoldan tek başına yükseldiğini görmeyi mümkün kılmaya çalıştım: 1932'de her seriye göze çarpan bir nokta çizdim ve bu seviyelerde arsa boyunca soluk gri bir çizgi çizdim.

görüntü tanımını buraya girin


+1 gerçekten harika bir çözüm
Repmat

2
Göstergeyi kaybetmek (anahtarı öldürmek) ve her eğriyi doğrudan grafiğin gövdesinde etiketlemek için yeterli alan vardır.
Nick Cox,

3
Kodu ve arsa daha güzel hale getirmek için birçok yol vardır. Buradaki ana noktam, b / t seviyelerinin ve değişikliklerin fikirlerini ayırt etmek ve değişikliklerin nasıl görselleştirilebileceğinin temel bir gösterimini sağlamaktı.
dediklerinin - Eski Monica

17

Burada diğer cevaplarda birçok iyi fikir var, ancak mümkün olan iyi çözümleri tüketmiyorlar. Bu cevaptaki ilk grafik farklı ölüm oranlarının ayrı ayrı tartışılıp açıklanabileceğini göstermektedir. Her bir dizinin mevcut boşluğu doldurmasına izin vererek, okuyucuların dikkatini göreceli değişim kalıplarına odaklar.

Ülkeye göre alfabetik sıraya göre genellikle salak bir varsayılandır ve burada ısrar etmez. Neyse ki, ve neyse ki, bu 3 x 3 ekranın merkezinde olduğu gibi Almanya. Basit bir anlatı - Bak! Almanya'nın yapısı 1932'den kalma bir toparlanma ile olağanüstü - mümkün ve makul hale getirildi.

görüntü tanımını buraya girin

Neyse ki, ancak neyse ki, 9 ülke ayrı panelleri denemeyi haklı göstermek için yeterli, ancak bu tasarımı uygulanamaz hale getirmek için çok fazla değil (örneğin 30 ve kesinlikle 300 panelle birlikte, her biri çok küçük olmak üzere, taranacak çok fazla panel olabilirdi) İnceleme Altına).

Açıkçası, daha dolgun ülke isimleri için burada çok fazla alan var. (Bazı diğer cevaplarda, efsaneler mevcut alanın büyük bir kısmını alırken, biraz şifreli kalıyorlar. Uygulamada, bu tür verilerle ilgilenen insanlar, ülke kısaltmalarının kodunu çözmeyi kolay bulacak, ancak efsanenin ne kadar gerekli olduğu genellikle grafik tasarımda sinirlenme sorunu.)

Kayıt için stata kodu:

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)

DÜZENLE:

Tim Morris tarafından önerilen bu grafiğin basit bir geliştirmesi, maksimumun gerçekleştiği yılı vurgulamaktır:

görüntü tanımını buraya girin

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 (daha basit kod gösterecek şekilde revize edildi):

Alternatif olarak, bu sonraki tasarım her bir seriyi ayrı ayrı gösterir, ancak her seferinde diğer seri ile birlikte arka plan oluşturur. Genel fikir bu konu içerisinde tartışılmaktadır .

görüntü tanımını buraya girin

Burada kazanç kadar kayıp da var. Her seri diğerleri bağlamında daha kolay görülebilmesine rağmen, tekrarlama ile alan kaybolur.

Kayıt için stata kodu:

(Kod input, reshape, renamebu cevap yukarıdaki gibi)

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

fabplotolarak anlaşılmalıdır fÖ n ya foreground and backdrop veya bdeğil "muhteşem" için 1960 argo bazı yankı olarak, ackground arsa.


3
+1, söylemeliyim ki, kod böyle güzel bir komplo üretmek için çok özlü.
gung - Reinstate Monica

@gung Teşekkürler. Buradaki herhangi bir beğeni StataCorp tarafından, bunlar yerleşik komutlar olduğundan dolayı hak edilir. Kozmetik olarak bazı varsayılan metni, örneğin zap am yearolarak x ekseni başlığı (yani ihtiyacı var?). Stata kullanıcısına doğal veri yapısının a renameve reshape. ancak, farklı gözlem blokları olarak farklı panellere (burada ülkeler) sahiptir.
Nick Cox

+1 Bununla birlikte, bu çözümün sorunlu bir özelliği, bağlamı kaybetmesidir: Almanya'nın ölüm oranı artmış olmasına rağmen, düşük bir seviyede başladığını ve hala (görece) çok yüksek olmadığını kolayca göremiyoruz.
whuber

1
EDIT 2'deki alternatif tasarım, @whuber'ın bağlam hakkında yaptığı kilit noktaya değinmenin bir yoludur.
Nick Cox 11

15

Grafiğiniz makul, ancak başlık, eksen etiketleri ve tam ülke etiketleri de dahil olmak üzere bazı ayrıntılandırmalar gerektiriyor. Amacınız, gözlem süresi boyunca ölüm oranının artmasına neden olan Almanya'nın tek ülke olduğu gerçeğini vurgulamaksa, bunu yapmanın basit bir yolu arsadaki bu çizgiyi vurgulamak olacaktır. satır türü veya alfa saydamlığı. Zaman serisi grafiğinizi zaman içindeki ölüm oranındaki değişimi gösteren bir bar grafiği ile de artırabilirsiniz, böylece zaman serisi çizgilerinin karmaşıklığı tek bir değişiklik ölçüsüne indirgenir.

Burada kullanarak bu araziler üretebilir nasıl 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)");

Bu, aşağıdaki parsellere yol açar:

görüntü tanımını buraya girin görüntü tanımını buraya girin

Not: OP’nin 1932’den bu yana Almanya’daki eğilimin yükselmeye başladığından beri ölüm oranındaki değişimi vurgulamak istediğini biliyorum. Bu bana biraz kiraz toplama gibi geldi ve zaman aralıkları belli bir trend elde etmek için seçildiğinde bunu şüpheli buluyorum. Bu nedenle, OP ile farklı bir karşılaştırma olan tüm veri aralığındaki aralığa baktım.


Önerileriniz için teşekkürler. Biçim devam eden bir çalışma, bu sadece elde etmek istediklerimin kabaca bir örneğiydi;)
PhDing

1
@Graipher: Well spotted (+1) - Biraz daha zamanım olduğunda yazıyorum.
Monica

1
Çubuk arsa seviyorum, ancak alfabetik x ekseni yerine, değişiklik sıralamak istiyorum.
Gregor,

14

Her ne kadar belirtilen amaç değişiklikleri göstermek olsa da , görünüşe göre yıllık zaman serilerini ülkelere göre göstermek istersiniz. Bu, grafiği tamamen yeniden yapmaktan ibaret değil sadece değiştirmeyi önerir.

Bir değişiklik bir yıldan diğerine olanlarla ilgili olduğu için, değişiklikleri ardışık yıllara yayılan grafik sembollerle temsil etmeyi düşünebilirsiniz: yani, arsadaki veri noktalarını birleştiren çizgi parçaları .

Renk, ülkeleri ayırt etmek için çok faydalı olduğu ve niceliksel değişkenleri göstermede çok iyi olmadığı için, temelde bizleri değişimi belirtmek için çeşitlendirilebilecek sadece iki özellikle karşı karşıya bırakıyoruz: bölümlerin stili ve kalınlığı. Tezin olumlu bir değişim ile ilgili olduğu için, daha belirgin artışlar için çizgi segmentleri yapmak isteyeceksiniz: stilleri daha sürekli olmalı ve daha kalın olmalıdır.

Son olarak, teziniz 1932 sonrası verilerle ilgilidir. Grafiğin bu öğelerini diğerlerine göre vurgulamak isteyeceğiz. Bu rengin doygun hale getirilmesi ile yapılabilir.

Arsa

Bu çözüm hemen orijinalinde açıkça görülmeyen öngörüleri sağlar:

  • Hiçbir ülke, 1932'den sonraki yıllar boyunca ölüm oranlarında yıllık artışlar yaşamamıştır .

  • Değişimin çoğu, tüm ülkeler için ortak olan faktörlere atfedilmelidir. Bu, dikey sütunlardaki çizgi stili ve kalınlık benzerliklerinde belirgindir. Örneğin, 1934-35 döneminde neredeyse tüm ülkelerde ölüm oranları artmış, 1933-34'te neredeyse tüm ülkelerde düşmüştür.

  • Almanya, 1932-33'te ölüm oranlarında büyük bir artış ve 1935-36'da da hafif bir artış yaşanmasında olağandışıydı .

Bunlar, bu dönemde Avrupa ülkelerinin göreceli performansına daha derinlemesine nüfuz etmek amacıyla, belki de medyan cilalarıyla ülkeye karşı ölüm oranındaki güçlü bir iki yönlü araştırmanın gerçekleştirilmesini önermektedir .

Yalnızca 1937 ile 1932 arasındaki farkı vurgulamak isterseniz, bu tarihler arasındaki yolların bölümlerini sembolize etmek için benzer bir teknik kullanılabilir. Almanya öne çıkacak:

Arsa 2


10

Slopegraphs

Verilerinizi sunmanın bir yolu, değişiklikleri veya degradeleri karşılaştırmak için özellikle iyi olan bir eğimi kullanmaktır (bazı bağlantılar: 1 2 )

Aşağıda

  • Solda, bunun davanız için nasıl göründüğünü gösteren bir eğim örneği.

  • Merkezde , 1932 yılını da gösteren daha karmaşık bir eğim

  • Sağ tarafta , eğrinin bir çeşitlemesi, daha fazla tüm kıvılcımların gösterildiği bir tür kıvılcım (düz çizgiler yok).

Hangisinin en iyi olduğundan emin değilim. Üçüncü / sağ seçenek, yıldan yıla değişikliklere ilişkin daha güçlü bir fikir sunar (örneğin, Danmark ile Almanya arasındaki fark o kadar farklı görünmüyor ve yıldan yıla çok fazla düşüyor) ayrıca dikkat dağıtıcı da olabilir (özellikle 1929 zirvesi). Bu yüzden hangisi daha iyidir, grafikle neyi iletmek istediğinize ve hikayenizin ne kadar detay gerektirdiğine (örneğin, 1932'de ikinci / orta seçenekte daha açık olan farklı hükümetle birlikte dönün) bağlıdır.

Sağdaki eğimli eğimin değişimi Xan grafiğine çok benziyor. Bununla birlikte, stilistik farklılıkların yanı sıra bir tane daha önemli fark var. Şeklin genişliği ve yüksekliği, eğrilerin açısının 45 dereceye yakın olacağı şekilde seçilmiştir. Bu şekilde farklar daha belirgindir (En iyi örneğin Edward Tufte'nin güneş lekesi örneği olduğuna inanıyorum )

eğim grafiği ve bir varyasyon

Daha fazla içerik

Basit eğimden daha fazla karmaşıklık eklemek istiyorsanız, 1927-1937 aralığı dışında , aralık içinden daha fazla veri göstermenin daha iyi olacağına inanıyorum . (yine Tufte'nin 74-75. sayfalarındaki sayfalarından, Niceliksel Bilgilerin Görsel Gösterimi sayfasındaki bu sayfa üzerinden bülten panosunda bulabilirsiniz)

Aşağıdaki örnek, 1900-2000 yıllarına (verisi biraz zor olan Polonya hariç) wikipedia'dan (ör . Çek Cumhuriyeti için bu sayfa ) ve İsviçre ve Hollanda için ulusal istatistik bürolarından ( bfs ve Statline ) elde edilen verileri göstermektedir .

(Veriler sizinkinden biraz farklı, ancak örneğin, "Autarchy, pazarın parçalanması ve sağlık:" Nazi Almanya'sındaki ölüm ve beslenme krizi, 1933-1937 "Jörg Baten ve Andrea Wagner'in makalesiyle aynı. Bu makale ilginç. sadece küçük ölümlerle sınırlı kalsalar da, sadece ham ölüm oranlarından çok daha fazla veri sağladıkları için okumak için… Özellikle ilginç olan, ölüm oranındaki artışın, 1932'den 1937'ye kadar, özellikle Frankfurt'tan Bremen'e kadar olan bir şeritte var olmasıdır. ve Hamburg)

daha fazla içerik

Bu grafiğin önemli olduğuna inanıyorum, çünkü Almanya'nın 1932'den sonraki yükselişinden önce çok güçlü bir düşüş kaydettiğini gösteriyor. Diğer ülkelere göre daha güçlü. Böylece olumsuz ve olumlu yorumlarınız olabilir. Almanya'nın ölüm oranı 1932-1937 arasında diğer ülkelere göre daha fazla yükseliyordu, fakat bu (1) düşük bir zirveden uzağa mı, (2) yüksek bir zirveye doğru mu yükseldi? Bu bağlamda ilginç bir husus, 1932'nin 10.8 seviyesinin Almanya için çok düşük bir seviye olmasıdır (bu noktada sadece Hollanda'nın ölüm oranı daha düşüktü). Bu sadece 1937'ye kadarki en düşük seviye değil, aynı zamanda bu 10,8 seviyesine tekrar ulaşılmasından önce 1995 yılına kadar sürüyor.

Sağlıkla ilgili bir başka nokta (bu sizin durumunuzsa), yaşam beklentisini karşılaştırmak daha iyi olabilir, nüfusun demografik kompozisyonunun sağlık durumundaki değişikliklerden bağımsız olarak ölüm oranı üzerinde bir etkisi vardır.

Biraz daha az ek içerik

Yukarıdaki grafik bütünlüğü göstermektedir fakat çoğu amaç için bir üstesinden gelebilir (bu yazı hariç bütün tarihi göstermek istemiştim ve daha çok keşif amaçlı bir amaç için). Aşağıdaki grafik inanıyorum ki hala iyi.

daha küçük bağlamsal grafik


Tüm önerileriniz için teşekkürler. Sanırım sağladığınız sloganlar çok sezgisel. Daha uzun bir zaman aralığı eklemenin faydalı olacağından eminim ama bu belirli döneme odaklanan bir noktaya değinmek ve bunu netleştirmek istiyoruz. Ben 1900-2000 arsa biraz dağınık olacağını düşünüyorum. Son noktanızla ilgili olarak, ölüm oranlarını kullanmaya devam etmek için ham oranları yaş ayarladık.
Doktora

1
@Alessandro Daha pratik olan bir alternatif ekledim. Yine rakamlar farklı çünkü farklı kaynaklar kullandım (yaşa göre düzeltilmemiş), ancak Almanya'nın güçlü düşüşünü izleyen güçlü düşüşün aynı olabileceğini tahmin ediyorum.
Sextus Empiricus

4

İzleyiciye bağlı, ama işleri basitleştirirdim:

görüntü tanımını buraya girin

Ardından, başlıkta örneğin

1932-37 arasında, yıllık ölüm oranı Almanya'da arttı, oysa orta Avrupa genelinde (Fransa, Belçika, Hollanda, Danimarka, Avusturya, Çek Cumhuriyeti, Polonya) düştü.

(Btw ch vs cz nedir yani hangi ülkeyi yukarıda özlüyorum?)

Kapsamlı olmak için, elbette death rate, 'Diğerleri' için 'havuzlarken' popülasyon tahmini ile ağırlıklandırmanız gerekecek , ancak bu bilginin sizin için hazır olduğuna eminim.

Güncelleme 6/9/18: Bu elbette bir 'oyuncak' taslağı ve verilerden elde edilmedi; Buradaki fikir, grafiğin alması gereken formun kaba bir taslağını sağlamaktır.

Adres whuber yorumuna Kime: 'Diğerleri' değerleri, ortalama olarak üretilebilir olabilir ağırlıklı ile nüfus ör tarafından için değer belirten yılda ve olarak ülke 'Diğerleri' in:OyOi=1...88×

Oyi=i=8i=1ADRyi.populationitotalPopulation

veya daha iyisi, eğer nüfus bilginiz varsa. her yıl için:

Oyi=i=8i=1ADRyi.populationyitotalPopulationy

Okuyucuya bağlı olarak (örneğin, epidemiyologlar ve tarihçiler gibi), bunun arsanın basit görünümünü bozacağını düşünmeme rağmen, bunlara standart bir sapma veya standart bir hata eklenebilir.


5
chİsviçre. (Ve BTW, henüz 30'larda Çek Cumhuriyeti değildi .) - Yaklaşımınızdan hoşlanmadığım şey, düşüş eğiliminin diğer ülkeler arasında tutarlı olduğu net değil. Diğer ülkelerde olumsuz olan bir şeyle ortalama olan ancak Almanya'da pozitif olan, rastgele dalga dalgalanmaları varmış gibi görünebilir.
leftaroundabout

Bu cevabı beğendim, ancak 'diğerleri' satırının etrafındaki aralığın veya standart sapmanın bir görselini ekleyebilirim, aksi halde aldatıcı olabilir.
Tasos Papastylianou 19

2
Bu fikri çok beğendim - ama "başkalarının" ölüm oranlarını nasıl belirlediğinizi açıklayabilir misiniz? Oranlarının aritmetik araçları, temsil ettikleri geniş çapta değişen popülasyonlar nedeniyle uygun olmaz.
whuber

3

Eğer değişimi vurgulamak istiyorsanız, o zaman belki bunu hesaplayın ve gösterin. Değişiklikleri görüntülemek için bir ısı haritası kullanmak, fazla çizilmeden sorunlar olmadan karşılaştırma yapılmasını sağladığı ve çizgi grafiklerinden gelebilecek enterpolasyon sorunlarını önlediği için faydalı olabilir.

Verilerinizi dR'deki gibi kullanmak :

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

ölüm hızları ısı haritası

Verilerin şimdi bir önceki yıla göre değiştiğini unutmayın. Diğer ülkelerin sahip olmadığı 1932'den sonra Almanya'da bir küme Blues (ölüm oranlarında artışlar) olduğunu görebilirsiniz. Polonya hariç tüm ülkelerin 1934 ile 1935 arasında ölüm oranlarında artış gördüklerini de görebilirsiniz.

İlginç bir özellik, renklerin sağa kıyasla solda daha yoğun olması. Bu, dönemin başında değişikliklerin büyüklüğünün daha yüksek olduğu ve sona doğru daha sessiz olduğu anlamına gelir.

Bunu, seviyeleri de gösteren bir çizgi grafikle eşleştirmenizi tavsiye ederim.


2

Burada, önceki yıla göre 1000 kişi başına düşen ölüm oranının logaritmasının farkını gösteriyorum (bu nedenle 1927 gösterilmiyor). Almanya kırmızı ile gösterilirken, diğer ülkelerin ortalaması kalın siyah çizgide gösterilmektedir.

görüntü tanımını buraya girin

Almanya, 10 yılda 5 oranında artış gösterdi. 1932'den sonra, 1937'ye kadar diğer ülkelerin ortalamasının üzerinde (ve çoğunlukla olumlu) olduğunu belirtti.

Neden logaritma? Nedeni basit: 2'den 1'e değişim, 1000'den 999'a değişimden daha şiddetli :)


Kod:

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 cinayet oranı değil ölüm oranı hakkında konuşuyor
kjetil b halvorsen

@kjetilbhalvorsen Ooops, sabah 8'den bu yana çalıştığınız bir günde saat 9'dan sonra veri görselleştirmeyi denediğinizde ne olur? En kısa sürede düzeltecek, kafaları için teşekkürler :)
Firebug

1

Bir versiyon daha: oranlar (1927'den bu yıla ortalama ölüm oranı) / (1927'den ölüm oranı)

görüntü tanımını buraya girin

Mathematica kodu ile tamamlandı

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’daki doruklar, o zamanlar meydana gelen grip salgını ile ilişkili görünüyor)

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.