# Lösungen Statistical Test Methods¶

## Umfrage für nächste Aufgabe¶

https://forms.gle/JVKq6FrSUE8kN7Jq6

In [2]:

    import qrcode
    qrcode.make("https://forms.gle/JVKq6FrSUE8kN7Jq6")

Out[2]:

### 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:

1. Stelle die Nullhypothese prüfbar auf.
2. Importiere das Datenset und filtere angemessen (Kommentare helfen mir später bei der Korrektur diesen Schritt nachzuvollziehen)
3. Berechne den von der Nullhypothese geforderten Populations Parameter $\mu$.
4. Bestimme das Signifikanzlevel $\alpha$ unter der $H_0$ verworfen wird.
5. Bestimme mittels t-test den p-wert zur Nullhypothese.
6. Stelle dein Ergebnis dar.

## Nullhypothese¶

$$H_0 = \varnothing\text{Nominallohn Männer} = \varnothing\text{Nominallohn Frauen}$$

In [4]:

    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"]

In [5]:

    mu = male["Nominallohn"].mean()
    alpha = 0.05

In [6]:

    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:

1. Lies das Datenset ein und schaue dir die vorhandenen Werte an. Achte auf `Nan` Werte.
2. Filter aus der Spalte "Geschlecht" die benötigten Werte.
3. Führe einen Korrelationstest zwischen den Geschlechtern & dem Bruttoverdienst durch.
4. Berechne den Bruttoeinkommensunterschied.
5. Finde eine geeignete Darstellung für dein Ergebnis.

## Nullhypothese¶

$$H_0 = \varnothing\text{Bruttoeinkommen Männer} - \varnothing\text{Bruttoeinkommen Frauen} = 0$$

In [15]:

    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
    )

In [16]:

    # 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)

In [18]:

    sb.heatmap(pearsoncorr,
                xticklabels=pearsoncorr.columns,
                yticklabels=pearsoncorr.columns,
                cmap='RdBu_r',
                annot=True,
                linewidth=0.5)
    plt.show()

In [19]:

    df_women = df_cleaned[df_cleaned['Geschlecht'] == 'weiblich']
    df_men = df_cleaned[df_cleaned['Geschlecht'] == 'männlich']

In [24]:

    diff = abs(df_men['Verdienst'].mean() - df_women['Verdienst'].mean())
    print(f"Differenz Bruttoeinkommen {diff:.2f}€")

    Differenz Bruttoeinkommen 313.25€