簡體   English   中英

R中的直方圖

[英]Histogram plot in R

我正在尋找有關直方圖的一些指導。

假設我有這個vecotr(稱為CF)

  [,1]    
 [1,] 2275.351
 [2,] 2269.562 
 [3,] 1925.700 
 [4,] 1904.195 
 [5,] 1974.039     

我使用以下公式將此向量繪制為直方圖。

hist(CF)

現在讓我們假設我有一個屬性的10000個模擬值估計。 我想在x軸返回概率的直方圖(或類似圖)中繪制這些圖。

這樣的陰謀將使我有機會陳述類似的東西:“以55%的概率,該房產的價值超過了1500萬美元。

Suggerstions?

您可能想要的是累積分布函數(CDF)。 它在y軸上具有概率(不是您所要求的x),但是由於這是表示所需信息的標准方法,因此最好使用此曲線。

例如,我產生了具有標准正態分布的10'000個值,然后構造了CDF:

CF <- rnorm(10000)
breaks <- seq(-4,4,0.5)
CDF <- sapply(breaks,function(b) sum(CF<=b)/length(CF))
plot(breaks,CDF,type="l")

例如,您可以從圖中讀出以50%的概率得出的值小於零的情況。

如果您喜歡條形圖,則可以使用

barplot(CDF,names.arg=breaks)

我不了解您的詳細數據,因此我無法為您提供更精確的代碼。 但基本上,您將必須選擇一組合理的中斷,然后應用上面的代碼。

我同意@Stibu,您想要CDF。 當您談論一組已實現的數據時,我們將其稱為經驗累積分布函數 (ECDF)。 在R中,對此的基本函數調用是?ecdf

CF <- read.table(text="[1,] 2275.351
[2,] 2269.562 
[3,] 1925.700 
[4,] 1904.195 
[5,] 1974.039", header=F)
CF <- as.vector(CF[,-1])
CF  # [1] 2275.351 2269.562 1925.700 1904.195 1974.039
windows()
  plot(ecdf(CF))

在此處輸入圖片說明

如果您願意下載fitdistrplus軟件包,則可以使用許多精美的版本:

library(fitdistrplus)
windows()
  plotdist(CF)

在此處輸入圖片說明

fdn <- fitdist(CF, "norm")
fdw <- fitdist(CF, "weibull")
summary(fdw)
# Fitting of the distribution ' weibull ' by maximum likelihood 
# Parameters : 
#         estimate Std. Error
# shape   13.59732   4.833605
# scale 2149.24253  74.958140
# Loglikelihood:  -32.89089   AIC:  69.78178   BIC:  69.00065 
# Correlation matrix:
#           shape     scale
# shape 1.0000000 0.3328979
# scale 0.3328979 1.0000000
windows()
  plot(fdn)

在這里輸入代碼

windows()
  cdfcomp(list(fdn,fdw), legendtext=c("Normal","Weibull"), lwd=2)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM