Büyük numunelerle t-testi nasıl yapılır?


11

Biri N = 38,704 (gözlem sayısı) ve diğeri N = 1,313,662 olan iki popülasyonum var. Bu veri kümelerinin tümü ~ 25 değişkendir. Her veri kümesindeki her birinin ortalamasını aldım ve formülünü kullanarak test istatistiklerini hesapladım

t = ortalama fark / std hatası

Sorun özgürlük derecesidir. Df = N1 + N2-2 formülüyle tablonun üstesinden gelebileceğimizden daha fazla özgürlüğe sahip olacağız. Bu konuda herhangi bir öneriniz var mı? Burada t istatistiği nasıl kontrol edilir. T-testinin numuneleri işlemek için kullanıldığını biliyorum, ancak bunu büyük numunelere uygularsak.

Yanıtlar:


21

chl, aynı veri seti ile aynı anda 25 test yaparken çoklu karşılaştırma tuzağından bahsetti. Bunu yapmanın kolay bir yolu, p değeri eşiğini test sayısına bölerek ayarlamaktır (bu durumda 25). Daha kesin formül: Düzeltilmiş p değeri = 1 - (1 - p değeri) ^ (1 / n). Bununla birlikte, iki farklı formül hemen hemen aynı ayarlanmış p değerini elde eder.

Hipotez testi alıştırmanızla ilgili başka bir önemli sorun daha var. Kesinlikle Tip I hatası (yanlış pozitif) ile karşılaşacaksınız, böylece% 99.9999 seviyesinde son derece önemli bazı gerçekten önemsiz farklılıkları ortaya çıkaracaksınız. Bunun nedeni, bu kadar büyük bir boyutla (n = 1,313,662) bir örnekle uğraştığınızda, 0'a çok yakın standart bir hata alırsınız. Böylece, standart sapmayı 1,146'ya bölebilirsiniz. Kısacası, tamamen önemsiz olabilecek küçük farklılıkları yakalayacaksınız.

Bu hipotez testi çerçevesinden uzaklaşmanızı ve bunun yerine bir Etki Boyutu türü analizi yapmanızı öneririm. Bu çerçevede istatistiksel mesafe ölçüsü standart sapmadır. Standart hatanın aksine, standart sapma numunenin boyutuna göre yapay olarak küçültülmez. Ve bu yaklaşım, veri kümeleriniz arasındaki önemli farkları daha iyi anlayacaktır. Etki Büyüklüğü de, ortalama farkın güven aralığına çok daha fazla odaklanmıştır ve bu, hipotez testinin genellikle anlamlı olmayan istatistiksel anlamlılığa odaklanmasından çok daha bilgilendiricidir. Umarım yardımcı olur.


5
Anahtar fikirleri ortaya çıkarmak için +1: (1) veri kümeleri bu kadar büyük olduğunda araçların farklı olacağını garanti edebiliriz ve (2) diğer bazı analizlerin daha uygun ve kullanışlı olması muhtemeldir. Ancak analizin amacını bilmediğimiz için spesifik önerilerde bulunmamız konusunda dikkatli olmalıyız.
whuber

Teşekkürler Gaetan .. Seni ... Sanırım bundan uzaklaştığım şey, benim gibi büyük örnekleriniz olduğunda standart sapmanın daha iyi bir ölçü olmasıdır .. bir şey kaçırırsam lütfen bana bildirin.
ayush biyani

1
ayush ... Haklısın. Temelde bu. Bunun nedeni, standart hatanızın çok küçük hale gelmesidir (büyük örneklem büyüklüğü nedeniyle). Bu da test ve kontrol gruplarınız arasındaki istatistiksel mesafeyi abartıyor. Ve sonuçta bir Tip I Hata ile karşılaşmanıza neden olur (önemsiz olmak için çok küçük bir farkı ortaya çıkarın). Bu, büyük örneklerle yapılan hipotez testlerinde yaygın bir sorundur.
Sympa

14

Öğrencinin t dağılımı, özgürlük dereceleri büyüdükçe standart normal dağılıma yaklaşır ve yaklaşır. 1313662 + 38704 - 2 = 1352364 serbestlik derecesinde, t dağılımı, aşağıdaki resimde görüldüğü gibi standart normal dağılımdan ayırt edilemez (belki de çok aşırı kuyruklarda değilseniz ve ilgilenmediğiniz sürece) kesinlikle küçük p -değerlerini daha küçük olanlardan ayırt etmek ). Bu nedenle, t dağılımı için tablo yerine standart normal dağılım için tabloyu kullanabilirsiniz.

alternatif metin


Çocuklar, cevap için teşekkürler. Analiz edilecek verilerim var. Buna nasıl veri eklerim. Çok insan sormak için .. Beklenti için teşekkürler. Hızlı bir yanıt bekleniyor.
ayush biyani

