Як правильно побудувати тенденції


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 Я бачу вашу думку, але на практиці діапазон становить приблизно від 9 до приблизно 18 на 1000, тому половину графіку буде витрачено на показ, що рівень смертності не дорівнює нулю. Я думаю, що тому більшість людей (включаючи мене) не хотіли цього робити у своїх відповідях. Поміркуйте, де зупиняється ваш критерій, наприклад, чи наполягаєте ви, що сюжети історичних змін у зрості дорослих починаються з нуля? Більше обговорення, наприклад, stats.stackexchange.com/questions/184525/…
Нік Кокс

1
Замість того, щоб думати про графік, я б спочатку задумався, що лежить в основі даних та аналізу. Які фактори пов'язані зі смертністю? Чи зменшується швидкість смертності швидше, якщо вона вже висока (наприклад, Польща)? Чи плато смертності на якомусь рівні? Чи може цей ефект плато (який сильніший для Німеччини) може зробити посилення для Австрії (за останні кілька років) сильнішим ефектом? Графік є свого роду необробленими даними (його ще потрібно проаналізувати), і в той же час вони отримані (цифри - це не прості вимірювання, а отримані), це ускладнює виділення 1 ефекту.
Секст Емпірік

1
Також вам краще показати більший термін, ніж лише 10 років. Орієнтація на ці десять років справедлива лише тоді, коли ти показуєш оточення. Це так часто бачити крупні плани, які мають значно менший сенс у більш широкій перспективі. Коли ці криві піднімаються вгору і вниз, як хвилі під час шторму, тоді вам доведеться показати все море, а не лише одну хвилю, яка, можливо, співвідноситься з приємною історією. (Я впевнений, що є приклад Туфта, який показує цей принцип)
Sextus Empiricus

Відповіді:


53

Іноді менше - більше. Маючи менше інформації про різницю року та різниці країн, ви можете надати більше інформації про тенденції. Оскільки інші країни рухаються в основному разом, ви можете обійтись без окремих кольорів.

Використовуючи плавніше, ви вимагаєте від читача довіритися, що ви не згладили жодну цікаву варіацію.

введіть тут опис зображення

Оновіть після отримання пари запитів на код :

Я зробив це в JMP «s інтерактивний Graph Builder. Сценарій 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

9
Незалежно від норм соціальних наук, я вважаю, що згладжування приховує падіння, що трапляється в 1930 році, і складний характер, що відбувається в 1935 році. Шип у багатьох країнах, що трапляється в 1929 році, також затьмарюється. Інакше мені дуже подобається цей спрощений підхід.
Underminer

7
+1 за використання лише двох кольорів (можливо, зробити сірий ще світлішим?) Та уникати легенди, розміщуючи назви країн праворуч. -1 для згладжування, яке відкидає інформацію без поважних причин. Тому мені не потрібно насправді голосувати ;-)
С. Коласа - Відновіть Моніку

10
@StephanKolassa Я думаю , що X указуют там є хороша причина для відкидання інформації: зосередитися на загальні тенденції, а не рік-до-року мінливості «шум». Певною мірою ви вже "відкидаєте інформацію" - ви дивитесь на щорічні цифри. Я сумніваюся, що графік буде покращений, побудувавши щоденні тарифи, і саме там "не відкидайте інформацію" вас, абсурд . - Це правда, деякі тенденції затьмарюються згладжуванням, але інші (як сезонні зміни) затьмарюються вибором річних ставок. Існує деяка довіра, що відповідні варіанти все ще відображаються.
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)

введіть тут опис зображення

Навпаки, нижче наведено відповідний графік даних у рівнях. Тим не менше я намагався зробити можливість побачити, що лише Німеччина піднімається після 1932 року двома способами: я поставила помітну точку на кожній серії в 1932 році і намалювала слабку сіру лінію на сюжеті на задньому плані на цих рівнях.

введіть тут опис зображення


+1 дійсно чудове рішення
Репмат

2
Є достатньо місця, щоб втратити легенду (вбити ключ) та позначити кожну криву безпосередньо в тілі графіка.
Нік Кокс

3
Існує маса способів зробити код і сюжет приємнішим. Головним моїм моментом тут було розрізнити ідеї рівнів та змін, і надати основну демонстрацію того, як можна візуалізувати зміни.
gung - Відновіть Моніку

17

Тут є багато хороших ідей в інших відповідях, але вони не вичерпують хороших можливих рішень. Перший графік у цій відповіді передбачає, що різні рівні смертності можуть обговорюватися та пояснюватися окремо. Дозволяючи кожній серії заповнювати значну частину наявного місця, вона фокусує увагу читачів на моделях відносних змін.

Алфавітний порядок по країні, як правило, є типовим за замовчуванням, і тут не наполягають. На щастя, і на щастя, Німеччина як де знаходиться в центрі цього 3-х дисплейного дисплея. Проста розповідь - Дивіться! Німеччина є винятковою з поворотом 1932 року - стає можливою і правдоподібною.

введіть тут опис зображення

На щастя, але, на щастя, 9 країн достатньо, щоб виправдати спроби окремих панелей, але не надто багато, щоб зробити цей дизайн нездійсненним (скажімо, 30 і, звичайно, 300 панелей, може бути (було) занадто багато панелей для сканування, кожна з яких занадто мала перевірити).

Очевидно, що тут є багато місця для більш повних назв країн. (В деяких інших відповідях легенди займають велику частину наявного простору, залишаючись трохи криптовалютними. На практиці люди, зацікавлені в таких даних, вважають, що скорочення країн легко розшифрувати, але наскільки ця легенда потрібна часто неприємне питання в графічному дизайні.)

Статистичний код для запису:

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)

Редагувати:

Одне просте вдосконалення цього графа, запропонованого Тімом Моррісом, - це виділити рік, в якому максимум відбувся:

введіть тут опис зображення

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 (переглянуто для відображення більш простого коду):

Крім того, цей наступний дизайн показує кожну серію окремо, але кожен раз з іншою серією як фон. Загальна ідея обговорюється в цій пов'язаній темі .

введіть тут опис зображення

Тут є втрати, а також виграш. Хоча кожну серію можна легше побачити в контексті інших, простір втрачається шляхом повторення.

Статистичний код для запису:

(Код 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 або fКолір тексту aй backdrop або background сюжету, а не якийсь - то відгомін 1960 - і роки сленгу для «казкові».


3
+1, треба сказати, код досить стислий, щоб створити такий приємний сюжет.
gung - Відновіть Моніку

@gung Дякую Будь-яке визнання тут заслуговує StataCorp, оскільки це вбудовані команди. Косметично я перекидаю текст за замовчуванням, наприклад, yearяк заголовок осі x (кому це потрібно?). Додам, що користувачеві Stata природна структура даних була б такою, яка не зобов'язує а renameта reshape. але має чіткі панелі (тут країни) як окремі блоки спостережень.
Нік Кокс

+1 Однак одна з проблемних особливостей цього рішення полягає в тому, що він втрачає контекст: ми не можемо легко побачити, що, хоча рівень смертності Німеччини зростав, він почався на низькому рівні і все ще не був (відносно) дуже високим в кінці.
whuber

1
Альтернативна конструкція в EDIT 2 - це один із способів вирішити ключовий момент, зроблений @whuber щодо контексту.
Нік Кокс

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

Це призводить до таких сюжетів:

введіть тут опис зображення введіть тут опис зображення

Примітка. Мені відомо, що ОП планувала висвітлити зміни смертності з 1932 року, коли тенденція в Німеччині почала наростати. Мені це здається чимось схожим на збирання вишні, і мені здається сумнівним, коли часові інтервали вибираються для отримання певної тенденції. З цієї причини я розглянув інтервал у всьому діапазоні даних, що є різним порівнянням з ОП.


Дякуємо за ваші пропозиції. Формат - це незавершена робота, це був лише приблизний приклад того, що я хотів отримати;)
Кандидат

1
@Graipher: Добре помічений (+1) - я редагую, коли у мене буде трохи більше часу.
Відновіть Моніку

1
Мені подобається сюжетна смуга, але замість буквеної осі x я б сортував за зміною.
Грегор

14

Хоча заявлена ​​мета полягає у відображенні змін, але, очевидно, ви хочете показати також і річні часові ряди за країнами. Це говорить не про те, щоб повністю переробити графіку, а просто змінити її.

Оскільки зміна стосується того, що відбувається від року до наступного, ви можете розглянути можливість відображення змін графічними символами, що охоплюють наступні роки: тобто сегменти рядків, що з'єднують точки даних у графіку .

Оскільки колір є настільки корисним для розрізнення країн, а в іншому випадку не настільки хороший у вказівці на кількісні змінні, це залишає нам по суті лише дві інші характеристики, які можна змінювати, щоб вказати на зміну: стиль та товщину сегментів. Оскільки ваша теза стосується позитивних змін, ви хочете зробити сегменти ліній для збільшення більш помітними: їхні стилі повинні бути більш безперервними і вони повинні бути товщими.

Нарешті, ваша теза стосується даних після 1932 р. Ми хочемо підкреслити ці елементи графіки відносно інших. Це можна зробити, насичуючи колір.

Сюжет

