Как правильно строить тренды

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
PhDing
источник
2
Данные из Италии и Испании были бы интересны в сравнении. В то время у них также были фиктивные правительства.
Asmaier
1
Помимо хороших идей, приведенных в ответах, пожалуйста, не забудьте начать свой график с 0 (ось Y), чтобы относительные изменения величин были более заметными.
WoJ
2
@WoJ Я понимаю вашу точку зрения, но на практике диапазон составляет от 9 до 18 на 1000, поэтому половина пространства графика будет потрачена, показывая, что уровень смертности не равен нулю. Я думаю, именно поэтому большинство людей (включая меня) не хотели делать это в своих ответах до сих пор. Подумайте, где останавливается ваш критерий, например, настаиваете ли вы, чтобы графики исторических изменений роста взрослых начинались с нуля? Дополнительные обсуждения, например, по адресу stats.stackexchange.com/questions/184525/…
Ник Кокс
1
Вместо того, чтобы думать о графике, я сначала задаюсь вопросом, что лежит в основе данных и анализа. Какие факторы связаны с уровнем смертности? Смертность снижается быстрее, если она уже высока (например, в Польше)? Есть ли плато смертности на каком-то уровне? Может ли этот эффект плато (который сильнее для Германии) сделать увеличение для Австрии (в последние несколько лет) более сильным? График является своего рода необработанными данными (его все еще необходимо проанализировать), и в то же время он выводится (числа не являются простыми измерениями, а выводятся), что затрудняет выделение эффекта 1.
Секст Эмпирик
1
Кроме того, вам лучше показать больший период, чем просто 10 лет. Внимание к этим десяти годам справедливо только тогда, когда вы показываете окрестности. Очень часто можно видеть крупные планы, которые имеют гораздо меньше смысла в более широкой перспективе. Когда эти кривые идут вверх и вниз, как волны во время шторма, вам нужно показать все море, а не только одну волну, которая соотносится с хорошей историей. (Я уверен, что есть пример Туфте, который показывает этот принцип)
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)

));

Xan
источник
4
По моему опыту, сглаживание рядов - очень редкая практика в социальных науках.
Лучоначо
6
Может быть, это причина показать им что-то новое и полезное?
kjetil b halvorsen
9
Независимо от норм в социальных науках, я считаю, что сглаживание скрывает спад, который происходит в 1930 году, и всплеск, который происходит в 1935 году. Пик во многих странах, происходящий в 1929 году, также скрыт. В остальном мне очень нравится этот упрощенный подход.
Подрыватель
7
+1 за использование только двух цветов (возможно, сделать серый еще светлее?) И избежать легенды, поместив названия стран справа. -1 для сглаживания, которое отбрасывает информацию без веской причины. Поэтому мне не нужно на самом деле голосовать ;-)
С. Коласса - Восстановить Монику
10
@StephanKolassa Я думаю, что точка зрения Ксана заключается в том, что есть веская причина отказаться от информации: сосредоточиться на общих тенденциях, а не на «шуме» изменчивости из года в год. В какой-то степени вы уже «отбрасываете информацию» - вы смотрите на годовые показатели. Я сомневаюсь, что график был бы улучшен путем составления дневных ставок, к которым вы можете привести «не выбрасывайте информацию», до абсурда . - Это правда, что некоторые тенденции скрываются сглаживанием, а другие (например, сезонные колебания) скрываются из-за выбора годовых ставок. Существует некоторое доверие, что соответствующие изменения все еще отображаются.
RM
39

Здесь есть хорошие ответы. Позвольте мне поверить вам на слово, что вы хотите показать, что тренд для Германии отличается от остальных. Уровни и изменения - это обычное различие в экономике. Ваши данные находятся в уровнях , но ваш вопрос сформулирован как поиск изменений . Способ сделать это состоит в том, чтобы установить опорный уровень (здесь 1932) как . Оттуда каждый последующий год является частью предыдущего. (Обычно журналы делают, чтобы изменения были более стабильными и симметричными. Это несколько меняет значение точных чисел, если вы действительно хотите, чтобы кто-то получил это из сюжета, но обычно для такого рода вещей люди хотят быть возможность увидеть шаблон.) Затем вы получаете промежуточную сумму для каждой серии и умножаете ее на100 1001100условно. Это то, что вы замышляете. Ваш случай немного менее распространен в том смысле, что ваша контрольная точка находится в середине вашей серии, поэтому я выполнил это в обоих направлениях с 1932 года. Ниже приведен простой пример, закодированный в R (будет много способов сделать код и сюжет приятнее, но это должно показать идею прямолинейно). Я сделал линию для Германии более густой, чтобы выделить ее в легенде, и добавил контрольную линию на . Легко видеть, что Германия выделяется на фоне остальных. Вы также можете видеть, что во всех других странах в 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 году я поставил заметную точку на каждой серии и нарисовал слабую серую линию на графике на заднем плане на этих уровнях.

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