4
Ha? Soruda t-istatistiğini zaten hesaplayacağınızı söylediniz ve chl örnek R kodu sağladı. Daha fazla İstediğiniz ne? Bu arada, hızlı bir cevap beklemek veya istemek için herhangi bir hakkınız olduğundan emin değilim; bunun için ödeme almıyoruz.
onestop

1
@ayush Önceki sorunuz için, sorunuza tam bir cevap veriyorum (IMHO) - o zaman burada yorum seçeneği olmayan başka bir soru sorduğunuzu düşündüğümde durmadan önce yorumlarınızı takip ettim. . Dolayısıyla, sorunuzun teorik değerlendirme veya uygulamalı veri analizi (ikinci durumda bize tekrarlanabilir bir örnek verin) ile ilgili olup olmadığını açıkça belirtmenizi veya sorularınızı ayırmanızı öneririm. BTW, yine de yararlı bulduğunuz cevapları kabul etme seçeneğiniz var (yine, orijinal sorunuzdan, takip eden yorumlardan değil).
chl

2
@ayush Ah, ve size verilen cevapları hiçbir zaman oylamadığınızı anlıyorum (şimdi yeterli temsilciniz olmasına rağmen).
chl

@ chl-- evet .. hatta ben bu benim hatam fark ve gelecek yazılarda bu kesin düzeltmek olacaktır .. Bunu işaret için teşekkürler .. bazı günler için beni düşünün naif bir amatör ..
Ayuş Biyani

10

dağılımı eğilimi (Gauss) dağıtım büyüktür (Aslında, , hemen hemen aynıdır, @onestop tarafından sağlanan resim). Sizin durumunuzda, çok büyük olduğunu söyleyebilirim , böylece bir testi kullanabilirsiniz . Numune boyutunun bir sonucu olarak, ÇOK küçük farklılıklar önemli olarak ilan edilecektir. Bu nedenle, bu testlerin (tam veri seti ile) gerçekten ilginç olup olmadığını kendinize sormaya değer.z n n > 30 n ztznn>30nz

Emin olmak için, veri kümeniz 25 değişken içerdiğinden 25 test mi yapıyorsunuz? Bu durumda, tip I hata oranını şişirmemek için muhtemelen birden fazla karşılaştırmayı düzeltmeniz gerekir (bu sitedeki ilgili iş parçacığına bakın).

BTW, R yazılımı, aradığınız p değerlerini verir, Tablolara güvenmenize gerek yoktur:

> x1 <- rnorm(n=38704)
> x2 <- rnorm(n=1313662, mean=.1)
> t.test(x1, x2, var.equal=TRUE)

    Two Sample t-test

data:  x1 and x2 
t = -17.9156, df = 1352364, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0 
95 percent confidence interval:
 -0.1024183 -0.0822190 
sample estimates:
  mean of x   mean of y 
0.007137404 0.099456039 

0

Yazdığım ve boyut efektini hesaplayabilen aşağıdaki python işlevini kullanabilirsiniz. Test burada basit

import numpy as np 
from scipy.stats import t

def Independent_tTest(x1, x2, std1, std2, n1, n2): 
    '''Independent t-test between two sample groups

    Note: 
        The test assumptions:
            H0: The two samples are not significantly different (from same population)
            H1: The two samples are siginficantly different (from two populations)
            - Accept the H1 if t-value > t-critical or p-value value < p-value critical
    Args: 
        x1(float): mean of the first sample group.
        x2(float): mean of the second sample group.
        std1(float): standard deviation of first sample group.
        std2(float): standard devation of second sample group.

    Return: 
        degree_of_freedome, t-statistics, p-value

    '''
    degree_of_freedom = n1 + n2  -2
    corrected_degree_of_freedom = (((std1**2/n1) + (std2**2/n2))**2)/(((std1**4)/((n1**2)*(n1-1)))+((std2**4)/((n2**2)*(n2-1))))

    poolvar = ((n1-1)*(std1**2)+ (n2-1)*(std2**2))/corrected_degree_of_freedom
    t_value = (x1 -x2)/np.sqrt(poolvar*((1/n1)+ (1/n2)))
    sig = 2 * (1-(t.cdf(abs(t_value), corrected_degree_of_freedom)))
    effect_size = np.sqrt((t_value**2)/(t_value**2+corrected_degree_of_freedom))
    return f"corrected degree of freedom {corrected_degree_of_freedom:0.4f} give a t-value = {t_value:0.4f}, with significant = {sig:0.4f} with effectsize ={effect_size:0.4f}"

1
Uygulama genellikle sorulardaki önemli içerikle karıştırılsa da, kod değil istatistik, makine öğrenimi vb. Hakkında bilgi sağlamak için bir site olmamız gerekir. Kod sağlamak da iyi olabilir, ancak bu dili koddan cevabı tanıyacak ve çıkaracak kadar iyi okuyan insanlar için lütfen metindeki önemli cevabınızı hazırlayın.
gung - Monica'yı eski durumuna getirin
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.