Це рішення одразу дає розуміння, яке не було очевидним у оригіналі:

  • Жодна країна не зазнавала щорічного зростання смертності протягом усіх років після 1932 року. Будь-яка така країна виглядатиме як суцільна суцільна лінія, але такої лінії немає.

  • Значну частину змін слід віднести до факторів, загальних для всіх країн. Це очевидно в подібності стилю лінії та товщини всередині вертикальних стовпців. Наприклад, за період 1934-35 рр. Рівень смертності зростав майже у всіх країнах, де у 1933-34 рр. Вони зменшились майже у всіх країнах.

  • Німеччина незвично зазнавала значного зростання рівня смертності у 1932-33 роках, а також незначного зростання у 1935-36 роках.

Вони пропонують провести надійне двостороннє дослідження зміни смертності порівняно з країною, можливо, середньою польською мовою, щоб глибше проникнути у відносні показники європейських країн у цей період.

Якщо ви хочете підкреслити лише різницю між 1937 та 1932 роками, подібну техніку можна використовувати для символізації ділянок шляхів між цими датами. Німеччина буде виділятися:

Сюжет 2


10

Схили

Один із способів представлення ваших даних - це використання схилу, який особливо корисний для порівняння змін або градієнтів (деякі посилання: 1 2 )

Нижче є

  • Зліва приклад склографа, який показує, як це виглядає для вашого випадку.

  • У центрі складніший схил, який також показує 1932 рік

  • Праворуч варіація схилу, більше свого роду блискавок, де показані всі дані (маючи на увазі відсутні прямі лінії).

Я не впевнений, який із них найкращий. Третій / правильний варіант забезпечує більш чітке уявлення про зміни року в рік (і, наприклад, стає помітніше, що Данмарк проти Німеччини не виглядає настільки інакше, і він з року в рік сильно йде вгору і вниз), але це може також відволікають (особливо пік 1929 р.). Тож, який краще, залежить від того, що ви хочете передати з графіком, і від того, наскільки детально потрібна ваша історія (наприклад, поворот 1932 року з різним урядом, що більш зрозуміло у другому / середньому варіанті).

Варіація склографа справа схожа на графік Ксана. Однак, крім стилістичних відмінностей, є ще одна важлива відмінність. Ширина і висота фігури вибираються такими, щоб кут кривих був близьким до 45 градусів. Таким чином, відмінності є більш помітними (я вважаю, що найкращим прикладом є приклад сонячної плями Едварда Туфте )

графік нахилу та варіація

Більше контексту

Якщо ви хочете додати більше складності, ніж простий схил, то я вважаю, що насправді краще показати більше даних поза діапазоном 1927-1937, ніж усередині діапазону. (знову приклад Туфте зі сторінок 74-75 у «Візуальному відображенні кількісної інформації» ви можете отримати до нього через цю сторінку на дошці оголошень на його веб-сайті)

У наведеному нижче прикладі дані показують , за роки 1900-2000 ( за винятком Польщі, дані якого трохи важко) витягується з вікіпедії (наприклад цієї сторінки для Чехії ) , а також Швейцарії та Нідерландах їх національні бюро статистики ( BFS і СтатЛайн ).

(Дані трохи відрізняються від ваших, але такі ж, як, наприклад, стаття "Аутархія, дезінтеграція ринку та здоров'я: криза смертності та харчування в нацистській Німеччині 1933-1937 років" Йорга Батена та Андреа Вагнера. Ця стаття цікава читати, оскільки вони надають набагато більше даних, ніж просто сирі показники смертності, хоча вони також обмежуються невеликим періодом. Особливо цікаво те, що зростання смертності з 1932 по 1937 рр. в основному існував серед міст у смузі від Франкфурта до Бремена і Гамбург)

більше контексту

Я вважаю, що цей графік є важливим, оскільки він показує, що Німеччина зробила дуже сильне падіння перед підйомом після 1932 року. Сильніше, ніж інші країни. Тож ви можете мати негативні та позитивні інтерпретації. В 1932-1937 рр. Рівень смертності в Німеччині зростав більше, ніж в інших країнах, але це (1) підйом від низького піку, або (2) підйом до високого піку? Цікавим аспектом у цьому плані є те, що рівень 1932 року 10,8 є дуже низьким рівнем для Німеччини (на даний момент лише в Нідерландах була нижча смертність). Це не тільки найнижчий рівень за роки до 1937 року, але також проходить до 1995 року, перш ніж цей рівень 10,8 знову буде досягнутий.

Ще один момент, пов’язаний зі здоров’ям (якщо це ваш контекст), може бути краще порівняти тривалість життя, демографічний склад населення впливає на рівень смертності, незалежно від змін у стані здоров'я

Трохи менше додатковий контекст

Наведений вище графік показує сукупність, але може бути надмірним для більшості цілей (за винятком цього посту, де я хотів показати всю історію, і це більше для дослідницьких цілей). Наведений нижче графік - це альтернатива, яка, я вважаю, все ще пристойна.

