5.11 Miniprojekt

Die Daten für dieses Miniprojekt findest du hier

Du und deine Freundin arbeiten im gleichen Unternehmen. Ihr unterhaltet euch zu zweit über die Gehälter, die die Firma an die Mitarbeiter ausgibt. Deine Freundin ist überzeugt, dass das Gehalt der Mitarbeiter im Schnitt bei 4000 Euro liegt. Du glaubst deiner Freundin nicht, da du die Gehälter von ein paar Kollegen kennst und weißt, dass diese mehr verdienen. Ihr geht eine Wette ein. Wenn du recht hast, dass die Mitarbeiter mehr verdienen, bekommst du ein Essen zu zweit geschenkt, wenn deine Freundin recht hast, zahlst du ihr das Essen. Um die Fragen zu prüfen, fragt ich willkürlich in der Firma 15 Personen nach ihrem Gehalt.

Der Datensatz ist in der Variable miniprojekt_hr_sample.csv gespeichert. Zunächst lädst du den Datensatz in R:

Achte darauf, dass du immer zuerst die Pakete laden musst. Die Pakete (hier tidyverse) musst du nur einmal am Anfang deines Skriptes laden. Danach kannst du die Funktionen der Pakete verwenden.

Immer, wenn du einen Datensatz erhältst, ist es ratsam, diesen mit glimpse anzusehen:

## Observations: 15
## Variables: 17
## $ id                         <dbl> 917, 774, 1428, 974, 247, 1448, 829, …
## $ age                        <dbl> 46, 36, 40, 35, 33, 36, 18, 26, 29, 4…
## $ department                 <chr> "Sales", "Research & Development", "R…
## $ distance_from_home         <dbl> 4, 12, 1, 1, 5, 15, 8, 1, 10, 1, 19, …
## $ education                  <chr> "College", "Doctor", "Master", "Bache…
## $ employee_count             <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1…
## $ gender                     <chr> "Female", "Female", "Male", "Female",…
## $ job_role                   <chr> "Manager", "Manufacturing Director", …
## $ job_satisfaction           <chr> "Medium", "Very High", "Very High", "…
## $ marital_status             <chr> "Married", "Single", "Married", "Marr…
## $ monthly_income             <dbl> 18789, 8858, 2406, 5363, 2911, 5406, …
## $ num_companies_worked       <dbl> 2, 0, 8, 0, 1, 1, 1, 1, 9, 4, 8, 6, 3…
## $ performance_rating         <chr> "Excellent", "Excellent", "Excellent"…
## $ total_working_years        <dbl> 26, 15, 8, 10, 2, 15, 0, 6, 8, 8, 7, …
## $ work_life_balance          <chr> "Better", "Good", "Good", "Better", "…
## $ years_at_company           <dbl> 11, 14, 1, 9, 2, 15, 0, 5, 5, 2, 2, 2…
## $ years_since_last_promotion <dbl> 0, 7, 0, 0, 0, 11, 0, 1, 1, 2, 2, 2, …

Der Datensatz hat 15 Reihen und 17 Spalten. Dich interessiert vor allem das Gehalt der Probanden. Selektieren wir daher den Datensatz nach den Variablen monthly_income und id. Zusätzlich liegt das Gehalt in Dollar vor. Wir müssen daher das Gehalt in Euro umrechnen. Ein Dollar entspricht 0.91 Euro. Wir müssen daher das Gehalt mit 0.91 multiplizieren. Anschließend speichern wir den Datensatz in einer neuen Variablen mit dem Namen hr_sample_selected:

## # A tibble: 15 x 2
##       id monthly_income
##    <dbl>          <dbl>
##  1   917         17098.
##  2   774          8061.
##  3  1428          2189.
##  4   974          4880.
##  5   247          2649.
##  6  1448          4919.
##  7   829          1733.
##  8   782          3599.
##  9  1173          5341.
## 10  1201          2907.
## 11  1336          3551.
## 12   631          4345.
## 13   674          2547.
## 14    71          4980.
## 15   293          2538.

Ein Blick auf den Mittelwert der Variable monthly_income zeigt uns bereits, dass die Mitarbeiter mehr verdienen als deine Freundin geschätzt hat:

## [1] 4755.903

Nun, da wir den Mittelwert der Stichprobe kennen, können wir die Hypothesen in zwei statistische Modelle überführen. Wir wissen zunächst, dass deine Freundin einen Wert schätzt bzw. vorgibt. Es handelt sich daher nicht um einen Parameter und wir bezeichnen diesen Wert als \(B_0\). Deine Hypothese beruht auf dem Mittelwert der Stichprobe. Diesen können wir als \(b_0\) in das Modell integrieren:

\[ \begin{aligned} MODEL_A &= \beta_0 + \epsilon_i \\ MODEL_C &= B_0 + \epsilon_i \end{aligned} \]

Die Hypothese deiner Freundin besagt, dass das Gehalt der Mitarbeiter im Schnitt 4000 Euro ist. Der Mittelwert der Verteilung ist \(4755.903\). Die Modelle lauten daher:

