R语言学习笔记(二)

今天主要学习了两个统计学的基本概念:峰度和偏度,并且用R语言来描述。

> vars<-c("mpg","hp","wt")
> head(mtcars[vars])
                   mpg  hp    wt
Mazda RX4         21.0 110 2.620
Mazda RX4 Wag     21.0 110 2.875
Datsun 710        22.8  93 2.320
Hornet 4 Drive    21.4 110 3.215
Hornet Sportabout 18.7 175 3.440
Valiant           18.1 105 3.460

> mystats <- function(x, na.omit = FALSE) {
    if (na.omit) 
        x <- x[!is.na(x)]  #将缺失值置零,如果想单纯的忽略的话也ok
    m <- mean(x)
    n <- length(x)
    s <- sd(x)
    skew <- sum((x - m)^3/s^3)/n    #偏度
    kurt <- sum((x - m)^4/s^4)/n - 3  #峰度
    return(c(n = n, mean = m, stdev = s, skew = skew, kurtosis = kurt))
}
> sapply(mtcars[vars], mystats)
               mpg          hp          wt
n        32.000000  32.0000000 32.00000000
mean     20.090625 146.6875000  3.21725000
stdev     6.026948  68.5628685  0.97845744
skew      0.610655   0.7260237  0.42314646  #mpg的偏度为+0.61,正态分布图往右偏
kurtosis -0.372766 -0.1355511 -0.02271075  #mpg的峰度为-0.37,较正太分布平缓一些

 

再巩固一下几个概念:

1、正态分布:也叫高斯分布,用最浅显的话来说就是一种“中间多,两边少”的分布;反映在数据上,就是数值在所有数据中间的数量多,偏离中间的数据少;

2、偏度:偏度分布是正态分布的父集,即正态分布的偏度为0;右偏分布(正偏分布)的偏度>0,左偏分布(负偏分布)的偏度<0.如下图所示:

3、峰度:正态分布的偏度值为3;厚尾(峰度>3),瘦尾(峰度<3);主要是看概率密度函数的两侧(尾部):

原文地址:https://www.cnblogs.com/decade-dnbc66/p/5427943.html