| Kriterium | Gewicht | ausgezeichnet (30) | gut (25) | akzeptabel (20) | verbesserungswürdig (15) | inakzeptabel (0) |
|---|---|---|---|---|---|---|
| Aufgabe 1 – Heavy User | 20 % | Korrekt identifizierte Lösung mit effizientem, gut kommentiertem Code und einer tiefgehenden Analyse. | Identifiziert die Lösung mit minimalen Fehlern, verwendet soliden Code und bietet eine klare, aber weniger detaillierte Erklärung der Ergebnisse. | Findet die passende Lösung mit einigen Ungenauigkeiten, der Code ist angemessen, aber Verbesserungen sind notwendig; die Erklärung ist grundlegend. | Teilweise korrekte Lösung mit erheblichen Fehlern oder Auslassungen im Code und in der Analyse; die Erklärung ist unzureichend und oberflächlich. | Liefert keine oder eine völlig falsche Antwort, der Code ist unstrukturiert und schwer zu verstehen; es fehlt an einer sinnvollen Erklärung. |
| Aufgabe 2 – Tarifdatenvolumen | 40 % | Korrekt identifizierte Lösung mit effizientem, gut kommentiertem Code, passender Visualisierung und einer tiefgehenden Analyse. | Identifiziert die Lösung mit minimalen Fehlern, verwendet soliden Code, zeigt eine geeignete Visualisierung und bietet eine klare, aber weniger detaillierte Erklärung der Ergebnisse. | Findet die passende Lösung mit einigen Ungenauigkeiten; der Code ist angemessen, die Visualisierung brauchbar, aber Verbesserungen sind notwendig; die Erklärung ist grundlegend. | Teilweise korrekte Lösung mit erheblichen Fehlern oder Auslassungen im Code, in der Visualisierung oder in der Analyse; die Erklärung ist unzureichend und oberflächlich. | Liefert keine oder eine völlig falsche Antwort; Code und Visualisierung sind unstrukturiert oder fehlen; es fehlt an einer sinnvollen Erklärung. |
| Aufgabe 3 – Gerätevergleich | 40 % | Korrekt identifizierte Lösung mit effizientem, gut kommentiertem Code, passender Visualisierung und einer tiefgehenden Analyse. | Identifiziert die Lösung mit minimalen Fehlern, verwendet soliden Code, zeigt eine geeignete Visualisierung und bietet eine klare, aber weniger detaillierte Erklärung der Ergebnisse. | Findet die passende Lösung mit einigen Ungenauigkeiten; der Code ist angemessen, die Visualisierung brauchbar, aber Verbesserungen sind notwendig; die Erklärung ist grundlegend. | Teilweise korrekte Lösung mit erheblichen Fehlern oder Auslassungen im Code, in der Visualisierung oder in der Analyse; die Erklärung ist unzureichend und oberflächlich. | Liefert keine oder eine völlig falsche Antwort; Code und Visualisierung sind unstrukturiert oder fehlen; es fehlt an einer sinnvollen Erklärung. |
Hausarbeit 2
Data Wrangling in R
Aufgaben (10 Punkte)
In dieser zweiten Hausaufgabe vertiefen Sie den Umgang mit Daten in R anhand der Mobilfunkdatenbank mobilfhunk. Eine detaillierte Beschreibung der Datenbank finden Sie hier.
Im Mittelpunkt dieser Hausarbeit stehen typische Schritte des Data Wrangling:
- Daten filtern und auswählen
- neue Kennzahlen berechnen
- Daten gruppieren und aggregieren
- Tabellen über Schlüsselvariablen verknüpfen
- Ergebnisse strukturiert interpretieren
Nutzen Sie für diese Hausarbeit insbesondere die in der Vorlesung behandelten Werkzeuge dplyr und dbplyr. Für die beiden verpflichtenden Visualisierungen können Sie z. B. ggplot2 verwenden.
Arbeiten Sie möglichst datenbank-nah, also mit Lazy Tables und Pipelines direkt auf der Datenbank. Verwenden Sie collect() nur dann, wenn Sie bewusst kleine Ergebnistabellen lokal weiterverarbeiten, ausgeben oder visualisieren möchten.
Falls Sie keinen Zugang zur Datenbank haben, können Sie alternativ mit den per Teams verteilten .rds-Dateien arbeiten. Nutzen Sie in diesem Fall die alternative Vorlage Abgabe_Hausaufgabe2_rds_ab123456.qmd.
1. Aufgabe – Heavy User (2 Punkte)
Fragestellung. Wer sind die größten Heavy User für mobile Daten?
- Erstellen Sie ein Ranking der Top-20 Abonnements (
subscription_id) nach Gesamt-Datenverbrauch (mb_used, Summe über alle Beobachtungen). - Untersuchen Sie anschließend, wie sich dieses Ranking verändert, wenn Sie nur aktive Verträge berücksichtigen (
subscriptions.status == "active"). - Geben Sie zu den Top-Einträgen zusätzlich den Tarifnamen und die monatliche Grundgebühr aus.
Hinweis: Für diese Aufgabe benötigen Sie insbesondere data_usage, subscriptions und tariffs.
2. Aufgabe – Tarifdatenvolumen und tatsächliche Nutzung (4 Punkte)
Fragestellung. Wie gut passt das im Tarif enthaltene Datenvolumen zur tatsächlichen Datennutzung?
- Berechnen Sie zunächst je Abo die durchschnittliche Datennutzung (
mb_used). - Aggregieren Sie diese Werte anschließend je Tarif, sodass Sie pro Tarif die durchschnittliche Datennutzung pro Abo erhalten.
- Vergleichen Sie diese Nutzung mit dem im Tarif enthaltenen Datenvolumen (
tariffs$data_mb). - Berechnen Sie eine Auslastungsquote, z. B.
avg_mb_used / data_mb. - Schätzen Sie zusätzlich den Zusammenhang zwischen monatlicher Grundgebühr (
monthly_fee) und durchschnittlicher Datennutzung. - Erstellen Sie zusätzlich eine geeignete Visualisierung, die den Zusammenhang zwischen
monthly_feeundavg_mb_usedje Tarif zeigt.
Hinweis: Für diese Aufgabe reichen subscriptions, tariffs und data_usage aus. Eine saubere Lösung trennt sinnvoll zwischen einer Aggregation auf subscription_id-Ebene und einer anschließenden Aggregation auf Tarifebene.
3. Aufgabe – Geräte und Datennutzung im Vergleich (4 Punkte)
Fragestellung. Unterscheidet sich die Datennutzung nach Betriebssystem oder Gerätekategorie?
- Verwenden Sie nur aktuelle Gerätezuordnungen, also Einträge in
device_assignments, bei denenassigned_toden WertNAhat. - Verknüpfen Sie diese aktuellen Gerätezuordnungen mit
devicesunddata_usage. - Vergleichen Sie den durchschnittlichen Datenverbrauch pro Abo entweder nach Betriebssystem (
devices.os) oder nach Gerätekategorie (devices.device_category). - Stellen Sie dieses Ergebnis in einer geeigneten Visualisierung dar.
- Arbeiten Sie die wichtigsten Unterschiede kurz heraus.
- Optional: Ergänzen Sie den Vergleich um die jeweils andere Geräteeigenschaft oder um
customers.city_type.
Hinweis: In dieser Fassung genügt es, mit den aktuellen Gerätezuordnungen zu arbeiten. Ein zeitabhängiger Join über Intervalle ist nicht erforderlich.
Abgabe
Abgabe des Codes inkl. kurzer Erläuterungen und Interpretationen als Quarto-Skript (.qmd) und gerendertes HTML über Teams Assignment bis Montag, 20.04.2026.
Bitte nutzen Sie für die Abgabe je nach Arbeitsumgebung eine der folgenden Vorlagen und ersetzen Sie im Dateinamen ab123456 durch Ihre FH-Kennung:
- Datenbank-Version:
Abgabe_Hausaufgabe2_ab123456.qmd - Lokale-RDS-Version:
Abgabe_Hausaufgabe2_rds_ab123456.qmd
Bitte achten Sie dabei besonders auf:
- saubere, gut lesbare Pipelines
- sinnvolle Zwischenschritte und sprechende Spaltennamen
- nachvollziehbare Joins und Gruppierungen
- kurze, präzise Interpretation der Ergebnisse
- sinnvolle und gut lesbare Visualisierungen in Aufgabe 2 und 3
Bewertungskriterien
