Şekil oluşturmak için histogramları kullanmada zorluk
Histogramlar genellikle kullanışlı ve bazen yararlı olsalar da yanıltıcı olabilirler. Görünümleri, depo sınırlarının konumlarındaki değişikliklerle oldukça değişebilir.
Bu sorun uzun zamandır bilinmekteydi *, olması gerektiği kadar olmasa da - ilköğretim tartışmalarında (istisnalar olmasına rağmen) nadiren görüyorsunuz.
* örneğin, Paul Rubin [1] şöyle söylemiştir: " histogramdaki uç noktaların değiştirilmesinin görünümünü önemli ölçüde değiştirebileceği iyi bilinmektedir ". .
Histogramları tanıtırken daha yaygın olarak tartışılması gereken bir konu olduğunu düşünüyorum. Bazı örnekler ve tartışma yapacağım.
Neden bir veri setinin tek bir histogramına güvenmek konusunda dikkatli olmalısınız?
Bu dört histograma bir göz atın:
Bu dört farklı görünümlü histogram.
Aşağıdaki verileri yapıştırın (burada R kullanıyorum):
Annie <- c(3.15,5.46,3.28,4.2,1.98,2.28,3.12,4.1,3.42,3.91,2.06,5.53,
5.19,2.39,1.88,3.43,5.51,2.54,3.64,4.33,4.85,5.56,1.89,4.84,5.74,3.22,
5.52,1.84,4.31,2.01,4.01,5.31,2.56,5.11,2.58,4.43,4.96,1.9,5.6,1.92)
Brian <- c(2.9, 5.21, 3.03, 3.95, 1.73, 2.03, 2.87, 3.85, 3.17, 3.66,
1.81, 5.28, 4.94, 2.14, 1.63, 3.18, 5.26, 2.29, 3.39, 4.08, 4.6,
5.31, 1.64, 4.59, 5.49, 2.97, 5.27, 1.59, 4.06, 1.76, 3.76, 5.06,
2.31, 4.86, 2.33, 4.18, 4.71, 1.65, 5.35, 1.67)
Chris <- c(2.65, 4.96, 2.78, 3.7, 1.48, 1.78, 2.62, 3.6, 2.92, 3.41, 1.56,
5.03, 4.69, 1.89, 1.38, 2.93, 5.01, 2.04, 3.14, 3.83, 4.35, 5.06,
1.39, 4.34, 5.24, 2.72, 5.02, 1.34, 3.81, 1.51, 3.51, 4.81, 2.06,
4.61, 2.08, 3.93, 4.46, 1.4, 5.1, 1.42)
Zoe <- c(2.4, 4.71, 2.53, 3.45, 1.23, 1.53, 2.37, 3.35, 2.67, 3.16,
1.31, 4.78, 4.44, 1.64, 1.13, 2.68, 4.76, 1.79, 2.89, 3.58, 4.1,
4.81, 1.14, 4.09, 4.99, 2.47, 4.77, 1.09, 3.56, 1.26, 3.26, 4.56,
1.81, 4.36, 1.83, 3.68, 4.21, 1.15, 4.85, 1.17)
O zaman onları kendin üretebilirsin:
opar<-par()
par(mfrow=c(2,2))
hist(Annie,breaks=1:6,main="Annie",xlab="V1",col="lightblue")
hist(Brian,breaks=1:6,main="Brian",xlab="V2",col="lightblue")
hist(Chris,breaks=1:6,main="Chris",xlab="V3",col="lightblue")
hist(Zoe,breaks=1:6,main="Zoe",xlab="V4",col="lightblue")
par(opar)
Şimdi bu şerit grafiğe bakın:
x<-c(Annie,Brian,Chris,Zoe)
g<-rep(c('A','B','C','Z'),each=40)
stripchart(x~g,pch='|')
abline(v=(5:23)/4,col=8,lty=3)
abline(v=(2:5),col=6,lty=3)
(Hala belli değil, her kümesinden Annie'nin verilerini çıkarmak ne olacağını görmek: head(matrix(x-Annie,nrow=40))
)
Veriler her seferinde 0.25 oranında sola kaydırıldı.
Yine de histogramlardan aldığımız izlenimler - sağ çarpık, düzgün, sol çarpık ve iki modlu - tamamen farklıydı. İzlenimlerimiz tamamen , asgari değere göre ilk bin orijininin yerini belirledi.
Bu yüzden sadece 'üstel' vs 'gerçekten üstel değil' değil, sadece sağdan çarpma 'ya da' sol çarpma 'ya da' bimodal 'vs' üniforma 'sadece kutularınızın başladığı yere hareket ederek.
Düzenleme: Binwidth değiştirirseniz, bunun gibi şeyler alabilirsiniz:
Bu , her iki durumda da aynı 34 gözlemdir, sadece biri , biri de genişlik olan , farklı kesme noktaları .0.810.8
x <- c(1.03, 1.24, 1.47, 1.52, 1.92, 1.93, 1.94, 1.95, 1.96, 1.97, 1.98,
1.99, 2.72, 2.75, 2.78, 2.81, 2.84, 2.87, 2.9, 2.93, 2.96, 2.99, 3.6,
3.64, 3.66, 3.72, 3.77, 3.88, 3.91, 4.14, 4.54, 4.77, 4.81, 5.62)
hist(x,breaks=seq(0.3,6.7,by=0.8),xlim=c(0,6.7),col="green3",freq=FALSE)
hist(x,breaks=0:8,col="aquamarine",freq=FALSE)
Şık, ha?
Evet, bu veriler bunu yapmak için kasten oluşturuldu ... ama ders açık - bir histogramda gördüğünüz şey verilerin özellikle doğru izlenimi olmayabilir.
Ne yapabiliriz?
Histogramlar yaygın şekilde kullanılır, elde edilmesi sıklıkla uygundur ve bazen beklenir. Bu tür problemleri önlemek veya azaltmak için ne yapabiliriz?
As Nick Cox ilgili soruya bir yorum işaret : başparmak kuralı hep kutu genişliğine ve bin kökenli hakiki olması muhtemeldir farklılıklara sağlam detayları olmalıdır; Bunun için kırılgan ayrıntıların sahte veya önemsiz olması muhtemeldir .
En azından histogramları her zaman birkaç farklı genişlikte veya kutu kökenli veya tercihen her ikisinde de yapmalısınız.
Alternatif olarak, bir bant genişliği çok geniş olmayan bir çekirdek yoğunluğu tahmini kontrol edin.
Histogramların keyfiyetini azaltan bir diğer yaklaşım ise ortalama kaydırılmış histogramlardır ,
(bu en son veri kümesinden biri) ancak bu çabaya giderseniz, bir çekirdek yoğunluğu tahmini kullanabileceğinizi düşünüyorum.
Histogram yapıyorum (konuyu tam olarak bilmeme rağmen kullanırım), neredeyse her zaman tipik program varsayılanlarının verme eğiliminde olduğundan çok daha fazla çöp kutusu kullanmayı tercih ederim ve çok sık olarak değişen bölme genişliğine sahip birkaç histogram kullanmayı seviyorum (ve bazen de köken). İzlenimde makul bir şekilde tutarlılarsa, bu problemi yaşama olasılığınız düşüktür ve tutarlı değilse, daha dikkatli görünmeyi biliyorsunuzdur, belki bir çekirdek yoğunluğu tahmini, deneysel bir CDF, bir QQ grafiği veya başka bir şey deneyiniz. benzer.
Histogramlar bazen yanıltıcı olsa da, kutu lekeleri bu tür sorunlara daha yatkındır; Bir kutu ile "daha fazla kutu kullan" deme yeteneğin bile yok. Dört çok farklı veri setlerini görün bu yazı veri kümelerinin biri oldukça çarpık olmasına rağmen, aynı simetrik kutudiyagramlar ile tüm.
[1]: Rubin, Paul (2014) "Histogram Kötüye Kullanımı!",
Blog postası, VEYA bir OB dünyasında , 23 Ocak 2014
link ... (alternatif bağlantı)