Lösungen Statistical Test Methods¶
+Umfrage für nächste Aufgabe¶
+import qrcode
+qrcode.make("https://forms.gle/JVKq6FrSUE8kN7Jq6")
+
Aufgabe T-Test¶
6 Punkte - Programmieren
+6 Punkte - Schriftteil
+Für diese Aufgabe ist extra ein Feld für den Schriftteil reserviert. Erkläre dort dein Vorgehen, die Nullhypothese, dein Ergebnis und wie der Nominallohn zu verstehen ist. Interpretiere dein Ergebnis und Stelle ein Fazit auf. Gebe auch alle verwendeten Quellen (samt link) korrekt an. +Jupyter unterstütz die Markdown Syntax ein Guide hierfür ist unter The Ultimate Markdown Guide zu finden.
+!!Wird der Schriftteil nicht oder nur unzureichend ausgefüllt führt dies zu einer Bewertung von 0 Punkten für die gesamte Aufgabe!!
+Dem Notebook mit beigelegt ist das Datenset nominallohn_deutschland_2023-2024_nach_geschlecht.csv
(Quelle: DESTASIS Nominallohnindex: Deutschland, Monate, Geschlecht).
Analysiere das Datenset, gehen dabei von der Nullhypothese aus das es keinen Signifikanten Unterschied in den Nominallöhnen zwischen den Geschlechtern gibt.
+Gehe dabei wie folgt vor:
+-
+
- Stelle die Nullhypothese prüfbar auf. +
- Importiere das Datenset und filtere angemessen (Kommentare helfen mir später bei der Korrektur diesen Schritt nachzuvollziehen) +
- Berechne den von der Nullhypothese geforderten Populations Parameter $\mu$. +
- Bestimme das Signifikanzlevel $\alpha$ unter der $H_0$ verworfen wird. +
- Bestimme mittels t-test den p-wert zur Nullhypothese. +
- Stelle dein Ergebnis dar. +
Nullhypothese¶
$$H_0 = \varnothing\text{Nominallohn Männer} = \varnothing\text{Nominallohn Frauen}$$
+dataset: pd.DataFrame = pd.read_csv('nominallohn_deutschland_2023-2024_nach_geschlecht.csv', delimiter=',')
+male = dataset.loc[dataset["Geschlecht"] == "männlich"]
+female = dataset.loc[dataset["Geschlecht"] == "weiblich"]
+
mu = male["Nominallohn"].mean()
+alpha = 0.05
+
t_stat, p_value = stats.ttest_1samp(female["Nominallohn"], mu)
+
+if p_value < alpha:
+ print('''
+ Reject the null hypothesis;
+ there is a significant difference between the sample mean
+ and the hypothesized population mean.
+ '''
+ )
+else:
+ print('''
+ Fail to reject the null hypothesis;
+ there is no significant difference between the sample mean
+ and the hypothesized population mean.
+ '''
+ )
+
+print(f"P-Value: {p_value:.2}")
+
+ Fail to reject the null hypothesis; + there is no significant difference between the sample mean + and the hypothesized population mean. + +P-Value: 0.95 ++
Aufgabe¶
6 Punkte - Programmieren
+6 Punkte - Schriftteil
+Für diese Aufgabe ist extra ein Feld für den Schriftteil reserviert. Erkläre dort dein Vorgehen, die Nullhypothese, dein Ergebnis und wie der Bruttoverdienst zu verstehen ist. Interpretiere dein Ergebnis und Stelle ein Fazit auf. Gebe auch alle verwendeten Quellen (samt link) korrekt an. +Jupyter unterstütz die Markdown Syntax ein Guide hierfür ist unter The Ultimate Markdown Guide zu finden.
+!!Wird der Schriftteil nicht oder nur unzureichend ausgefüllt führt dies zu einer Bewertung von 0 Punkten für die gesamte Aufgabe!!
+Analysiere das Datenset bruttoverdiensterhebung_deutschland_april_22-23_nach_geschlecht.csv
(Quelle: Destatis)
Gehe dabei von der Hypothese aus das einen keinen Bruttoeinkommensunterschied der Geschlechter in Deutschland für den Zeitraum 2022-2023 gibt.
+Gehe dabei wie folgt vor:
+-
+
- Lies das Datenset ein und schaue dir die vorhandenen Werte an. Achte auf
Nan
Werte.
+ - Filter aus der Spalte "Geschlecht" die benötigten Werte. +
- Führe einen Korrelationstest zwischen den Geschlechtern & dem Bruttoverdienst durch. +
- Berechne den Bruttoeinkommensunterschied. +
- Finde eine geeignete Darstellung für dein Ergebnis. +
Nullhypothese¶
$$H_0 = \varnothing\text{Bruttoeinkommen Männer} - \varnothing\text{Bruttoeinkommen Frauen} = 0$$
+df: pd.DataFrame = pd.read_csv('bruttoverdiensterhebung_deutschland_april_22-23_nach_geschlecht.csv')
+df_cleaned: pd.DataFrame = df.dropna()
+df_cleaned = df_cleaned.drop(
+ df_cleaned[df_cleaned['Geschlecht'] == 'Insgesamt'].index
+)
+
# Pearson test
+f = lambda x: 1 if x=='männlich' else 0
+df_cleaned["Geschlecht numerisch"] = df_cleaned["Geschlecht"].apply(f)
+pearsoncorr = df_cleaned.corr(method='pearson', numeric_only=True)
+
sb.heatmap(pearsoncorr,
+ xticklabels=pearsoncorr.columns,
+ yticklabels=pearsoncorr.columns,
+ cmap='RdBu_r',
+ annot=True,
+ linewidth=0.5)
+plt.show()
+
df_women = df_cleaned[df_cleaned['Geschlecht'] == 'weiblich']
+df_men = df_cleaned[df_cleaned['Geschlecht'] == 'männlich']
+
diff = abs(df_men['Verdienst'].mean() - df_women['Verdienst'].mean())
+print(f"Differenz Bruttoeinkommen {diff:.2f}€")
+
Differenz Bruttoeinkommen 313.25€ ++