数据特征分析-正太分布 (QQ图)

qq图通过把测试样本数据的分位数与已知分布进行比较,从而检验数据的分布情况。

qq图是一种散点图,对应于正态分布的qq图,就是有标准正态分布的分位数(分为点即分位数)为横坐标样本值为纵坐标的散点图。

分位点是指将一个随机变量的概率分布范围分为几个等份的数值点,常用的有中位数(即二分位数)、四分位数、百分位数等

参考直线:四分之一分位点和四分之三分位点,看散点是否落在这条线附近。

qq图绘制思路:

数据清洗后进行排序(x(1)<x(2)<...<x(n))

排序后,计算出每个数据对应的百分位p(i),即第i个数据x(i)为p(i)分位数,其中p(i) = (i-0.5)/n(pi有多种算法,该种最常用)

绘制直方图 + qq 图,直方图作为参考

 

# qq图判断
df = pd.DataFrame(np.random.randn(1000)+2,columns=['value'])
mean = df['value'].mean()
std = df['value'].std()
print('平均值为%.2f,标准差为%.2f'%(mean,std))
df.sort_values('value',inplace = True)
df_r = df.reset_index(drop = False) #t变为DataFrame
df_r['p'] = (df_r.index-0.5)/len(df_r)
df_r['q'] = (df_r['value']-mean)/std
print(df_r.head())
fig,axes = plt.subplots(1,3,figsize = (20,4))
des = df['value'].describe()
# x1,y1 = 0.25,des['25%']
# x2,y2 = 0.75,des['75%']

ax1 = axes[0]
ax1.scatter(df.index,df['value'])

ax2 = axes[1]
df['value'].hist(bins = 20,ax = ax2)
df['value'].plot(kind='kde',secondary_y = True,ax = ax2)

ax3 = axes[2]
ax3.plot(df_r['p'],df_r['value'],'b')
# ax3.plot([x1,x2],[y1,y2],'r')
ax3.plot([0.25,0.75],[des['25%'],des['75%']],'r')

1)若是检验一组数据是否来自某个分布,分布函数为F(x),通常图的纵坐标为排好序的实际数据(次序统计量:x(1)<x(2)<....<x(n)),可以称之为经验分位点。横坐标为这些数据的理论分位点,所谓理论分位点是这样得到的,先算出各个排好序的数据对应的百分比p(i),即第i个数据x(i)为p(i)分位数,其中p(i)=(i-0.5)/n,这里p(i)有很多种算法,有的定义为i/(n+1)等等,则x(i)对应的理论分位点为F^(-1)(p(i))=F^(-1)((i-0.5)/n),这也就是横坐标的值。其中为什么不把p(i)定义为i/n呢?有解释说,若这样定义,则最大的那个数对应的p(n)=1,这样很多分布函数的F^(-1)=infinity,这样无法在坐标上表示出来,所以稍作修改。QQ图的横纵坐标定义好后,则可在图上做出散点图来,然后再在图上添加一条直线,这条直线就是用于做参考的,看散点是否落在这条线的附近。直线由四分之一分位点和四分之三分位点这两点确定的,四分之一分位点的坐标中横坐标为实际数据的四分之一分位点(quantile(data,0.25)),纵坐标为理论分布的四分之一分位点(qF(0.25)),四分之三分位点类似,这两点就刚好确定了QQ图中的直线。

(2)若是检验两组数据是否来自同一个分布函数F(x),则直接将两组数据的各自的理论分位点当作横纵坐标,然后看是否在一条直线的附近。此种方法对于两组数据数量不一致的时候,需要用插值法,将数据少的那组数据通过插值的方法补齐。在R中qqplot就在进行这件事情。或者将两个QQ图放在一起,将两组数据用不同的颜色标识,看两组数据是否离得很近

  • 2
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值