\[ \begin{aligned} MODEL_A &= 4755.903 + \epsilon_i \\ MODEL_C &= 4000 + \epsilon_i \end{aligned} \]

Bevor wir den F-Wert für diese Modelle berechnen, schauen wir uns die Verteilung der Variable als Histogram an:

Eine Person in der Stichprobe verdient sehr viel Geld. Die restlichen Mitarbeiter verdienen in etwa zwischen 3000 und 8000 Euro.

Um unseren F-Wert zu berechnn müssen wir nun die Quadratsummen berechnen. Als Erinnerung, die Quadratsummen geben die Fehler in unseren Modellen an. Wir berechnen sowohl die Fehler des kompakten (\(SSE_C\)) und des erweiterten Modells (\(SSE_A\)). Zudem berechnen wir den Anteil der Fehler, der durch die zusätzlichen Parameter im erweiterten Modell reduziert wird (\(SSR\)). Diese Quadratsummen geben uns später die Möglichkeit zu berechnen, wie viel Fehler durch das erweiterte Modell reduziert wurden (\(PRE\)) und wie gut unser zusätzlicher Parameter in der Lage ist, die Fehler im Vergleich zu willkürlichen Parametern zu reduzieren (\(F\)).

## Observations: 15
## Variables: 6
## $ id              <dbl> 917, 774, 1428, 974, 247, 1448, 829, 782, 1173, …
## $ monthly_income  <dbl> 17097.99, 8060.78, 2189.46, 4880.33, 2649.01, 49…
## $ compact_model   <dbl> 4000, 4000, 4000, 4000, 4000, 4000, 4000, 4000, …
## $ augmented_model <dbl> 4755.903, 4755.903, 4755.903, 4755.903, 4755.903…
## $ res_compact     <dbl> 171557342.0, 16489934.2, 3278055.1, 774980.9, 18…
## $ res_augmented   <dbl> 152327111.52, 10922211.99, 6586629.67, 15482.08,…

Wir haben im ersten Schritt die Fehler (\(ERROR = DATA - MODEL\)) für jede einzelne Person berechnet. Im nächsten Schritt können wir diese Fehler summieren (durch die Klammer um die Befehle können wir den Output direkt ausgeben lassen. Versuche einmal x <- 4 bzw. (x <- 4) in die Konsole einzugeben):

## [1] 208594582
## [1] 200023750
## [1] 8570833
## [1] 0.04108847

Du siehst, dass die Fehler des kompakten Modells durch das erweiterte Modell um 8570833 Quadratsummen reduziert wird. Die Höhe dieser Quadratsumme ist relativ unerheblich, da wir diese Werte um die Anzahl der Freiheitsgrade relativieren müssen. An dieser Stelle ist es ratsam, uns nochmal die Tabelle von vorin, allerdings mit den aktuellen Daten, zu vergegenwertigen:

Source SSE df MSE F PRE
Reduction \(8570833\) \(1\) \(MSR = \frac{SSR}{PA - PC}\) \(\frac{MSR}{MSE}\) \(0.04\)
Error \(200023750\) \(14\) \(MSE = \frac{SSE_A}{n - PA}\)
Total Error \(208594582\) \(15\)

Die Freiheitsgrade (\(df\)) besagen, wie viele Parameter entweder noch in die beiden Modelle hinzugefügt werden können bzw. wie viel mehr Parameter das erweiterte Modell mehr hat als das kompakte Modell. In diesem Fall hat das erweiterte Modell einen Parameter mehr als das kompakte Modell. Da das kompakte Modell keine Parameter hat und die Stichprobe 15 Personen umfasst, können wir noch \(n - PC = 15 - 0\) Parameter in das kompakte Modell hinzufügen. Beim erweiterten Modell können wir nur \(n - PA = 15 - 1 = 14\) Parameter hinzufügen, da bereits ein Parameter besetzt ist (\(b_0\)).

Anhand von \(PRE\) können wir bereits erkennen, dass das erweiterte Modell nur 4% der Fehler im kompakten Modell reduziert. Es ist daher nicht besonders gut darin, die abhängige Variable besser hervorzusagen. Im letzten Schritt können wir den F-Wert berechnen:

Source SSE df MSE F PRE
Reduction \(8570833\) \(1\) \(8570833 / 1 = 8570833\) \(8570833 / 14287411 = 0.60\) \(0.04\)
Error \(200023750\) \(14\) \(200023750 / 14 = 14287411\)
Total Error \(208594582\) \(15\)

Wir erhalten einen F-Wert von \(0.60\). Der zusätzliche Parameter im erweiterten Modell ist daher halb so schlecht wie irgendein weiterer willkürlicher Parameter. Dein Modell ist daher gar nicht viel besser als das Modell deiner Freundin. Es scheint eher so als ob dein Parameter keinen Beitrag dazu leistet, die abhängige Variable besser aufzuklären als die Schätzung deiner Freundin. Ebenso spricht \(PRE\) dafür, dass dein erweitertes Model kaum Fehler des kompakten Modells reduziert. Bevor wir allerdings zu weit greifen, müssen wir das nächste Modul abwarten, um zu entscheiden, ob du deine Hypothese wirklich verwerfen solltest.