qqplot反对理论分位数

时间:2014-02-06 18:37:16

标签: r plot statistics

我希望能够对理论分位数做qqplots。我已经知道qqnorm()为正态分布做了这个,但这对我来说是一个非常有限的工具。此外,我注意到有些人模拟来自给定分布的随机过程并使用它来与样本数据进行比较,这不完全严格,因为它取决于模拟方法。所以我的例子是将样本数据与几何分布进行比较:

#sample data
var=rgeom(prob=0.3, n=100)

#QQplot against a theoretical geometric distribution with prob=0.5

2 个答案:

答案 0 :(得分:1)

您可以使用ggplot2包轻松制作此类地图:

library(ggplot2)
qplot(sample = var, geom = "point", stat = "qq", 
      distribution = qgeom, dparams = list(prob = 0.5))

理论分位数(x轴)是从概率为0.5的几何分布导出的。 enter image description here

更新(根据评论中的问题):

可以通过以下方式添加线条,但它不太适合几何分布。该方法基于this answer

qv <- quantile(var, c(.25, .75))
qt <- qgeom(prob = 0.5, c(.25, .75))
slope <- diff(qv)/diff(qt)
int <- qv[1] - slope * qt[1]

qplot(sample = var, geom = "point", stat = "qq", 
      distribution = qgeom, dparams = list(prob = 0.5)) + 
  geom_abline(slope = slope, intercept = int)

enter image description here

答案 1 :(得分:0)

Q-Q图是随机样本的分位数与测试分布的分位数的关系图。所以,

plot(qgeom(seq(0,1,length=100),.3),quantile(var,seq(0,1,length=100)))