欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

R語言中的fivenum與quantile()函數(shù)算法詳解

 更新時間:2021年04月20日 10:22:46   作者:tianzhanlan  
這篇文章主要介紹了R語言中的fivenum與quantile()函數(shù)算法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

fivenum()函數(shù):

返回五個數(shù)據(jù):最小值、下四分位數(shù)數(shù)、中位數(shù)、上四分位數(shù)、最大值

對于奇數(shù)個數(shù)字=5,fivenum()先排序,依次返回最小值、下四分位數(shù)、中位數(shù)、上四分位數(shù)、最大值

> fivenum(c(1,12,40,23,13))
[1]  1 12 13 23 40

對于奇數(shù)個數(shù)字>5,fivenum()先排序,我們可以求取最小值,最大值,中位數(shù)。在排序中,最小值與中位數(shù)中間,若為奇數(shù),取其中位數(shù)為下四分位數(shù),若為偶數(shù),取最中間兩個數(shù)的平均值為下四分位數(shù);在排序中,中位數(shù)與最大值中間,若為奇數(shù),取其中位數(shù)為上四分位數(shù),若為偶數(shù),取最中間兩個數(shù)的平均值為上四分位數(shù);

> fivenum(c(2,6,20,8,10,120,30,130,250))
[1]   2   8  20 120 250
> fivenum(c(2,6,20,13,8,10,120,30,130,140,250))
[1]   2   9  20 125 250

對于偶數(shù)個數(shù)字=4,我們可以先求取最小值,最大值。中位數(shù)由最中間相鄰的數(shù)取平均求出;下四分位數(shù)由最小值與其相鄰的數(shù)求出;上四分位數(shù)由最大值與其相鄰的數(shù)求出;

> fivenum(c(1,10,23,8))
[1]  1.0  4.5  9.0 16.5 23.0

對于偶數(shù)個數(shù)字>4,排序,在排序中,中位數(shù)為最中間兩個數(shù)的平均值,最小值與中位數(shù)前一個數(shù)中間,若為奇數(shù),取其中位數(shù)為下四分位數(shù),若為偶數(shù),取最中間兩個數(shù)的平均值為下四分位數(shù);在排序中,中位數(shù)后一個數(shù)與最大值中間,若為奇數(shù),取其中位數(shù)為上四分位數(shù),若為偶數(shù),取最中間兩個數(shù)的平均值為上四分位數(shù);

> fivenum(c(1,2,3,4,8,10,11,12,14,23))
[1]  1  3  9 12 23
> fivenum(c(1,2,3,8,10,11,14,23))
[1]  1.0  2.5  9.0 12.5 23.0

fivenum()函數(shù)或者通過計算位置推出分位數(shù),即:

位置:y=p*(n-1)+1,n為數(shù)值個數(shù);

若y為整數(shù),則該位置的數(shù)即為所求分位數(shù)的值,若y為分?jǐn)?shù),將該位置前后的兩數(shù)算數(shù)平均即可。

quantile()函數(shù):

R語言中的quantile()是分位數(shù)函數(shù),其算法是加權(quán)平均,第N個分位數(shù)就表示數(shù)據(jù)集中有N%的數(shù)據(jù)小于它。

默認(rèn)情況下,quantile()會告訴你數(shù)據(jù)集0%,25%,50%,75%,100%位置處的數(shù)據(jù),具體算法為:

位置:y=p*(n-1)+1,然后根據(jù)位置進行加權(quán)平均。

以1-10為例,20%分位數(shù)為例,首先位數(shù)=1+(10-1)*20%=2.8,所以此分位數(shù)在第二和第三個數(shù)之間,更靠近第三個數(shù)(2<2.8<3),算法:2*0.2+3*0.8=2.8,權(quán)重即越靠近某值,其權(quán)重越大,靠近3,則權(quán)重為0.8,越遠(yuǎn)離某值,其權(quán)重越小,遠(yuǎn)離2,則權(quán)重為0.2,兩個權(quán)重和為1。

> quantile(c(1,3,5,7,9,11,13,15))
  0%  25%  50%  75% 100% 
 1.0  4.5  8.0 11.5 15.0 

25%分位數(shù):

y=0.25*(8-1)+1=2.75;s=3*0.25+5*0.75=4.5

75%分位數(shù):

y=0.75*(8-1)+1=6.25;s=11*0.75+13*0.25=11.5

補充:R語言 quantile()和fivenum()的差別在于——加權(quán)平均與算術(shù)平均

quantile()和fivenum()的本質(zhì)差別在于, quantile()函數(shù)的算法是采用加權(quán)平均, fivenum()是算術(shù)平均。這么說可能不易理解,其實很簡單的,下面舉個例子說明就容易理解了。

例如,一組數(shù)據(jù) x <- 11 : 18,則如下圖,第一位是11,第二位是12,,,第8位是18,

對于 quantile()算法——加權(quán)平均,

0%位是第1位( 1+(8-1)*0%=1 ),

