nasa03

data
eda
association
string
Published

May 8, 2023

Aufgabe

Viele Quellen berichten Klimadaten unserer Erde, z.B. auch National Aeronautics and Space Administration - Goddard Institute for Space Studies.

Von dieser Quelle beziehen wir diesen Datensatz.

Die Datensatz sind auf der Webseite wie folgt beschrieben:

Tables of Global and Hemispheric Monthly Means and Zonal Annual Means

Combined Land-Surface Air and Sea-Surface Water Temperature Anomalies (Land-Ocean Temperature Index, L-OTI)

The following are plain-text files in tabular format of temperature anomalies, i.e. deviations from the corresponding 1951-1980 means.

Global-mean monthly, seasonal, and annual means, 1880-present, updated through most recent month: TXT, CSV

Starten Sie zunächst das R-Paket tidyverse falls noch nicht geschehen.

library(tidyverse)

Importieren Sie dann die Daten:

data_path <- "https://data.giss.nasa.gov/gistemp/tabledata_v4/GLB.Ts+dSST.csv"
d <- read_csv(data_path, skip = 1)

Wir lassen die 1. Zeile des Datensatzes aus (Argument skip), da dort Metadaten stehen, also keine Daten, sondern Informationen (Daten) zu den eigentlichen Daten.

Aufgaben

  1. Erstellen Sie für jeden Januar eine Variable (temp_is_above), die ausgibt, ob die Temperatur über oder unter dem Durchschnitt liegt (d.h. eine negative oder positive Abweichung ist). Nutzen Sie als Ausprägungen die Werte “yes” und “no”.
  2. Erstellen Sie dann eine Variable, die das Jahrhundert angibt (19. JH. vs. 20 JH).
  3. Zählen Sie dann wie oft temp_is_above “yes” aufweist pro Jahrhundert (“erhöhter Temperatur”).
  4. BONUSAUFGABE: Berechnen Sie das Odds Ratio (Chancenverhältnis) von erhöhter Temperatur (vs. nicht erhöhter Temperatur) zwischen dem 19. und dem 20. Jahrhundert.

Hinweise:

Für “Wenn-Dann-Abfragen” eignet sich folgender R-Befehl (als “Pseudocode” dargestellt):

d %>% 
  mutate(neue_spalte = case_when(
    erste_bedingung_bzw_wenn_teil ~ dann_teil1,
    zweite_bedingung_bzw_zweiter_wenn_teil ~ dann_teil2
  ))

Es finden sich online viele Hilfsangebote zu case_when, falls Sie weitere Informationen benötigen.

Unter Odds Ratio versteht man den Quotienten zweier Quotienten. Das hört sich zu theoretisch an? Betrachten wir ein Beispiel. Sagen wir, mit Impfung sei das Risiko für eine bestimmte Erkrankung 1:1000; ohne Impfung aber 1:100.

Also: Hundert-zu-eins steht gegen tausend-zu-eins. Das ist ein Faktor von zehn bzw. von ein Zehntel, jenachdem wie rum man den Bruch (Quotient) betrachtet.

\[\frac{\frac{1}{100}}{\frac{1}{1000}} = \frac{1}{10}\]











Lösung

temp_is_above erstellen:

d <-
  d %>% 
  mutate(temp_is_above = case_when(
    Jan > 0 ~ "yes",
    Jan <= 0 ~ "no"
  ))

Jahrhundert berechnen:

d <-
  d %>% 
  mutate(century = case_when(
    Year < 1900 ~ "19th",
    Year >= 1900 ~ "20th"
  ))

Erhöhte Werte der Januar-Temperatur pro Jahrhundert berechnen:

d_summarized <- 
d %>% 
  group_by(century) %>% 
  count(temp_is_above)

d_summarized
# A tibble: 4 × 3
# Groups:   century [2]
  century temp_is_above     n
  <chr>   <chr>         <int>
1 19th    no               19
2 19th    yes               1
3 20th    no               56
4 20th    yes              69

Der Befehl count() zählt aus, wie häufig die Ausprägungen der angegebenen Variablen X sind, m.a.W. er gibt die Verteilung von X wieder.

Es macht vermutlich Sinn, noch die Anteile (relative Häufigkeiten) zu den absoluten Häufigkeiten zu ergänzen:

d_summarized %>% 
  mutate(prop = n / sum(n))
# A tibble: 4 × 4
# Groups:   century [2]
  century temp_is_above     n  prop
  <chr>   <chr>         <int> <dbl>
1 19th    no               19 0.95 
2 19th    yes               1 0.05 
3 20th    no               56 0.448
4 20th    yes              69 0.552

Odds Ratio berechnen:

Wir bezeichnen mit c19 (für “Chance 1”) das Verhältnis von erhöhter Temperatur zu nicht erhöhter Temperatur im 19. Jahrhundert.

c19 <- 1 / 19

Mit c20 bezeichnen wir die analoge Chance für das 20. Jahrhundert:

c20 <- 56 / 67

Das Verhältnis der beiden Chancen gibt das Chancenverhältnis (Odds Ratio, OR):

c19 / c20
[1] 0.06296992

Genauso gut kann man das OR von c20 zu c19 ausrechnen, der Effekt bleibt identisch:

c20 / c19
[1] 15.8806

In beiden Fällen ist es ein Faktor von knapp 16.


Categories:

  • data
  • eda
  • association
  • string