如何在R中生成指数Q-Q图?对于正常的Q-Q图,我使用
qqnorm(sample)
答案 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就像他的例子中的数据长度一样。或者它只是一个打字错误?