Özet istatistikleri ortalama, sd, min ve max ile mi çiziyorsunuz?


10

Ben bir ekonomi geçmişindeyim ve genellikle disiplinde değişkenlerin özet istatistikleri bir tabloda rapor edilir. Ancak, onları planlamak istiyorum.

Bir kutu grafiğini ortalama, standart sapma, minimum ve maksimum değerlerini görüntüleyecek şekilde değiştirebilirim, ancak kutu grafikleri geleneksel olarak medyanları ve Q1 ve Q3'ü görüntülemek için kullanıldığından bunu yapmak istemiyorum.

Tüm değişkenlerimin farklı ölçekleri var. Birisi bu özet istatistikleri çizebileceğim anlamlı bir yol önerebilirse harika olurdu. R veya Stata ile çalışabilirim.


1
Listeye hoş geldiniz. RKomutlar hakkında soru soruyorsanız, bu soru burada konu dışıdır. Ama görünüşe göre öncelikle iyi bir arsanın nasıl görüneceğini ve ikincil olarak onu nasıl yaratacağınızı soruyorsunuz. Eğer öyleyse, başlığınızdan "R" ile silmenizi ve belki de bedeninizde Rmevcut olduğunuzu belirtmenizi öneririm .
Peter Flom

Yanıtlar:


16

Tukey'in kutu grafiğinin evrensel olmasının bir nedeni vardır, Gauss'tan Poisson'a vb. Farklı dağılımlardan elde edilen verilere uygulanabilir. Medyan, MAD (medyan mutlak sapma) veya IQR (kartlar arası aralık), verilerden saptığında daha sağlam ölçümlerdir. normallik. Bununla birlikte, ortalama ve SD, aykırı değerlere daha yatkındır ve altta yatan dağılıma göre yorumlanmalıdır. Aşağıdaki çözüm normal veya log-normal veriler için daha uygundur. Burada çeşitli sağlam önlemlere göz atabilir ve WRS R paketini buradan inceleyebilirsiniz .

# simulating dataset
set.seed(12)
d1 <- rnorm(100, sd=30)
d2 <- rnorm(100, sd=10)
d <- data.frame(value=c(d1,d2), condition=rep(c("A","B"),each=100))

# function to produce summary statistics (mean and +/- sd), as required for ggplot2
data_summary <- function(x) {
   mu <- mean(x)
   sigma1 <- mu-sd(x)
   sigma2 <- mu+sd(x)
   return(c(y=mu,ymin=sigma1,ymax=sigma2))
}

# require(ggplot2)
ggplot(data=d, aes(x=condition, y=value, fill=condition)) + 
geom_crossbar(stat="summary", fun.y=data_summary, fun.ymax=max, fun.ymin=min)

Ek olarak + geom_jitter()veya + geom_point()yukarıdaki koda ekleyerek ham veri değerlerini aynı anda görselleştirebilirsiniz.


Keman planını işaret ettiği için @Roland'a teşekkürler . Olasılık yoğunluğunu özet istatistikle aynı anda görselleştirmede bir avantaja sahiptir:

# require(ggplot2)
ggplot(data=d, aes(x=condition, y=value, fill=condition)) + 
geom_violin() + stat_summary(fun.data=data_summary)

Her iki örnek de aşağıda gösterilmiştir.

resim açıklamasını buraya girin


2
Bunun üzerinde bir keman planını tercih ederim.
Roland

1
Analizin amacına bağlı olarak, ortalama ve standart sapma tam olarak ihtiyacınız olan şeydir. Ancak R'nin abstract.data.frame'deki tutarsızlığı anlamıyorum. Ortalama gösterir ama SD yok. Araçların yararlı olduğu birçok durumu düşünemiyorum ama standart sapmalar yanıltıcı.
Michael M

Gerçekten de, bazen ortalama ve SD'yi görmeniz gerekir, böylece yararlı olup olmadıklarına karar verirsiniz ....
Nick Cox

1
@TWL: Konu burada tartışılamayacak kadar geniş. Ancak, örneğin ilaçların ekonomik değerlendirmelerini ele alalım: Hasta için, medyan tedavi süresini bilmek önemlidir, ancak sağlık sigortası şirketi için ortalama tedavi süresidir çünkü her hasta için ödeme yapmaları gerekir. İlginç bir gerçek: Üstel dağılım durumunda, ortalama +/- 1 standart sapma tüm kütlenin% 68'ini, ortalama +/- 2 sds tüm kütlenin yaklaşık% 95'ini kapsar. Normal gelince. (Ama bu sadece bir şans;))
Michael M