Gung - Восстановить Монику
источник
+1 действительно отличное решение
Repmat
2
Там достаточно места, чтобы потерять легенду (убить ключ) и пометить каждую кривую непосредственно в теле графика.
Ник Кокс
3
Есть много способов сделать код и сюжет лучше. Моя главная цель здесь состояла в том, чтобы отличить идеи уровней и изменений и предоставить базовую демонстрацию того, как изменения могут быть визуализированы.
gung - Восстановить Монику
17

В других ответах есть много хороших идей, но они не исчерпывают возможных решений. Первый график в этом ответе предполагает, что различные уровни смертности могут обсуждаться и объясняться отдельно. Позволяя каждой серии заполнять большую часть доступного пространства, она фокусирует внимание читателей на закономерностях относительных изменений.

Алфавитный порядок по странам, как правило, по умолчанию, и здесь не настаивают. К счастью и к счастью, Германия как де находится в центре этого дисплея 3х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)

РЕДАКТИРОВАТЬ:

Одним из простых улучшений этого графика, предложенных Тимом Моррисом, является выделение года, в котором произошло максимальное:

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

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 или fЦвет текста aй backdrop или background сюжета, а не какой - то отголосок 1960 - е годы сленга для «сказочные».

Ник Кокс
источник
3
+1, я должен сказать, код довольно лаконичен, чтобы создать хороший сюжет.
gung - Восстановить Монику
@ Gung Спасибо. Любое признание здесь заслуживает StataCorp, поскольку это встроенные команды. Косметически я вырезаю некоторый текст по умолчанию, например, yearкак заголовок оси x (кому это нужно?). Я добавлю, что для пользователя Stata естественная структура данных будет такой, которая не обязывает a 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 года, когда тенденция в Германии начала расти. Это кажется мне немного похожим на сбор вишни, и я нахожу сомнительным, когда выбираются временные интервалы для получения определенного тренда. По этой причине я рассмотрел интервал во всем диапазоне данных, который отличается от сравнения с ОП.

Восстановить Монику
источник
Спасибо за ваши предложения. Формат находится в стадии разработки, это был только грубый пример того, что я хотел получить;)
PhDing
1
@Graipher: Хорошо заметили (+1) - я буду редактировать, когда у меня будет немного больше времени.
Восстановить Монику
1
Мне нравится гистограмма, но вместо алфавитной оси X я бы отсортировал по изменению.
Грегор
14

Хотя заявленная цель состоит в том, чтобы отображать изменения, очевидно, вы также хотите показывать годовые временные ряды по странам. Это предполагает не полностью переделывать графику, а просто изменить ее.

Поскольку изменение касается того, что происходит из года в год, вы можете рассмотреть возможность представления изменений с помощью графических символов, охватывающих последовательные годы: сегменты линий, соединяющие точки данных на графике.

Так как цвет очень полезен для различения стран и, в остальном, не так хорош для указания количественных переменных, это оставляет нам по существу только две другие характеристики, которые можно варьировать для обозначения изменений: стиль и толщина сегментов. Поскольку ваш тезис касается положительных изменений, вам нужно сделать сегменты линий для увеличения более заметными: их стили должны быть более непрерывными и они должны быть более толстыми.

Наконец, ваш тезис касается данных после 1932 года. Мы хотим подчеркнуть эти элементы графики относительно других. Это может быть сделано путем насыщения цвета.

участок

Это решение сразу предоставляет идеи, которые не были очевидны в оригинале:

  • Ни в одной стране не наблюдалось ежегодного роста смертности за все годы после 1932 года. Любая такая страна выглядела бы как непрерывная сплошная линия, но такой линии нет.

  • Большая часть изменений должна объясняться факторами, общими для всех стран. Это проявляется в сходстве стиля и толщины линий в вертикальных столбцах. Например, в период 1934-35 годов уровень смертности увеличился почти во всех странах, а в 1933-34 годах он снизился почти во всех странах.

  • В Германии было необычно наблюдаться значительное увеличение смертности в 1932-33 гг., А также небольшое увеличение в 1935-36 гг.

Они предполагают проведение тщательного двустороннего исследования изменения уровня смертности в зависимости от страны, возможно, по среднему польскому языку, чтобы глубже проникнуть в относительные показатели европейских стран за этот период.

