[PYTHON] Utilisez le test t de Welch (devrait) avec ou sans dispersion égale

Aperçu du test de Welch

Hier a expliqué la procédure pour le test de dispersion égale → test de moyenne égale pour les tests lorsque les variances ne sont pas égales.

Cela peut être organisé comme suit.

Hypothèse nulle

σ_a^2 = σ_b^2

Statistiques et distribution

T = U_a^2 / U_b^2 \ge 1 \\
F(Na - 1, Nb -1)

Notez que la zone de rejet dépend de la façon dont les variances sont comparées dans l'hypothèse alternative (égale ou supérieure / unilatérale ou bilatérale).

D'ailleurs, aujourd'hui, je vais parler comme si je nie soudainement le contenu de Hier.

Dans les manuels de statistique classique, lorsque les variances de population σ_a ^ 2, σ_b ^ 2 sont inconnues et que σ_a ^ 2 et σ_b ^ 2 sont déterminées comme inégales dans deux populations normales, alors [test t de Welch (Welch) t test)](http://ja.wikipedia.org/wiki/%E3%82%A6%E3%82%A7%E3%83%AB%E3%83%81%E3%81%AEt%E6% A4% 9C% E5% AE% 9A) est utilisé.

Le test t est un test qui suppose que les variances sont égales, mais la différence majeure est que le test de Welch ne suppose pas nécessairement que les variances sont égales.

Ces dernières années, les méthodes qui ne supposent pas une dispersion égale sont devenues courantes, et plutôt il y a une atmosphère dans laquelle le test t de Welch peut être le test t par défaut. 2013/12 / welchtanovastatwing.html).

Si vous lisez les articles suivants et chaque lien, vous pourrez saisir les problèmes dans le déroulement du test d'équivalence (test F) → test t, qui est courant dans les manuels de statistiques.

Problèmes entre le test d'égalité de variance et le test t, l'analyse de variance (ANOVA) et le test de Welch http://note.chiebukuro.yahoo.co.jp/detail/n13859

À propos du problème de multiplicité qui se produit lors de la comparaison des valeurs moyennes entre deux groupes indépendants http://www2.vmas.kitasato-u.ac.jp/lecture0/statistics/stat_info03.pdf

Certains articles critiquent le test en deux étapes et recommandent de s'unifier avec des tests qui ne supposent pas une dispersion égale. http://beheco.oxfordjournals.org/content/17/4/688.full

Pour une compréhension plus approfondie, voir aussi la littérature de test de Welch.

Implémentation dans SciPy

Alors, à quoi ressemble notre SciPy?

Si vous lisez la référence dans scipy.stats.ttest_ind, il est évident que le paramètre equal_var est False. En spécifiant, la dispersion égale n'est plus supposée, c'est-à-dire le test t de Welch.

Le degré de liberté m de cette distribution t est le suivant.

m = \frac {(\frac {S_a^2} {n_a - 1} + \frac {S_b^2} {n_b - 1})^2} { \frac {({S_a^2})^2} {{({n_a - 1})}^3} + \frac {({S_b^2})^2} {{({n_b - 1})}^3} }

Le reste est le même que la référence SciPy, mais lorsque n1! = N2, le test t et le test Welch sont les suivants.

from scipy import stats
import numpy as np
np.random.seed(12345678)

rvs1 = stats.norm.rvs(loc=5,scale=10,size=500)
rvs2 = stats.norm.rvs(loc=5, scale=20, size=100)

#Test t de l'étudiant
stats.ttest_ind(rvs1, rvs2)
# => (0.24107173714677796, 0.8095821484893867)

#Test t de Welch
stats.ttest_ind(rvs1, rvs2, equal_var = False)
# => (0.15778525230427601, 0.87491760438549948)

De plus, comme mentionné dans l'article de blog lié précédemment, le test t de Welch est la valeur par défaut, même dans les tests T du logiciel statistique Statwing.

Sur la base de ce qui précède, nous vous recommandons d'utiliser le test t de Welch, qu'il soit distribué uniformément ou non.

Recommended Posts

Utilisez le test t de Welch (devrait) avec ou sans dispersion égale
[Petite histoire] Synchronisez avec Python sans multi-threading (utilisation limitée)
J'ai brièvement résumé ce que vous devez garder à l'esprit lorsque vous apprenez avec / sans professeur