簡體   English   中英

R-cut2與分位數函數

[英]R - cut2 versus quantile function

誰能告訴我R中的分位數函數與HMISC軟件包中的cut2函數之間的區別嗎?

我知道分位數有9種不同的方法來指定四分位數。 但是,當我使用函數cut2(mydata,g = 4)時,輸出的四分位數不對應任何分位數函數的輸出。

任何幫助,不勝感激。

提前致謝。

cut2幫助文件中:

類似於cut但左端點的功能包括在內,標簽的形式為[lower,upper),但最后一個間隔為[lower,upper]。 如果給出切割,默認情況下將確保切割包括整個x范圍。

所以, cut2基本上cut與幾個不同的默認值。 那我們來看一下cut

cut幫助文件中:

cut將x的范圍划分為間隔,並根據x的值落入的間隔對其進行編碼。 最左邊的間隔對應於級別1,下一個最左邊的間隔對應於級別2,依此類推。

quantile幫助文件中:

通用函數分位數產生與給定概率相對應的樣本分位數。 最小觀察值對應於0的概率,最大觀察值對應於1的概率。

一切斷的范圍x ,另一個切割的“頻率” x

插圖:

out <- 0:100
out2 <- c(seq(0, 50, 0.001), 51:100)

兩者具有相同的范圍。 從0到100。

levels(cut(out,4, include.lowest = T))
[1] "[-0.1,25]" "(25,50]"   "(50,75]"   "(75,100]" 
levels(cut(out2,4, include.lowest = T))
[1] "[-0.1,25]" "(25,50]"   "(50,75]"   "(75,100]" 

但是out2還有許多“數據點”,尤其是0到50之間的值。因此,它們在該范圍內的頻率不同:

quantile(out)
  0%  25%  50%  75% 100% 
   0   25   50   75  100 
quantile(out2)
      0%      25%      50%      75%     100% 
  0.0000  12.5125  25.0250  37.5375 100.0000 

這就是cutquantile之間的區別。

上面的示例還向您展示了雙方都同意的情況,即在均勻分布的情況下。 例如,從0到100的序列均勻地分布在從0到100的范圍內。這里,兩者基本相同。

為了進一步說明,請考慮:

outdf <- data.frame(out=out, cut=cut(out,4, include.lowest = T))
out2df <- data.frame(out=out2, cut=cut(out2,4, include.lowest = T))

table(outdf$cut)
[-0.1,25]   (25,50]   (50,75]  (75,100] 
       26        25        25        25 
table(out2df$cut)
[-0.1,25]   (25,50]   (50,75]  (75,100] 
    25001     25000        25        25 

在這里,您可以清楚地看到每個倉中的不同頻率。

暫無
暫無

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

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