描述性统计

学习笔记
作者: MingXiao 2024/07/12


3.1 分位 Quantiles

几个常见的分位数:

  1. median 二分位 1/2
  2. tercile 三分位 1/3
  3. quartile 四分位 1/4
  4. quintile 五分位 1/5
  5. decile 十分位 1/10
  6. percentile 百分位 1/100
python代码click pd.DataFrame.quantile(q=[0.25,0.5,0.75])


3.2 数据的集中趋势 Central Tendency

平均值 mean
众数 mode
中位数 median

Mean
有n个观测值的样本\(\{x_i\vert i=1,2,\ldots,n\}\)定义
算术平均:\(\overline{x}=\frac{x_1+x_2+\ldots+x_n}{n}\)
几何平均:\(\overline{x_g}=\sqrt[n]{x_1 x_2\ldots x_n}\)
调和平均:\(\overline{x_H}=\frac{n}{\frac{1}{x_1}+\frac{1}{x_2}+\ldots+\frac{1}{x_n}}\)

Mode
可以是数据型的,也可以是类别型的

Median
若有偶个数,则任意取两个数平均,取低,取高都行

python代码click 一个常用的库:statistics
import statistics as sta
sta.mean 求平均
sta.median 求中位数
sta.median_low 求低位中位数
stat.median_high 求高位中位数
sta.mode 求众数
sta.geometric_mean 求几何平均数
sta.harmonic_mean 求调和平均数
import scipy.stats as stats
stats.trim1() # 数据单边按比例截断,仅截尾
stats.trimboth() # 数据双边按比例截断,仅截尾
截断后统计量计算
stats.trim_mean()
stats.tmean()
stats.tvar()
stats.tstd()


3.3 描述数据的分散性

极差 Range \(Range=x_{(n)}-x_{(1)}\)
变异系数 Coefficient of variation \(cv=\frac{\sigma}{\mu}=\frac{\mathcal{s}}{\mathcal{m}}\)
方差 Variation \(\mathcal{s}^2=\frac{\sum(x_i-\mathcal{m})^2}{n-1}\)
标准差 Standard Deviation \(\sigma,\mathcal{s}\)

python代码click import statistics as sta
sta.psdev() 求总体的标准差 Population Standard Deviation
sta.pvariance() 求总体的方差
sta.stdev() 求样本的标准差 Sample Standard Deviation
sta.variance() 求样本的方差


3.4 描述数据的分布·

峰度 kurtosis
偏度 skewness
变异系数 coefficient of variation

峰度 Pearson's Kurtosis: \(Kurtosis(x)=E[(\frac{x-\mu}{\sigma})^4]=\beta_2=\frac{\mu_4}{\sigma^4}\)
对于正态分布,上式恒等于3 Fisher's Kurtosis/Excess of Kurtosis = Pearson's Kurtosis - 3
FK=0时,为高斯分布

Fk>0时,为超高斯分布

FK<0时,为欠高斯分布

偏度
\(Skewness=\widetilde{\mu_3}=E[(\frac{X-\mu}{\sigma})^3]=\frac{\mu_3}{\sigma^3}\)


上图中,左边是向左偏、偏度<0,右边是向右偏、偏度>0(看尾巴)
注意,当偏度=0时仅能说明对称分布,不能说明正态性

变异系数
\(CoV=\frac{\sigma}{\mu}\times 100\%=\frac{\mathcal{s}}{\mathcal{m}}\times 100\%\)
用途:

  1. 比较不同数据集的离散程度
  2. 无量纲
缺点:当均值接近0时不好用
python代码click import scipy.stats as stats
stats.skew() 求偏度
stats.kurtosis(data, fisher=True) 求峰度
stats.variation() 求CoV


Comments