一、 偏度
1.1 計算公式
k-階中心矩爲:
偏度公式:
1.2 自定義函數以及調用
(一)R語言中實現
編寫skew函數
skew <- function(x)
{
n <- length(x) #長度
meanx <- mean(x) #均值
s <-sd(x) #均方差
u <- sum((x-meanx)^3 )/n #3階中心矩
g1 <- (n^2*u)/((n-1)*(n-2)*s^3) #偏度
return(g1) #輸出結果
}
調用函數以及測試結果
setwd("E:/R")
#測試偏度函數
source('skew.R')
datastudent <- c(11,2,4,5,8,9,10)
skew(datastudent)
得到的結果爲: -0.366937
(二)Python中實現
在Python有現成的函數,導入相應的庫之後使用skew函數即可求出偏度。
import pandas as pd
import numpy as np
da = [11,2,4,5,8,9,10]
das = pd.Series(da)
das.skew()
得到的結果爲:-0.36693703063253225
二、峯度
2.1 計算公式
峯度公式:
2.2 自定義函數以及調用
(一)R語言中實現
kurt <- function(y)
{
s<- sd(y) #均方差
n<- length(y) #長度
uk4 <- sum((y-mean(y))^4)/n #4階中心矩
g2 <- (n^2*(n+1)*uk4)/((n-1)*(n-2)*(n-3)*s^4)-((3*(n-1)^2)/((n-2)*(n-3))) #峯度
return(g2) #輸出結果
}
調用函數以及測試結果
#測試峯度函數
source('kurt.R')
datastudent <- c(11,2,4,5,8,9,10)
kurt(datastudent)
得到的結果爲:-1.490657
(二)Python中實現
import pandas as pd
import numpy as np
da = [11,2,4,5,8,9,10]
das = pd.Series(da)
das.kurt()
得到的結果爲:-1.490657439446367
三、參考資料
[1].「量學堂-3」統計矩