R’de grafiksel verilere genel bakış (özet) işlevi


39

Daha önce bir R paketinde bunun gibi bir fonksiyonla karşılaştığımdan eminim, ancak kapsamlı Googling'ten sonra hiçbir yerde bulamıyorum. Düşündüğüm fonksiyon, kendisine verilen bir değişken için grafiksel bir özet üretti, bazı grafiklerle çıktı oluşturdu (histogram ve belki de bir kutu ve bıyık arsası) ve ortalama, SD vb.

Bu işlevin R tabanına dahil edilmediğinden eminim, ancak kullandığım paketi bulamıyorum.

Böyle bir işlevi bilen var mı, öyleyse hangi paketin içinde olduğunu?

Yanıtlar:


25

Frank Harrell's Hmisc paketi, açıklama seçenekleri olan bazı temel grafiklere sahiptir: summary.formula()ve ilgili plotkaydırma işlevlerini inceleyin. Ben de describe()işlevi seviyorum .

Daha fazla bilgi için, Hmisc Kütüphanesine veya S-Plus'a Giriş ile Hmisc ve Tasarım Kütüphanelerine göz atın .

İşte on-line yardım alınan bazı resimler (vardır bpplt, describeve plot(summary(...))): alt metin alt metin alt metin

Diğer birçok örnek R Grafiksel El Kitabında çevrimiçi olarak taranabilir , bkz. Hmisc (ve rms'yi kaçırmayın ).


Bu işlevlerin tümü Tasarım değil Hmisc paketindedir. Bunu gönderdiğiniz için teşekkür ederiz.
Frank Harrell,

Üç bağlantıdan ikisi kapalı.
Donnied

15

Chart chart.C.'nin PerformanceAnalytics paketindeki korelasyonları tavsiye ederim . Tek bir grafikte inanılmaz miktarda bilgi içerir: her değişken için çekirdek yoğunluğu grafikleri ve histogramlar ve her değişken çifti için saçılım grafikleri, alçak düzleştiriciler ve korelasyonlar. En sevdiğim grafik veri özeti işlevlerinden biridir:

library(PerformanceAnalytics)
chart.Correlation(iris[,1:4],col=iris$Species)

Bu çizelgeyi seviyorum!


2
1 FWIW, ? Scatterplot.matrix içinde araba paketinin size benzer bir grafik elde edecek (örneğin, bazı farklılıklar w /, / o r '& yıldızlı w).
gung - Reinstate Monica

@gung Mükemmel bir fonksiyon, bahşiş için teşekkürler.
Zach,

5

Bu fonksiyonu faydalı buldum ... asıl yazarın kolu solunum kulübü .

İşte bir çıktı örneği

f_summary <- function(data_to_plot)
{
## univariate data summary
require(nortest)
#data <- as.numeric(scan ("data.txt")) #commenting out by mike
data <- na.omit(as.numeric(as.character(data_to_plot))) #added by mike
dataFull <- as.numeric(as.character(data_to_plot))

# first job is to save the graphics parameters currently used
def.par <- par(no.readonly = TRUE)
par("plt" = c(.2,.95,.2,.8))
layout( matrix(c(1,1,2,2,1,1,2,2,4,5,8,8,6,7,9,10,3,3,9,10), 5, 4, byrow = TRUE))

#histogram on the top left
h <- hist(data, breaks = "Sturges", plot = FALSE)
xfit<-seq(min(data),max(data),length=100)
yfit<-yfit<-dnorm(xfit,mean=mean(data),sd=sd(data))
yfit <- yfit*diff(h$mids[1:2])*length(data)
plot (h, axes = TRUE, main = paste(deparse(substitute(data_to_plot))), cex.main=2, xlab=NA)
lines(xfit, yfit, col="blue", lwd=2)
leg1 <- paste("mean = ", round(mean(data), digits = 4))
leg2 <- paste("sd = ", round(sd(data),digits = 4))
count <- paste("count = ", sum(!is.na(dataFull)))
missing <- paste("missing = ", sum(is.na(dataFull)))
legend(x = "topright", c(leg1,leg2,count,missing), bty = "n")

## normal qq plot
qqnorm(data, bty = "n", pch = 20)
qqline(data)
p <- ad.test(data)
leg <- paste("Anderson-Darling p = ", round(as.numeric(p[2]), digits = 4))
legend(x = "topleft", leg, bty = "n")

## boxplot (bottom left)
boxplot(data, horizontal = TRUE)
leg1 <- paste("median = ", round(median(data), digits = 4))
lq <- quantile(data, 0.25)
leg2 <- paste("25th percentile =  ", round(lq,digits = 4))
uq <- quantile(data, 0.75)
leg3 <- paste("75th percentile = ", round(uq,digits = 4))
legend(x = "top", leg1, bty = "n")
legend(x = "bottom", paste(leg2, leg3, sep = "; "), bty = "n")

## the various histograms with different bins
h2 <- hist(data,  breaks = (0:20 * (max(data) - min (data))/20)+min(data), plot = FALSE)
plot (h2, axes = TRUE, main = "20 bins")

h3 <- hist(data,  breaks = (0:10 * (max(data) - min (data))/10)+min(data), plot = FALSE)
plot (h3, axes = TRUE, main = "10 bins")

h4 <- hist(data,  breaks = (0:8 * (max(data) - min (data))/8)+min(data), plot = FALSE)
plot (h4, axes = TRUE, main = "8 bins")

h5 <- hist(data,  breaks = (0:6 * (max(data) - min (data))/6)+min(data), plot = FALSE)
plot (h5, axes = TRUE,main = "6 bins")

## the time series, ACF and PACF
plot (data, main = "Time series", pch = 20, ylab = paste(deparse(substitute(data_to_plot))))
acf(data, lag.max = 20)
pacf(data, lag.max = 20)

## reset the graphics display to default
par(def.par)

#original code for f_summary by respiratoryclub

}

2
Kodu yeni güncelledim, böylece geçerli / eksik n'yi rapor edecek ve sonra eksik değerler tarafından kırılan fonksiyonlar için eksik değerleri ihmal etmeliyim.
Michael Bishop,

4

Düşündüğünüz şeyin bu olup olmadığından emin değilim, ancak fitdistrplus paketini incelemek isteyebilirsiniz . Bunun dağıtımınızla ilgili otomatik olarak faydalı özet bilgiler üreten ve bu bilgilerin bir kısmını çizen pek çok hoş işlevi vardır. İşte skeçten bazı örnekler :

library(fitdistrplus)
data(groundbeef)
windows()              # or quartz() for mac
  plotdist(groundbeef$serving)  

görüntü tanımını buraya girin

windows()
> descdist(groundbeef$serving, boot=1000)
summary statistics
------
min:  10   max:  200 
median:  79 
mean:  73.64567 
estimated sd:  35.88487 
estimated skewness:  0.7352745 
estimated kurtosis:  3.551384 

görüntü tanımını buraya girin

fw = fitdist(groundbeef$serving, "weibull")

>summary(fw)
Fitting of the distribution ' weibull ' by maximum likelihood 
Parameters : 
       estimate Std. Error
shape  2.185885  0.1045755
scale 83.347679  2.5268626
Loglikelihood:  -1255.225   AIC:  2514.449   BIC:  2521.524 
Correlation matrix:
         shape    scale
shape 1.000000 0.321821
scale 0.321821 1.000000

fg  = fitdist(groundbeef$serving, "gamma")
fln = fitdist(groundbeef$serving, "lnorm")
windows()
  plot(fw)

görüntü tanımını buraya girin

windows()
  cdfcomp(list(fw,fln,fg), legendtext=c("Weibull","logNormal","gamma"), lwd=2,
          xlab="serving sizes (g)")

görüntü tanımını buraya girin

>gofstat(fw)
Kolmogorov-Smirnov statistic:  0.1396646 
Cramer-von Mises statistic:  0.6840994 
Anderson-Darling statistic:  3.573646 

1

Veri setini keşfetmek gerçekten hoşuma gidiyor rattle. Paketi kurun ve arayın rattle(). Arayüz oldukça açıklayıcı.


çıngırak, Windows için desteklenmeyen XML gerektirir (ve Windows ikilisinde kullanılamaz) :-(. cran.r-project.org/web/packages/XML/index.html
whuber

@whuber: Çok kötü! Oldukça temiz bir paket
nico

2
@whuber @nico XML için bir zip dosyası, örneğin istatistik.ox.ac.uk/pub/RWin/bin/windows/contrib/2.13 (ve bazı diğer sürümler için) bulunabilir. Bununla ilgili başka sorunlar var, ama sonunda işe yarayacak gibi görünüyor
Henry,


0

Muhtemelen tam olarak aradığınızı değil, ama R için ps paketindeki pairs.panels () işlevi yararlı olabilir. Size üst diyagonaldaki korelasyon değerlerini verir, alt diyagonaldaki çizgiler ve noktaları işaretler ve her değişkenin matrisin diyagonal çizgisindeki skorlarının histogramını gösterir. Şahsen ben onun etrafındaki verilerin en iyi grafiksel özetlerinden biri olduğunu düşünüyorum.


0

Benim favorim DescTools

library(DescTools)
data("iris")
Desc(iris, plotit = T)

Bunun gibi bir dizi arsa üretir:

görüntü tanımını buraya girin görüntü tanımını buraya girin ve bir dizi tanımlayıcı değer görüntüler (ortalama, meanSE, medyan, yüzdelik değerler, aralık, sd, IQR, eğriltme değerleri ve kurtosis dahil): görüntü tanımını buraya girin

Alternatif olarak, tabplot grafiksel bir genel bakış için de çok iyidir.

İle süslü araziler üretir tableplot(iris, sortCol=Species)

görüntü tanımını buraya girin

Bir D3 versiyonu bile yoktur tabplot, yani tabplotd3 .

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.