如何在R中生成指数Q-Q图?

时间:2014-04-21 11:03:25

标签: r statistics

如何在R中生成指数Q-Q图?对于正常的Q-Q图,我使用

qqnorm(sample)

3 个答案:

答案 0 :(得分:7)

编辑(反映@Dason的输入)。

像这样:

set.seed(1)          # for reproducibility 
Z <- rexp(1000)      # random sample from exponential distribution
p <- ppoints(100)    # 100 equally spaced points on (0,1), excluding endpoints
q <- quantile(Z,p=p) # percentiles of the sample distribution
plot(qexp(p) ,q, main="Exponential Q-Q Plot",
     xlab="Theoretical Quantiles",ylab="Sample Quantiles")
qqline(q, distribution=qexp,col="blue", lty=2)

答案 1 :(得分:5)

这是一个ggplot2解决方案。

Z <- rexp(1000, rate = 2)
library(MASS)
params <- as.list(fitdistr(Z, "exponential")$estimate)

library(ggplot2)
qplot(sample = Z, geom = 'blank') +
  stat_qq(distribution = qexp, dparams = params)

答案 2 :(得分:3)

R具有qqplot功能。 jlhoward将其“手动”并使用quantile函数计算数据的分位数。但在R中你不需要这样做。

set.seed(1)
data = rnorm(100, mean=5, sd=2)
qqplot(x=qexp(ppoints(100)), y=data, main="Exponential Q-Q Plot",
       xlab="Theoretical Quantiles", ylab= "Your Data Quantiles")
qqline(data, distribution=qexp)

click here to see R Plot(发布图片时我没有10个声誉)

我没有看到原因,为什么jlhoward只需要100分而不是1000就像他的例子中的数据长度一样。或者它只是一个打字错误?