回答:
最も簡単な方法は、qqplot
動作を確認することです。したがって、Rタイプでは:
R> qqplot
function (x, y, plot.it = TRUE, xlab = deparse(substitute(x)),
ylab = deparse(substitute(y)), ...)
{
sx <- sort(x)
sy <- sort(y)
lenx <- length(sx)
leny <- length(sy)
if (leny < lenx)
sx <- approx(1L:lenx, sx, n = leny)$y
if (leny > lenx)
sy <- approx(1L:leny, sy, n = lenx)$y
if (plot.it)
plot(sx, sy, xlab = xlab, ylab = ylab, ...)
invisible(list(x = sx, y = sy))
}
<environment: namespace:stats>
したがって、プロットを生成するには、sx
とを取得する必要がありますsy
。つまり、
x <- rnorm(10);y <- rnorm(20)
sx <- sort(x); sy <- sort(y)
lenx <- length(sx)
leny <- length(sy)
if (leny < lenx)sx <- approx(1L:lenx, sx, n = leny)$y
if (leny > lenx)sy <- approx(1L:leny, sy, n = lenx)$y
require(ggplot2)
g = ggplot() + geom_point(aes(x=sx, y=sy))
g
ggplot2
持っていないstat_qq()
、それを使用するためのいくつかの方法がありますか?1つのベクトルを理論上の分布と比較するように設計されているようですが、2つの異なるベクトルを比較する方法を確認できませんでした。
qqplot()
、すべてやってsort
/ length
/ approx
あなたのための計算を: d <- as.data.frame(qqplot(x, y, plot.it=FALSE)); ggplot(d) + geom_point(aes(x=x, y=y))
通常のラインも欲しいときに使います。
ggplot(data, aes(sample = data$column1)) + stat_qq(color="firebrick2", alpha=1) + geom_abline(intercept = mean(data$column1), slope = sd(data$column1))