今天主要学习了两个统计学的基本概念:峰度和偏度,并且用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);主要是看概率密度函数的两侧(尾部):