如何判断数据是否服从某一分布——qq图法

参考文章:https://mp.weixin.qq.com/s/_UTKNcOgKQcCogk2C2tsQQ

1 怎样利用qq图判断两个分布是否同分布

怎样判断两个分布是否同分布(由同一个分布总体中随机抽取得到):直观来看就是画出两个分布的累积分布曲线,如果基本重合说明是同分布。

qq图就是根据两个累积分布曲线,设定一系列累计概率,然后求出同一累计概率对应的分位数分别作为x和y来画散点图,如果散点基本分布在y=x这条直线上说明两个累积分布曲线基本吻合,认为两个数据是同分布的。

2 怎样利用qq图判断某个分布是否服从正态分布

首先观察几个正态累积分布曲线的特点

x1=seq(from=-4,to=4,length.out=10000)
y1=pnorm(x1,0,1)
y2=pnorm(x1,1,1)
y3=pnorm(x1,0,2)
dat1=data.frame(x1,y1)
dat2=data.frame(x1,y2)
dat3=data.frame(x1,y3)

ggplot()+
  geom_line(data=dat1,aes(x=x1,y=y1),color='#228B22',size=1)+
  geom_line(data=dat2,aes(x=x1,y=y2),color='#1E90FF',size=1)+
  geom_line(data=dat3,aes(x=x1,y=y3),color='#FF0000',size=1)+
  theme(panel.grid=element_blank(),panel.background=element_rect(fill='white', color='black',size=0.5),axis.text.x=element_text(size=18),axis.title.x=element_text(size=22,face='bold'),axis.text.y=element_text(size=18),axis.title.y=element_text(size=22,face='bold'),legend.title = element_text(size=22,face='bold'),legend.text = element_text(size=18))
  

在这里插入图片描述
从图中可以看出正态累积分布曲线关于平均值对称,而且标准差越小分布越窄。

两个正态分布-标准正态分布的qq图

#设定累计概率y1来求不同分布的分位数
q1=qnorm(y1,0,1)  
q2=qnorm(y1,1,1) 
q3=qnorm(y1,0,2) 
dat_q=data.frame(q1,q2,q3)
#以标准正态分布的分位数为x,另外两个分布的分位数为y作散点图
ggplot(data=dat_q)+
  geom_point(aes(x=q1,y=q2),color='#1E90FF',size=1)+
  geom_point(aes(x=q1,y=q3),color='#FF0000',size=1)+
  geom_vline(xintercept = 0,color='grey')+
  geom_hline(yintercept = 0,color='grey')+
  scale_x_continuous(limits=c(-4,4),n.breaks = 9)+
  scale_y_continuous(limits=c(-4,4),n.breaks = 9)+
  theme(axis.text.x=element_text(size=18),axis.title.x=element_text(size=22,face='bold'),axis.text.y=element_text(size=18),axis.title.y=element_text(size=22,face='bold'),legend.title = element_text(size=22,face='bold'),legend.text = element_text(size=18))

在这里插入图片描述
从图中可以看出:
1.如果两个分布类型相同,散点分布在一条直线上:
将两个分布标准化后,肯定会得到等式y=kx+b
2.当x分布为标准正态分布时,直线截距代表y分布的平均值,直线斜率代表y分布的标准差。公式推导参考文章:https://mp.weixin.qq.com/s/_UTKNcOgKQcCogk2C2tsQQ

3 正态qq图应用举例

#假设y为待测试数据,x为标准正态分布
y=rnorm(100,2,2)+runif(100,0,0.5)
x=rnorm(100,0,1)
#设定一系列累计概率
p=seq(from=0,to=1,length.out=100)
#求出同一累计概率对应的分位数
qy=quantile(y,p)
qx=quantile(x,p)
dat=data.frame(qx,qy)
#作图
ggplot(data=dat)+
  geom_point(aes(x=qx,y=qy),color='#1E90FF',size=2)+
  geom_smooth(aes(x=qx,y=qy),method='lm',formula='y~x',color='red')+
  scale_y_continuous(n.breaks = 10)+
  theme(axis.text.x=element_text(size=18),axis.title.x=element_text(size=22,face='bold'),axis.text.y=element_text(size=18),axis.title.y=element_text(size=22,face='bold'),legend.title = element_text(size=22,face='bold'),legend.text = element_text(size=18))

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值