Yüksek eğri veriler üzerinde t testi


18

On binlerce tıbbi maliyet verisi gözlemine sahip bir veri setim var. Bu veriler sağda çok eğri ve çok sayıda sıfır var. İki grup insan için bu gibi görünüyor (bu durumda her biri> 3000 obs olan iki yaş grubu):

 Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
 0.0      0.0      0.0   4536.0    302.6 395300.0 
Min.  1st Qu.   Median     Mean  3rd Qu.     Max. 
 0.0      0.0      0.0   4964.0    423.8 721700.0 

Bu veriler üzerinde Welch'in t-testini gerçekleştirirsem bir sonuç elde ederim:

Welch Two Sample t-test

data:  x and y
t = -0.4777, df = 3366.488, p-value = 0.6329
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -2185.896  1329.358
sample estimates:
mean of x mean of y 
 4536.186  4964.455 

Bu veriler üzerinde bir t-testi kullanmanın doğru olmadığını biliyorum, çünkü bu çok normal değil. Ancak, araçların farkı için bir permütasyon testi kullanırsam, her zaman neredeyse aynı p değerini alırım (ve daha fazla yinelemeyle yaklaşır).

R'de perm paketi ve tam Monte Carlo ile permTS kullanımı

    Exact Permutation Test Estimated by Monte Carlo

data:  x and y
p-value = 0.6188
alternative hypothesis: true mean x - mean y is not equal to 0
sample estimates:
mean x - mean y 
      -428.2691 

p-value estimated from 500 Monte Carlo replications
99 percent confidence interval on p-value:
 0.5117552 0.7277040 

Permütasyon testi istatistiği neden t.test değerine bu kadar yakın çıkıyor? Verilerin günlüklerini alırsam, permütasyon testinden 0.28'lik bir t.test p değeri alırım. T-test değerlerinin burada elde ettiğimden daha fazla çöp olacağını düşündüm. Bu, bunun gibi diğer birçok veri seti için de geçerlidir ve t-testinin neden olmaması gerektiği gibi çalıştığını merak ediyorum.

Buradaki kaygım, bireysel maliyetlerin bulunmadığı, merkezi limit teoremi için iid gereksinimini ortadan kaldırıyor gibi görünen çok farklı maliyet dağılımlarına (kadınlara, erkeklere, kronik koşullara vb.) Sahip birçok alt grup var ya da endişelenmemeliyim bunun hakkında?


Verilerinizin hem minimum değerinin hem de medyanının sıfır olması nasıl olur?
Alecos Papadopoulos

Değerlerin yarısından fazlası sıfırdır, bu da insanların yarısının o yıl tıbbi bakım görmediğini gösterir.
Chris

