QQ图的主要作用是判断样本是否近似于某种类型的分布,这里的“QQ”是两个Quantiles的大写字母,即两个分位数,一个是样本分位数(Sample Quantiles),一般画在纵轴,一个是理论分位数(Theoretical Quantiles),一般画在横轴。
以正态分布为例,qqnorm()是判断样本是否近似于正态分布的函数。针对拟判断的样本变量,运行完上述代码,可以得到QQ图。
运行完结果后,我们想知道结果是怎么计算出来的,换句话说这个(x,y)形式的二维的散点图的坐标是如何确定的。要回答这个问题需要先从qqnorm()入手,把QQ图的结果保存到变量中,再对这个变量进行分析。
返回结果会发现q是一个列表变量
变量q$y是样本分位数,也是刚才随机产生的100个样本的值,即和变量n是完全一样的,为了验证,如果运行下面的代码,会得到100个“TRUE”
接下来讨论这个q$x,q$x是理论分位数,之所以是“理论”,指的是如果按照正态分布的假设(qqnorm对应的是正态分布假设,qqpois对应的是泊松分布的假设),这个分位数的理论值应该是多少。例如如果有5个样本,那么理论分位数应该给出的是20%,40%,60%,80%,100%的分位数,但是100%的分位数一般会无限大,因此在这里需要进行一下数据处理,找一个“近似”的理论样本,来替代“真正”的理论样本。在这里问题就在这个“近似”的理论样本的数据处理方法。举个例子,假设P()为正态分布函数,是正态分布函数的反函数,假设一共有N个样本,则第n个样本的“真正”的理论样本分位数应该是\[P^{-1}\left ( \ \right )\],即概率等于n/N时的分位数。关于第n个样本的“近似”的理论样本分位数,数据处理方法有不同版本解释,有人认为是\[P^{-1}\left ( \frac{n-0.5}{N}\right )\](https://bbs.pinggu.org/forum.php?mod=viewthread&tid=2141131&page=1),在薛毅和陈立萍的《统计建模与R软件》(清华大学出版社,2007年)中,计算公式则是\[P^{-1}\left ( \frac{n-0.375}{N+0.25}\right )\],见下图。
我编了几行代码对这个公式进行了验证,结论是用哪一种数据处理方法取决于样本的数量N。如果N小于等于10的时候,分位数的取值应该是\[P^{-1}\left ( \frac{n-0.375}{N+0.25}\right )\],如果样本的数量N大于10,分位数的取值应该是\[P^{-1}\left ( \frac{n-0.5}{N}\right )\]。代码如下。
得到结果如下,验证了上述结论: