使用 r 中的两个数据集将一条线拟合到 qqplot

Fitting a line to qqplot with two datasets in r

我有两个数据集,我使用 r 中的 qqplot 函数比较它们的分布。我想在图中画一条线,但 qqline 函数不合适,因为我们有两个数据集。请问我可以使用什么?

x <- rnorm(10000, 12, 3) 
y<- rnorm(10000, 18, 5)
qqplot(x,y)
abline(lm(y~x))

请记住,xy 的 qqplot 与 plot(sort(x), sort(y)) 相同:

x <- rnorm(10000, 12, 3) 
y <- rnorm(10000, 18, 5)

qqplot(x, y)


plot(sort(x), sort(y))

您示例中的问题是您试图在 x 上添加 y 的回归线,而不是 x 和 y 的 sorted 版本。实际上,您正在为此绘制回归线:

plot(x, y)

毫不奇怪,这是一条截距等于 y 平均值的几乎完美的直线。

相反,您可以回归 sorted y 和 sorted x 以获得 qqplot 的回归线:

x <- rnorm(10000, 12, 3) 
y <- rnorm(10000, 18, 5)

qqplot(x, y)
abline(lm(sort(y) ~ sort(x)), col = "red", lwd = 2, lty = 2)