Ve neden permütasyon testinin farklı olması gerektiğini düşünüyorsunuz? (her iki grup da benzer şekilde normal olmayan bir dağılıma
sahipse

İid'in iki ayrı varsayım olduğunu unutmayın. Birincisi 'bağımsız'. İkincisi 'aynı şekilde dağıtılır'. Gözlemlerin 'aynı şekilde dağılmadığını' öneriyor gibi görünüyorsunuz. Bu, şimdiye kadar verilen cevapları etkilememelidir, çünkü tüm gözlemlerin büyük bir dağıtım karışımından olduğunu varsayabiliriz. Ancak gözlemlerin bağımsız olmadığını düşünüyorsanız, bu çok farklı ve potansiyel olarak daha zor bir konudur.
zkurtz

Yanıtlar:


29

Ne t-testi ne de permütasyon testi, bu tür olağanüstü çarpık dağılımlar arasındaki ortalama farkını belirleme konusunda fazla güce sahip değildir. Böylece her ikisi de hiçbir anlamlılık göstermeyen anodyne p değerleri verir. Mesele anlaşmaya varmış gibi görünmüyor; hiçbir farkı tespit etmekte zorlandıkları için anlaşamıyorlar!


Bazı sezgiler için, bir veri kümesinde tek bir değerde değişiklik olursa ne olacağını düşünün . Örneğin, ikinci veri kümesinde maksimum 721.700 değerinin meydana gelmediğini varsayalım. Ortalama, yaklaşık 240 olan yaklaşık 721700/3000 düşecekti. Ancak ortalamadaki fark, iki kat daha büyük değil, sadece 4964-4536 = 438'dir. Bu, (kanıtlamamasına rağmen) , araçların herhangi bir karşılaştırmasının farkı anlamlı bulamayacağını göstermektedir.

Bununla birlikte, t-testinin geçerli olmadığını doğrulayabiliriz. Bunlarla aynı istatistiksel özelliklere sahip bazı veri kümeleri oluşturalım. Bunu yapmak için karışımlar oluşturdum.

  • 5/8
  • Kalan veriler lognormal dağılıma sahiptir.
  • Bu dağılımın parametreleri, gözlenen araçları ve üçüncü çeyrekleri çoğaltmak için düzenlenmiştir.

Bu simülasyonlarda, maksimum değerlerin rapor edilen maksimumdan da uzak olmadığı ortaya çıkıyor.

İlk veri kümesini 10.000 kez çoğaltalım ve ortalamasını izleyelim. (Bunu ikinci veri seti için yaptığımızda sonuçlar hemen hemen aynı olacaktır.) Bu araçların histogramı ortalamanın örnekleme dağılımını tahmin eder. T-testi bu dağılım yaklaşık Normal olduğunda geçerlidir; Normallikten sapma derecesi, Student t dağılımının ne ölçüde hata yapacağını gösterir. Yani, referans olarak, Normal dağılımın PDF'sini de bu sonuçlara uyacak şekilde (kırmızı) çizdim.

Histogram 1

Çok fazla ayrıntı göremiyoruz çünkü okkalı büyük aykırı değerler var. (Bu, bahsettiğim araçların bu duyarlılığının bir tezahürüdür.) Bunların 123'ü -% 1.23 - 10.000'in üzerinde. Ayrıntıları görebilmemiz için geri kalanlara odaklanalım ve bu aykırı değerler, orijinal veri kümesi için durum böyle olmayabilir, çünkü dağılımın varsayılan lognormalitesinden kaynaklanabilir.

Çubuk grafik 2

(3000/428)2=50


İşte Rbu rakamları üreten kod.

#
# Generate positive random values with a median of 0, given Q3,
# and given mean. Make a proportion 1-e of them true zeros.
#
rskew <- function(n, x.mean, x.q3, e=3/8) {
  beta <- qnorm(1 - (1/4)/e)
  gamma <- 2*(log(x.q3) - log(x.mean/e))
  sigma <- sqrt(beta^2 - gamma) + beta
  mu <- log(x.mean/e) - sigma^2/2
  m <- floor(n * e)
  c(exp(rnorm(m, mu, sigma)), rep(0, n-m))
}
#
# See how closely the summary statistics are reproduced.
# (The quartiles will be close; the maxima not too far off;
# the means may differ a lot, though.)
#
set.seed(23)
x <- rskew(3300, 4536, 302.6)
y <- rskew(3400, 4964, 423.8)
summary(x)
summary(y)
#
# Estimate the sampling distribution of the mean.
#
set.seed(17)
sim.x <- replicate(10^4, mean(rskew(3367, 4536, 302.6)))
hist(sim.x, freq=FALSE, ylim=c(0, dnorm(0, sd=sd(sim.x))))
curve(dnorm(x, mean(sim.x), sd(sim.x)), add=TRUE, col="Red")
hist(sim.x[sim.x < 10000], xlab="x", freq=FALSE)
curve(dnorm(x, mean(sim.x), sd(sim.x)), add=TRUE, col="Red")
#
# Can a t-test detect a difference with more data?
#
set.seed(23)
n.factor <- 50
z <- replicate(10^3, {
  x <- rskew(3300*n.factor, 4536, 302.6)
  y <- rskew(3400*n.factor, 4964, 423.8)
  t.test(x,y)$p.value
})
hist(z)
mean(z < .05) # The estimated power at a 5% significance level

1
T-testi yine de oldukça çarpık veri setinin bir örnek için olan (nedeniyle büyük veri miktarının) uygulanabilir, bkz stats.stackexchange.com/questions/110418/... . Bu iki vaka birlikte soruya kesilmiş ve kurutulmuş bir cevap olmadığını göstermektedir: t-testinin anlamlı ve doğru olup olmayacağına karar verirken hem verilerin dağılımını hem de veri miktarını göz önünde bulundurmalısınız.
whuber

3
Bu soruyu, n = 30 veya n = 300'ün sadece devam etmek ve örnek araçların normal olarak dağıtıldığını (vb.) Varsaymak için yeterli olduğunu düşünen insanlarla karşılaştığında tekrar bulabilmek umuduyla sevindim. İyi simüle edilmiş örneklerim var, ancak bunun gerçek verilerle ilgili bir sorun olduğunu göstermek güzel.
Glen_b

1
+1, ancak böyle bir durumda pratik tavsiyenizin ne olacağını merak ediyorum. Ortalama yerine başka bir istatistiğe dayalı bir permütasyon testi kullanılmaya çalışılmalı mı (belki biraz yüksek kantil)? Araçlarda standart testler yapmadan önce bazı dönüşümler uygulanmaya çalışılmalı mıdır? Yoksa iki örnek arasında anlamlı bir fark tespit etme umudundan vazgeçmeli mi?
amip diyor Reinstate Monica

@amoeba Endişe, farklılıkları anlamlarını test etmekse, permütasyon testinin yardımı olmayacaktır: Burada önemli bir fark bulamayacaksınız. Başka bir istatistiği test ederseniz, ortalamayı (özellikle maliyet verileriyle ilgili!) Test etmiyorsunuz, bu nedenle önerilip önerilemeyeceği hedeflere bağlıdır.
whuber

4

N büyük olduğunda (300 gibi, 3000'den bile daha az), t testi esas olarak z testiyle aynıdır. Yani, t-testi, merkezi sınır teoreminin bir uygulamasından başka bir şey değildir, bu da iki grubunuzun her biri için ORTANIN neredeyse normal olarak dağıldığını (iki aracın altında yatan gözlemler normal olmaktan çok uzak olsa bile) dağıtılmış!). Bu aynı zamanda tipik t-tablonuzun 1000'den büyük n değerlerini (örneğin, bu t-tablosu) göstermeye zahmet etmemesinin nedenidir . Bu nedenle, böyle iyi davrandığınız sonuçları gördüğünüze şaşırmadım.

Düzenleme: Ben çarpıklığın ekstremitesini ve önemini hafife almış gibi görünüyor. Yukarıdaki noktamın daha az aşırı koşullarda hak kazanmasına rağmen , whuber'ın soruya cevabı genel olarak çok daha iyi.


2
Çarpıklık aşırı olduğunda - alıntılanan istatistiklere göre - ortalama 300 veya hatta 3000 numunenin örnekleme dağılımının Normal yakınında herhangi bir yerde olacağına dair hiçbir güvencemiz yoktur. Bu yüzden OP şaşırır. Buna şaşırmadığınızı söyleyerek karşı çıkıyorsunuz, ama bu, bir başkasının sezgisine düşüyormuş gibi görünüyor. 300 (veya 3000) 'in t-testinin iyi çalışması için yeterince büyük bir örnek olduğunu gösteren bu veriler için hangi nesnel argüman sunabilirsiniz?
whuber

Harika bir nokta. Kabul ediyorum, eğer veriler yeterince eğri ise, argümanım başarısız oluyor. Yani bana soru şu: Verilerin tam olarak ne kadar çarpık olduğu ve bu çarpıklığın gerekli numune boyutuyla ilgili resmi bir sonucu var mı.
zkurtz

1
Bu soruya bir cevap gönderdim. Verilerin sorudaki özet istatistiklere dayanarak nasıl çarpık olduğunu (en azından yaklaşık olarak) biliyoruz. Bu çarpıklık o kadar güçlü ki, grup başına ne 300, ne 3000, hem de 30.000 gözlem, ortalama "neredeyse tam olarak normal" örnekleme dağılımını yapmayacaktır. Bu iddia akla yatkın hale gelmeden önce muhtemelen yaklaşık 300.000'e ihtiyacınız vardır. Bu nedenle, iki testin neden hemfikir olduğu konusunda farklı bir açıklama aramalıyız. Benimki, her ikisinin de iyi davrandığından ziyade "iyi davrandığı" değildir.
whuber

0

Bu cevabın çok geç olduğunu biliyorum. Bununla birlikte, sağlık hizmetleri araştırmalarında doktora alıyorum, bu yüzden maliyet verileri de dahil olmak üzere sağlık verileriyle çok çalışıyorum.

OP'nin hangi verilere sahip olduğunu bilmiyorum. Kesitsel veriler olsaydı, o zaman haklı olarak IID idi. Bağımsızlık, her birimin, yani her bireyin bağımsız olduğu anlamına gelir. Bu büyük olasılıkla haklı. Özdeş olarak dağıtıma gelince, veriler, genel olarak doğrusal bir modelde bir günlük bağlantısı olan bir gama dağılımından gelenler gibi modellenebilir. İnsanların pratikte yaygın olarak yaptıkları budur. Ya da süslü olmak istiyorsanız, muhtemelen 0'ların üstesinden gelen engel modelleri (ekonometride popüler) vardır. Bu arada, sağlık harcamalarında oldukça yaygındır. OP, verilerin mutlaka aynı şekilde dağıtılmadığı teknik olarak doğrudur, örneğin, ortalama ve varyans yaşla birlikte değişecektir, ancak çoklu regresyon modellerinde uygulanabilir bir varsayımdır.

Her bir kişi bir yıldan uzun bir süredir veri kümesinde olsaydı, veriler IID olmazdı. Bunun için daha karmaşık modeller var. Bunlardan nispeten basit olanı muhtemelen tahmin edilen denklemleri, gama dağılımını ve log bağlantısını tekrar genelleştirebilir, değiştirilebilir bir çalışma korelasyonu olduğunu varsayar. Veya, bu veriler kamuya açık anket verilerinden geliyorsa, örnekleme olasılığı eşit değildir - bu anketlerin çoğu her evde birden fazla kişiyle görüşür ve ayrıca nüfusu katmanlaştırır ve bazı grupları (örneğin ırksal azınlıklar) aşırı örneklendirir. Kullanıcının bunu düzeltmesi gerekir.

T-testleri kullanmıyorum, özellikle gözlemsel veriler için değil. Çok fazla çelişki var, bu yüzden onlar için (genelleştirilmiş) doğrusal bir modelde ayar yapmak istersiniz. Bu nedenle, özellikle t-testleri ile ilgili sorular hakkında yorum yapamam.

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.