менший контекстуальний графік


Дякуємо за всі ваші пропозиції. Я думаю, що склографи, які ви надали, дуже інтуїтивні. Я впевнений, що включення більш тривалого періоду часу буде корисним, але ми хочемо зробити акцент на цьому конкретному періоді та дати зрозуміти це. Я думаю, що сюжет 1900-2000 років був би занадто безладним. Що стосується вашого останнього пункту, ми регулювали коефіцієнти сирого віку, щоб продовжувати використовувати показники смертності.
Кандидат

1
@Alessandro Я додав альтернативу, яка є більш практичною. Знову цифри відрізняються, тому що я використовував різні джерела (не з урахуванням віку), але я гадаю, що сильний спад Німеччини, що супроводжується сильним зростанням, може бути однаковим.
Секст Емпірік

4

Залежить від аудиторії, але я б спростив:

введіть тут опис зображення

Потім пропишіть це у підписі, наприклад

З 1932-37 рр. Річна смертність зросла в Німеччині, тоді як вона в цілому знизилася по всій центральній Європі (Франція, Бельгія, Нідерланди, Данія, Австрія, Чехія, Польща).

(BTW що таке ch vs. cz, тобто яку країну я пропускаю вище?)

Щоб бути ретельним, вам, звичайно, потрібно зважити death rateоцінку чисельності населення, коли "об'єднати" це для "Інших", але я впевнений, що ця інформація вам доступна.

Оновлення 6/9/18: Це, звичайно, ескіз «іграшки» і не був отриманий з даних; ідея полягає в тому, щоб навести приблизний проект форми, який повинен мати графік.

ОуОi=1 ... 88×

Оуi=i=8i=1АDRуi.pоpулатiонiтоталПоpулатiон

або краще, якщо у вас є інформація про населення. на кожен рік:

Оуi=i=8i=1АDRуi.pоpулатiонуiтоталПоpулатiону

Залежно від читацької аудиторії (наприклад, епідеміологи проти істориків) до останнього можна додати стандартне відхилення або стандартну помилку, хоча, думаю, це скоріше зіпсує простий вигляд сюжету.


5
chє Швейцарія. (І до речі, це була не Чеська Республіка ще в 30 - ті роки.) - Те , що я не люблю про свій підхід є те , що це не ясно , що спадна тенденція узгоджується через інші країни. Це може здатися так, ніби є лише випадкові коливання, що трапляються в середньому до чогось негативного в інших країнах, але виявляються позитивними в Німеччині.
близько

Мені подобається ця відповідь, але я можу додати зоровий діапазон або стандартне відхилення навколо рядка 'інші', інакше засоби можуть обманювати.
Tasos Papastylianou

2
Мені ця ідея дуже подобається - але ви можете, будь ласка, пояснити, як ви визначали рівень смертності "інших"? Арифметичні засоби їх курсу не були б доречними через велику кількість населення, яке вони представляють.
whuber

3

Якщо ви хочете виділити зміни, то, можливо, обчисліть це та покажіть це. Використання теплової карти для відображення змін може бути корисним, оскільки дозволяє проводити порівняння без перенапруг і уникає проблем інтерполяції, які можуть виникати з лінійних графіків.

Використання даних як dу 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")

смертельна теплова карта

Зауважте, що дані тепер змінюються порівняно з попереднім роком. Ви можете бачити, що в Німеччині спостерігається скупчення блюзу (збільшення смертності) після 1932 року, якого не мають інші країни. Ви також можете побачити, що між 1934 та 1935 роками всі країни, крім Польщі, спостерігали зростання смертності, але, здається, у Німеччині тенденція до зниження рівня 1932-1933 та 1935-1936 (а також 1927-1928).

Цікавою особливістю є той факт, що кольори ліворуч інтенсивніше порівняно з правою. Це означає, що масштаби змін були вищими на початку періоду, і більш приглушеними до кінця.

Я рекомендую поєднати це з лінійним графіком, на якому відображаються рівні.


2

Тут я показую вам різницю логарифму відношення смерті на 1000 жителів щодо попереднього року (тому 1927 рік не показаний). Німеччина зображена червоним кольором, тоді як середнє значення для інших країн показано товстою чорною лінією.

введіть тут опис зображення

У Німеччині цей коефіцієнт збільшився за 5 із 10 років. Після 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 halvorsen

@kjetilbhalvorsen Ooops, ось що відбувається, коли ви намагаєтеся візуалізувати дані в 21:00 в день, коли ви працюєте з 8 ранку. Виправимо якнайшвидше, спасибі за голову вгору :)
Firebug

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 р., Схоже, пов'язані з пандемією грипу, що сталася в цей час)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.