普通描述性统计:平均值,众数, 中位数,四分位数,方差,标准差这些就不阐述了,初中就有。
但是我们要了解什么场合用什么值,比如一个城市人口的收入水平用什么衡量会好一点?
中位数
为了查看花萼长度分布情况我们可以作图看看
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.datasets import load_iris
from scipy import stats
import warnings
sns.set(style='darkgrid')
plt.rcParams['font.family'] = 'SimHei'
iris = load_iris()
# 我们这里为方便使用进行拼接
data = np.concatenate([iris.data, iris.target.reshape(-1,1)], axis=1)
# 众数
mode = stats.mode(data['sepal length (cm)']).mode[0]
# 均值
mean = data["sepal length (cm)"].mean()
# 中值
median = data["sepal length (cm)"].median()
sns.distplot(data["sepal length (cm)"], bins=10) # 质量分布图
plt.axvline(mean, ls='-', color='r', label='均值')
plt.axvline(median, ls='-', color='g', label='中位数')
plt.axvline(mode, ls='-', color='pink', label='众数')
plt.legend()
花萼长度分布
在这我们可以看到花萼的长度是接近正态的。
描述分布形状
峰度
峰度是描述总体中所有取值分布形态陡缓的统计量,他是比较标准正态分布而言的。
峰度大于零:方差小,形态高瘦
峰度小于零:方差大,形态矮胖
偏度
# 构造左偏分布数据
t1 = np.random.randint(1, 12, size=100)
t2 = np.random.randint(10,21, size=600)
t3 = np.concatenate([t1, t2])
left_skew = pd.Series(t3)
# 构造右偏分布数据
t1 = np.random.randint(1, 11, size=500)
t2 = np.random.randint(11,21, size=200)
t3 = np.concatenate([t1, t2])
right_skew = pd.Series(t3)
print('左偏偏度:', left_skew.skew(), '\n右偏偏度:', right_skew.skew())
sns.kdeplot(left_skew, shade=True, label='左偏')
sns.kdeplot(right_skew, shade=True, label='右偏')
plt.legend()
左偏和右偏
我们能看出偏度小于零数据为左偏,偏度大于零数据为右偏
网友评论