Abgabezettel 2: Portugiesische Aktiendepots
Ziel dieses Abgabezettels ist die Anwendung verschiedener Methoden machinellen Lernens, des Ziehens von Stichproben zur Quantifizierung von Unsicherheit, sowie die Anwendung von Konzepten zu kausaler Inferenz.
Dazu wird in großen Teilen ein Datensatz einer Marketing Kampagne einer portugiesischen Bank verwendet (Moro et al., 2014). Der Datensatz enthält Informationen über Kundenattribute und das Ergebnis der Marketingkampagne zu Aktiendepots.
Anleitung
Bitte bearbeiten Sie alle Aufgaben. Nutzen Sie die in der Vorlesung und in den Tutorien genutzten R
-Befehle. Dokumentieren Sie Ihre Schritte gut mittels Textblöcken in Quarto Markdown oder Kommentaren in R
-Code. Jede Teilaufgabe muss über den Code hinaus eine kurze Beschreibung beinhalten. Stellen Sie sicher, dass der Code reproduzierbar ist, d.h. der/die Prüfer den Code ausführen kann.
Daten
Jede/r Studierende erhält eine personalisierte Stichprobe aus dem folgenden Datensatz: bank-additional-full.csv
Kundendaten
age
- Alter (numerisch): Alter des Kunden.job
- Beruf (kategorial): Art des Berufs (“admin.”,“blue-collar”,“entrepreneur”,“housemaid”,“management”,“retired”,“self-employed”,“services”,“student”,“technician”,“unemployed”,“unknown”).marital
- Familienstand (kategorial): Familienstand (“divorced”,“married”,“single”,“unknown”; Hinweis: “divorced” bedeutet geschieden oder verwitwet).education
- Bildung (kategorial): Bildungsniveau (“basic.4y”,“basic.6y”,“basic.9y”,“high.school”,“illiterate”,“professional.course”,“university.degree”,“unknown”).default
- Kreditausfall (kategorial): Hat der Kunde einen Kreditausfall? (“no”,“yes”,“unknown”).housing
- Hypothek (kategorial): Hat der Kunde eine Hypothek? (“no”,“yes”,“unknown”).loan
- Kredit (kategorial): Hat der Kunde einen persönlichen Kredit? (“no”,“yes”,“unknown”).
Informationen zum letzten Kontakt der aktuellen Kampagne
contact
- Kontaktart (kategorial): Art der Kontaktaufnahme (“cellular”,“telephone”).month
- Monat (kategorial): Letzter Kontaktmonat des Jahres (“jan”, “feb”, “mar”, …, “nov”, “dec”).day_of_week
- Wochentag (kategorial): Letzter Kontakttag der Woche (“mon”,“tue”,“wed”,“thu”,“fri”).duration
- Kontaktdauer (numerisch): Dauer des letzten Kontakts in Sekunden.
Weitere Attribute
campaign
- Kampagnenkontakte (numerisch): Anzahl der während dieser Kampagne durchgeführten Kontakte mit diesem Kunden (einschließlich des letzten Kontakts).pdays
- Tage seit letztem Kontakt (numerisch): Anzahl der Tage seit dem letzten Kontakt mit dem Kunden aus einer vorherigen Kampagne (999 bedeutet, dass der Kunde nicht zuvor kontaktiert wurde).previous
- Vorherige Kontakte (numerisch): Anzahl der vor dieser Kampagne durchgeführten Kontakte mit diesem Kunden.poutcome
- Ergebnis der vorherigen Kampagne (kategorial): Ergebnis der vorherigen Marketingkampagne (“failure”,“nonexistent”,“success”).
Soziale und wirtschaftliche Kontextattribute
emp.var.rate
- Beschäftigungsänderungsrate (numerisch): Vierteljährlicher Indikator für die Veränderungsrate der Beschäftigung.cons.price.idx
- Verbraucherpreisindex (numerisch): Monatlicher Verbraucherpreisindex.cons.conf.idx
- Verbrauchervertrauensindex (numerisch): Monatlicher Verbrauchervertrauensindex.euribor3m
- Euribor 3-Monatsrate (numerisch): Täglicher Indikator für die 3-Monats-Euribor-Rate.nr.employed
- Anzahl der Beschäftigten (numerisch): Vierteljährlicher Indikator für die Anzahl der Beschäftigten.
Zielvariable
y
- Abonnement (binär): Hat der Kunde ein Termindepot abonniert? (“yes”,“no”)
Mehr Informationen erhalten Sie u.A. in der Datei bank-additional-names.txt.
Nachdem Sie die Daten in R
geladen haben, ziehen Sie bitte wie beim ersten Abgabezettel hieraus eine persönliche Stichprobe:
set.seed(12345678) # Matrikelnummer ist der Seed
<- daten[sample(1:nrow(daten), 2000),] # 2000 Zeilen der Daten zufällig auswählen daten
Achtung: Ersetzen Sie bitte 12345678
durch Ihre Matrikelnummer und daten
durch den von Ihnen gewählten Namen des Objektes des Datensatzes.
Achtung: Wenn sie die Funktion sample()
mehrfach ausführen ändert sich ihre Stichprobe! Gehen Sie sicher, dass Ihr Code reproduzierbar ist, indem Sie vor der Abgabe alles noch einmal vollständig durchlaufen lassen.
Einreichung
Format: Als Quarto Markdown (.qmd
) oder R-Datei (.R
) per E-Mail an: abgabe-internationale-vwl@uni-bielefeld.de
Abgabefrist: 5. Juli AoE
Aufgabe 1: Setup
(2 Punkte)
- RStudio Projekt und Ordnerstruktur
- Erstellen und nutzen Sie ein neues RStudio-Projekt. Richten Sie eine geeignete Ordnerstruktur ein.
Nenne die Ordner “Bankdaten”, “Auswertung” und “Scripte”.
- Installieren und laden Sie die erforderlichen
R
-Packages für Ihre Analyse. Automatisieren Sie dieses Vorgehen so weit wie möglich.
- Erstellen und nutzen Sie ein neues RStudio-Projekt. Richten Sie eine geeignete Ordnerstruktur ein.
- Dateninspektion
- Laden Sie die Daten in
R
und ziehen Sie die Stichprobe wie oben beschrieben. Von nun an arbeiten Sie nur mit dieser personalisierten Stichprobe. - Inspizieren Sie diese mit geeigneten Befehlen. Gehen Sie auf die Struktur des Datensatzes und der Variablen ein, auch unter Verwendung von Visualisierungen.
- Laden Sie die Daten in
Aufgabe 2: Klassifikation
(3 Punkte)
- Modellierung und Schätzung
- Entwickeln Sie zwei Modelle, um vorherzusagen, ob ein Kunde ein Termindepot abschließt. Eins der Modelle soll dabei auf Inhalten der Vorlesung 5, das andere auf Inhalten der Vorlesung 7 basieren. Nutzen Sie dazu die Kundenattribute. Teilen Sie zur Analyse Ihre Beobachtungen in ein Training- und ein Test-Datensatz.
- Erläutern Sie, warum Sie diese Modelle gewählt haben und welche Annahmen dabei gemacht werden.
- Evaluation
- Bewerten Sie die Leistungen der Modelle anhand geeigneter Metriken.
- Interpretieren Sie die Ergebnisse und visualisieren Sie diese auf geeignete Weise.
Aufgabe 3: Clustering
(3 Punkte)
- Datenanalyse
- Segmentieren Sie die Kunden in verschiedene Cluster basierend auf ihren Attributen. Nutzen Sie hierfür eine Methode aus der achten Vorlesung.
- Bestimmen Sie die optimale Anzahl der Cluster mit Hilfe eines
for
-Loops und erläutern Sie Grundidee der gewählten Methode.
- Interpretation
- Visualisieren Sie die Cluster und interpretieren Sie die Ergebnisse.
- Diskutieren Sie die Implikationen der Clusteranalyse.
Aufgabe 4: Bootstrapping
(3 Punkte)
- Datenanalyse
- Schätzen Sie die durchschnittliche Kontaktdauer (
duration
) mit dem/der Kunden/in und berechnen Sie das Konfidenzintervall mittels Bootstrapping. - Erläutern Sie die Grundidee von Bootstrapping.
- Schätzen Sie die durchschnittliche Kontaktdauer (
- Interpretation
- Interpretieren Sie die Ergebnisse des Bootstrapping-Verfahrens. Visualisieren die Ergebnisse sinnvoll.
- Diskutieren Sie die Vor- und Nachteile von Bootstrapping im Vergleich zu traditionellen Methoden zur Schätzung von Konfidenzintervallen.
Aufgabe 5: Kausale Inferenz und Difference-in-Differences
(4 Punkte)
Kausale Inferenz
Lesen Sie den Artikel “A precinct too far” von Enrico Cantoni, publiziert im Jahr 2020 im American Economic Journal: Applied Economics (link).
- Was ist die Forschungsfrage?
- Was ist Kontrollgruppe und Behandlungsgruppe? Was ist die Behandlung in diesem Fall?
- Was ist die Identifikationsstrategie?
Gehen Sie auf die Exclusion Restriction ein.
Um die Fragen zu beantworten, müssen Sie nicht den gesamten Artikel lesen.
Difference-in-Differences
Sie haben die folgende Abbildung gegeben:
- Bestimmen Sie den Difference-in-Differences Schätzer.
- Interpretieren Sie den Schätzer.
- Welche Annahme wird über die Vorperioden, also \(t<0\), gemacht?