Если вы хотите подчеркнуть только разницу между 1937 и 1932 годами, аналогичный метод можно использовать для обозначения частей путей между этими датами. Германия будет выделяться

Участок 2

Whuber
источник
10

Slopegraphs

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

Ниже

  • Слева приведен пример склона, который показывает, как это выглядит для вашего случая.

  • В центре более сложный склон, который также показывает 1932 год

  • Справа - вариация наклона, больше разновидность спарклайнов, где показаны все данные (т.е. без прямых линий).

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

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

график наклона и вариация

Больше контекста

Если вы хотите добавить больше сложности, чем простой уклон, то я считаю, что на самом деле лучше показывать больше данных вне диапазона 1927-1937 гг., Чем внутри диапазона. (снова пример Tufte со страниц 74-75 в «Визуальном отображении количественной информации», вы можете получить к нему через эту страницу на доске объявлений на его веб-сайте)

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

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

больше контекста

Я считаю, что этот график важен, потому что он показывает, что Германия сильно упала до роста после 1932 года. Сильнее, чем другие страны. Таким образом, вы можете иметь негативные и позитивные интерпретации. Смертность в Германии росла больше, чем в других странах в период с 1932 по 1937 год, но было ли это (1) ростом от низкого пика или (2) ростом к высокому пику? Интересным аспектом в этом отношении является то, что уровень 10,8 в 1932 году является очень низким уровнем для Германии (на данный момент только Нидерланды имели более низкий уровень смертности). Это не только самый низкий уровень за годы до 1937 года, но также и до 1995 года, прежде чем этот уровень 10,8 снова будет достигнут.

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

Чуть-чуть дополнительный контекст

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

меньший контекстный график

Секст Эмпирик
источник
Спасибо за все ваши предложения. Я думаю, что предоставленные вами склоны очень интуитивны. Я уверен, что включение более длительного промежутка времени было бы полезно, но мы хотим сделать акцент на этом конкретном периоде и прояснить его. Я думаю, что заговор 1900-2000 годов был бы слишком запутанным. Что касается вашего последнего пункта, мы скорректировали возрастные коэффициенты, чтобы продолжать использовать показатели смертности.
PhDing
1
@Alessandro Я добавил альтернативу, которая более практична. Опять же, цифры разные, потому что я использовал разные источники (не с поправкой на возраст), но я думаю, что сильный спад в Германии, за которым последует сильный рост, может быть таким же.
Секст Эмпирик
4

Зависит от аудитории, но я бы упростил вещи:

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

Затем изложите это в заголовке, например

С 1932 по 37 год годовой уровень смертности в Германии увеличился, тогда как в целом по Центральной Европе он снизился (Франция, Бельгия, Нидерланды, Дания, Австрия, Чехия, Польша).

(Кстати, что такое ch против cz, то есть, какую страну мне не хватает выше?)

Чтобы быть точным, вам, конечно, нужно взвесить death rateоценку численности населения при «объединении» этого для «Других», но я уверен, что эта информация вам легко доступна.

Обновление 9/9/18: Это, конечно, «игрушечный» набросок, который не был получен из данных; Идея состоит в том, чтобы предоставить черновой вариант формы, которую должен принять график.

Чтобы ответить на комментарий whuber: значения для «Других» могут быть сгенерированы как среднее значение, взвешенное по населению, например, с указывающим значение для в год, и как стран в «Других»:OyOi=1...88×

Oyi=i=8i=1ADRyi.populationitotalPopulation

или лучше, если у вас есть информация о населении. за каждый год:

Oyi=i=8i=1ADRyi.populationyitotalPopulationy

В зависимости от читателей (например, эпидемиологи против историков) к последнему может быть добавлено стандартное отклонение или стандартная ошибка, хотя я думаю, что это скорее испортит простой вид сюжета.

dardisco
источник
5
chэто Швейцария. (И кстати, это была не Чешская Республика еще в 30-х годах.) - Что мне не нравится в вашем подходе, так это то, что не ясно, что тенденция к снижению в других странах одинакова. Может показаться, что есть просто случайные колебания, которые в среднем оказываются отрицательными в других странах, но оказываются положительными в Германии.
оставлено около
Мне нравится этот ответ, но я мог бы добавить визуальное представление о диапазоне или стандартном отклонении вокруг линии «других», иначе это может быть обманчивым.
Тасос Папастилиану
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 Ой, вот что происходит, когда вы пробуете визуализацию данных после 9 вечера в день, когда вы работаете с 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 году, по-видимому, связаны с пандемией гриппа, которая произошла в то время)

მამუკა ჯიბლაძე
источник