---
title: "Tutorium 2"
format: pdf
editor: visual
---

## Setup: Aufgabe a und b

Wir laden die zugehörigen R Pakete, oder installieren sie, falls notwendig. Zusätzlich laden wir die Daten.

```{r}
library(ggplot2)
library(data.table)
eu_data <- fread("../input/eu_länder.csv")
export_data <- fread("../input/exporte.csv")
# NZL = Neuseeland
```

## Aufgabe c

Wir inspizieren die Daten. Außerdem wollen wir sie plotten, sodass wir einen besseren Überblick bekommen.

```{r}
# View(eu_data)
# View(export_data)
head(eu_data)
head(export_data)

# Zusätzliche Variablen erstellen
export_data[, total_export := sum(exporte, na.rm = T), by = exporter]
export_data[, total_import := sum(exporte, na.rm = T), by = importer]
# Anmerkung: Befehlsstruktur funktioniert nur für data.tables, also müssen die Daten mit Hilfe von "fread()" eingelesen werden, und nicht mit "read.csv()".

# Vorbereitung um die Daten sinnvoll plotten zu können:
plot_data = export_data[importer == "NZL" & exporter %in% eu_data$iso3]
plot_data[, trade := exporte / 1000000000]
plot_data[, volume := total_export / 1000000000]

# Normaler Plot
plot = ggplot(plot_data, aes(x = volume, y = trade)) +
  theme_minimal() +
  geom_point() + 
  geom_smooth(method = "lm", color = "red", se = FALSE) + 
  labs(x = "Exporte (in Mrd. €)", y = "Exporte nach Neuseeland (in Mrd. €)",
       title = "Exporte der EU-Nationen nach Neuseeland", 
       subtitle = "dargestellt in Abhängigkeit vom Gesamt-Exportvolumen")
plot

# Plot mit logarithmierter Skalierung der X-Achse und Y-Achse
plot_log = plot + scale_x_log10() + scale_y_log10()
plot_log
```

scale_x_log10() + scale_y_log10() skalieren die Werte auf den Achsen logarithmisch zur Basis 10. Das bedeutet, dass die Werte auf den Achsen nicht linear, sondern logarithmisch skaliert sind. Konkreter bedeutet das hier, dass die Distanz zwischen 1 und 10 genauso groß ist wie die Distanz zwischen 10 und 100.

## Aufgabe d

Nun erstellen wir ein lineares Regressionsmodell, um den Zusammenhang zwischen (wirtschaftlicher) Größe und dem Exportvolumen (nach Neuseeland) zu bestimmen.

```{r}
regression_data = export_data[importer == "NZL" & exporter %in% eu_data$iso3]

regression = lm(log(exporte) ~ log(total_export), data = regression_data)
summary(regression)
```

## Aufgabe e

Was sehen wir bezüglich der Signifikanz der Ergebnisse?

Die Signifikanz sehen wir an den Sternen \*\*\* am Ende der Zeile. Die Bedeutung der Signifikanz finden wir codiert am Ende des Outputs. Oftmals schauen wir auf ein Signifikanzniveau von 5%, dieses finden wir bereits ab einer Codierung von einem Stern \*.

## Aufgabe f

Nun berechnen wir das ganze einmal "von Hand/zu Fuß".

```{r}
regression_data[, log_export := log(exporte)]
regression_data[, log_total_export := log(total_export)]

# X und y matrix bauen
X = cbind(1, regression_data$log_total_export)
Y = regression_data$log_export
beta = solve(t(X) %*% X) %*% t(X) %*% Y
beta
```

## Aufgabe g

Was bedeutet die Transformation für die Interpretation der Koeffizienten?

Bei der Interpretation müssen wir stets die Transformation bedenken, in unserem Fall haben wir dafür den natürlichen Logarithmus verwendet. Das bedeutet, dass wir die Koeffizienten als Elastizitäten interpretieren können. Eine Veränderung der unabhängigen Variable (gesamtes Exportvolumen) führt zu einer relativen Veränderung der abhängigen Variable (Exportvolumen nach Neuseeland). Alternativ könnten wir die Koeffizienten auch rücktransformieren mit Hilfe der Exponentialfunktion (als Gegenstück zum natürlichen Logarithmus).

Genauer bedeutet das hier, dass 1% zusätzliche wirtschaftliche Größe (total_export) zu einem Zuwachs von 1.28% bei den Exporten führt (Estimate des Effekts von log(total_export)).
