scipy.stats.

ttest_ind_from_stats#

scipy.stats.ttest_ind_from_stats(mean1, std1, nobs1, mean2, std2, nobs2, equal_var=True, alternative='two-sided')[Quelle]#

T-Test für Mittelwerte zweier unabhängiger Stichproben aus deskriptiven Statistiken.

Dies ist ein Test für die Nullhypothese, dass zwei unabhängige Stichproben identische Durchschnittswerte (Erwartungswerte) haben.

Parameter:
mean1array_like

Der/die Mittelwert(e) der Stichprobe 1.

std1array_like

Die korrigierte Stichprobenstandardabweichung von Stichprobe 1 (d.h. ddof=1).

nobs1array_like

Die Anzahl der Beobachtungen von Stichprobe 1.

mean2array_like

Der/die Mittelwert(e) der Stichprobe 2.

std2array_like

Die korrigierte Stichprobenstandardabweichung von Stichprobe 2 (d.h. ddof=1).

nobs2array_like

Die Anzahl der Beobachtungen von Stichprobe 2.

equal_varbool, optional

Wenn True (Standard), wird ein Standard-unabhängiger 2-Stichproben-Test durchgeführt, der gleiche Populationsvarianzen annimmt [1]. Wenn False, wird der t-Test nach Welch durchgeführt, der keine gleichen Populationsvarianzen annimmt [2].

alternative{‘zweiseitig’, ‘kleiner’, ‘größer’}, optional

Definiert die alternative Hypothese. Die folgenden Optionen sind verfügbar (Standard ist ‚two-sided‘)

  • ‘two-sided’: die Mittelwerte der Verteilungen sind ungleich.

  • ‘less’: der Mittelwert der ersten Verteilung ist kleiner als der Mittelwert der zweiten Verteilung.

  • ‘greater’: der Mittelwert der ersten Verteilung ist größer als der Mittelwert der zweiten Verteilung.

Hinzugefügt in Version 1.6.0.

Rückgabe:
statisticfloat oder array

Die berechneten t-Statistiken.

pvaluefloat oder array

Der zweiseitige p-Wert.

Hinweise

Die Statistik wird als (mean1 - mean2)/se berechnet, wobei se der Standardfehler ist. Daher wird die Statistik positiv sein, wenn mean1 größer als mean2 ist, und negativ, wenn mean1 kleiner als mean2 ist.

Diese Methode prüft nicht, ob einige der Elemente von std1 oder std2 negativ sind. Wenn bei einem Aufruf dieser Methode negative Elemente der Parameter std1 oder std2 vorhanden sind, gibt die Methode dasselbe Ergebnis zurück, als wären stattdessen numpy.abs(std1) und numpy.abs(std2) übergeben worden; es werden keine Ausnahmen oder Warnungen ausgegeben.

ttest_ind_from_stats unterstützt neben NumPy experimentell auch Backends, die mit dem Python Array API Standard kompatibel sind. Bitte erwägen Sie, diese Funktionen zu testen, indem Sie die Umgebungsvariable SCIPY_ARRAY_API=1 setzen und CuPy-, PyTorch-, JAX- oder Dask-Arrays als Array-Argumente bereitstellen. Die folgenden Kombinationen von Backend und Gerät (oder anderer Fähigkeit) werden unterstützt.

Bibliothek

CPU

GPU

NumPy

n/a

CuPy

n/a

PyTorch

JAX

Dask

n/a

Siehe Unterstützung für den Array API Standard für weitere Informationen.

Referenzen

Beispiele

Angenommen, wir haben die zusammenfassenden Daten für zwei Stichproben, wie folgt (wobei die Stichprobenvarianz die korrigierte Stichprobenvarianz ist)

                 Sample   Sample
           Size   Mean   Variance
Sample 1    13    15.0     87.5
Sample 2    11    12.0     39.0

Wenden Sie den t-Test auf diese Daten an (unter der Annahme, dass die Populationsvarianzen gleich sind)

>>> import numpy as np
>>> from scipy.stats import ttest_ind_from_stats
>>> ttest_ind_from_stats(mean1=15.0, std1=np.sqrt(87.5), nobs1=13,
...                      mean2=12.0, std2=np.sqrt(39.0), nobs2=11)
Ttest_indResult(statistic=0.9051358093310269, pvalue=0.3751996797581487)

Zum Vergleich sind hier die Daten, aus denen diese zusammenfassenden Statistiken stammen. Mit diesen Daten können wir das gleiche Ergebnis mit scipy.stats.ttest_ind berechnen

>>> a = np.array([1, 3, 4, 6, 11, 13, 15, 19, 22, 24, 25, 26, 26])
>>> b = np.array([2, 4, 6, 9, 11, 13, 14, 15, 18, 19, 21])
>>> from scipy.stats import ttest_ind
>>> ttest_ind(a, b)
TtestResult(statistic=0.905135809331027,
            pvalue=0.3751996797581486,
            df=22.0)

Angenommen, wir haben stattdessen binäre Daten und möchten einen t-Test anwenden, um den Anteil von 1en in zwei unabhängigen Gruppen zu vergleichen

                  Number of    Sample     Sample
            Size    ones        Mean     Variance
Sample 1    150      30         0.2        0.161073
Sample 2    200      45         0.225      0.175251

Der Stichprobenmittelwert \(\hat{p}\) ist der Anteil von Einsen in der Stichprobe, und die Varianz für eine binäre Beobachtung wird durch \(\hat{p}(1-\hat{p})\) geschätzt.

>>> ttest_ind_from_stats(mean1=0.2, std1=np.sqrt(0.161073), nobs1=150,
...                      mean2=0.225, std2=np.sqrt(0.175251), nobs2=200)
Ttest_indResult(statistic=-0.5627187905196761, pvalue=0.5739887114209541)

Zum Vergleich könnten wir die t-Statistik und den p-Wert mit Arrays von 0en und 1en und scipy.stat.ttest_ind berechnen, wie oben.

>>> group1 = np.array([1]*30 + [0]*(150-30))
>>> group2 = np.array([1]*45 + [0]*(200-45))
>>> ttest_ind(group1, group2)
TtestResult(statistic=-0.5627179589855622,
            pvalue=0.573989277115258,
            df=348.0)