1

9

Sayısız olasılık var.

Boxplotlar ile karışıklığı önleyen (gördüğüm medyanlar veya orijinal veriler varsa) kullandığım bir seçenek, bir boxplot çizmek ve ortalamayı işaret eden bir sembol (umarım bu açık yapmak için bir efsane ile) eklemektir. Ortalama için bir işaretleyici ekleyen kutu grafiğinin bu sürümü, örneğin Frigge ve arkadaşları (1989) [1] 'de belirtilmiştir:

Ortalamayı gösteren kutu grafikler de işaretlenmiş

Sol grafikte ortalama bir işaretçi olarak bir + simgesi ve sağ grafikte Doane & Tracy'nin kiriş ve dayanak grafiğindeki ortalama işaretleyiciyi uyarlayan kenarda bir üçgen kullanılmıştır [2].

Ayrıca bkz bu SO sonrası ve bu bir

Medyanız yoksa (veya gerçekten göstermek istemiyorsanız) yeni bir arsaya ihtiyaç duyulacak ve o zaman bir kutu planından görsel olarak farklı olması iyi olacaktır.

Belki de böyle bir şey:

resim açıklamasını buraya girin

... her örnek için farklı semboller kullanarak minimum, maksimum, ortalama ve ortalama sd'yi çizer ve daha sonra bir dikdörtgen veya belki de daha iyi bir şey çizer:±

resim açıklamasını buraya girin

... farklı semboller kullanarak her örnek için minimum, maksimum, ortalama ve ortalama sd'yi çizer ve daha sonra bir çizgi çizer (aslında şu anda eskisi gibi bir dikdörtgen, ancak dar çizilir; hat)±

Sayılarınız çok farklı ölçeklerde ise, ancak hepsi pozitifse, günlüklerle çalışmayı düşünebilirsiniz veya farklı (ancak açıkça işaretlenmiş) ölçeklerle küçük katlar yapabilirsiniz

Kod (şu anda özellikle 'güzel' kod değil, ancak şu anda bu sadece fikirleri araştırıyor, iyi R kodu yazma konusunda bir öğretici değil):

fivenum.ms=function(x) {r=range(x);m=mean(x);s=sd(x);c(r[1],m-s,m,m+s,r[2])}
eps=.015

plot(factor(c(1,2)),range(c(A,B)),type="n",border=0)
points((rep(c(1,2),each=5)),c(fivenum.ms(A),fivenum.ms(B)),col=rep(c(2,4),each=5),pch=rep(c(1,16,9,16,1),2),ylim=c(range(A,B)),cex=1.2,lwd=2,xlim=c(0.5,2.5),ylab="",xlab="")
rect(1-1.2*eps,fivenum.ms(A)[2],1+1.4*eps,fivenum.ms(A)[4],lwd=2,col=2,den=0)
rect(2-1.2*eps,fivenum.ms(B)[2],2+1.4*eps,fivenum.ms(B)[4],lwd=2,col=4,den=0)

plot(factor(c(1,2)),range(c(A,B)),type="n",border=0)
points((rep(c(1,2),each=5)),c(fivenum.ms(A),fivenum.ms(B)),col=rep(c(2,4),each=5),pch=rep(c(1,16,9,16,1),2),ylim=c(range(A,B)),cex=1.2,lwd=2,xlim=c(0.5,2.5),ylab="",xlab="")
rect(1-eps/9,fivenum.ms(A)[2],1+eps/3,fivenum.ms(A)[4],lwd=2,col=2,den=0)
rect(2-eps/9,fivenum.ms(B)[2],2+eps/3,fivenum.ms(B)[4],lwd=2,col=4,den=0)

[1] Frigge, M., DC Hoaglin ve B. Iglewicz (1989),
"Kutu çiziminin bazı uygulamaları."
Amerikan İstatistikçi , 43 (Şub): 50-54.

[2] Doane DP ve RL Tracy (2000),
"Verileri Keşfetmek için Işın ve Fulcrum Ekranlarını Kullanma"
Amerikan İstatistikçisi , 54 (4): 289–290, Kasım

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.