值為11; 25%位是第2.75位(1+(8-1)*25%=2.75 ),

第2.75位介于第2位和第3位之間,距離哪位較近,哪位數(shù)據(jù)的權(quán)重較大,所以第3位數(shù)據(jù)的權(quán)重是0.75,第2位數(shù)據(jù)是

權(quán)重是0.25,則25%位的值=13*0.75+12*0.25=12.75;

同理,50%位是第4.5位( 1+(8-1)*50%=4.5 ),值=14*0.5+15*0.5=14.5;

75%位是第6.25位( 1+(8-1)*75%=6.25 ),值=16*0.75+17*0.25=16.25;

100%位是第8位( 1+(8-1)*100%=8 ),值為18;

對于fivenum ()算法——算術(shù)平均,

0%位是第1位( 1+(8-1)*0%=1 ),值為11;

25%位是第2.75位(1+(8-1)*25%=2.75 ),第2.75位介于第2位和第3位之間,用算術(shù)平均法,則25%位的值=(13+12)/2=12.5;

同理,50%位是第4.5位( 1+(8-1)*50%=4.5 ),值=(14+15)/2=14.5;

75%位是第6.25位( 1+(8-1)*75%=6.25 ),值=(16+17)/2=16.5;

100%位是第8位( 1+(8-1)*100%=8 ),值為18;

用r語言驗證:

quantile()的代碼

x <- 1:100
n <- length(x)
probs = seq(0, 1, 0.25)
index <- 1 + (n - 1) * probs
lo <- floor(index)
hi <- ceiling(index)
x <- sort(x, partial = unique(c(lo, hi)))
qs <- x[lo]
i <- which(index > lo)
h <- (index - lo)[i]
qs[i] <- (1 - h) * qs[i] + h * x[hi[i]]
qs
quantile(x=1:100)

fivenum ()的代碼

x <- 1:100
n <- length(x)
n4 <- floor((n + 3)/2)/2
d <- c(1, n4, (n + 1)/2, n + 1 - n4, n)
0.5 * (x[floor(d)] + x[ceiling(d)])
fivenum(x=1:100) 

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關(guān)文章

  • R語言-如何將科學(xué)計數(shù)法表示的數(shù)字轉(zhuǎn)化為文本

    R語言-如何將科學(xué)計數(shù)法表示的數(shù)字轉(zhuǎn)化為文本

    這篇文章主要介紹了R語言-如何將科學(xué)計數(shù)法表示的數(shù)字轉(zhuǎn)化為文本,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言中矩陣matrix和數(shù)據(jù)框data.frame的使用詳解

    R語言中矩陣matrix和數(shù)據(jù)框data.frame的使用詳解

    這篇文章主要介紹了R語言中矩陣matrix和數(shù)據(jù)框data.frame的使用詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • R語言繪圖技巧導(dǎo)出高清圖方法

    R語言繪圖技巧導(dǎo)出高清圖方法

    這篇文章主要為大家介紹了R語言繪圖技巧如何導(dǎo)出高清圖,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-02-02
  • R語言中ifelse、which、%in%的用法詳解

    R語言中ifelse、which、%in%的用法詳解

    這篇文章主要介紹了R語言中ifelse、which、%in%的用法詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言中常見的幾種創(chuàng)建矩陣形式總結(jié)

    R語言中常見的幾種創(chuàng)建矩陣形式總結(jié)

    這篇文章主要給大家介紹了關(guān)于R語言中常見的幾種創(chuàng)建矩陣形式的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-03-03
  • R語言 實現(xiàn)list類型數(shù)據(jù)轉(zhuǎn)換

    R語言 實現(xiàn)list類型數(shù)據(jù)轉(zhuǎn)換

    這篇文章主要介紹了R語言 實現(xiàn)list類型數(shù)據(jù)轉(zhuǎn)換,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • R語言控制結(jié)構(gòu)知識點總結(jié)

    R語言控制結(jié)構(gòu)知識點總結(jié)

    在本篇文章里小編給大家整理一篇關(guān)于R語言控制結(jié)構(gòu)知識點總結(jié)內(nèi)容,有興趣的朋友們可以學(xué)習(xí)參考下。
    2021-03-03
  • R語言中for循環(huán)的并行處理方式

    R語言中for循環(huán)的并行處理方式

    這篇文章主要介紹了R語言中for循環(huán)的并行處理方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04
  • R語言實現(xiàn)PCA主成分分析圖的示例代碼

    R語言實現(xiàn)PCA主成分分析圖的示例代碼

    主成分分析(Principal?Component?Analysis,PCA)是一種無監(jiān)督的數(shù)據(jù)降維方法,通過主成分分析可以盡可能保留下具備區(qū)分性的低維數(shù)據(jù)特征。本文將用R語言實現(xiàn)PCA主成分分析圖,需要的可以參考一下
    2022-04-04
  • 基于R語言中的各種更新方法分享

    基于R語言中的各種更新方法分享

    這篇文章主要介紹了基于R語言中的各種更新方法分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-04-04

最新評論