我已经在两种不同的视觉感知测试中测试了大量参与者——现在,我想看看这两种测试的表现在多大程度上相关。
为了可视化相关性,我使用 ggplot()
在 R 中绘制散点图,并拟合回归线(使用 stat_smooth()
)。但是,由于我的 x
和 y
变量都是性能度量,因此在拟合回归线时我需要将它们都考虑在内——因此,我不能使用简单的线性回归(使用 stat_smooth(method="lm")
),而是需要拟合正交回归(或总最小二乘法)。我该怎么做呢?
我知道我可以在 formula
中指定 stat_smooth()
,但我不知道要使用什么公式。据我了解,没有任何预设方法( lm, glm, gam, loess, rlm
)适用。
最佳答案
事实证明,您可以从 (x,y) 的主成分分析中提取斜率和截距,如 here 所示。这只是简单一点,在基础 R 中运行,并给出与在 Deming(...)
中使用 MethComp
相同的结果。
# same `x and `y` as @user20650's answer
df <- data.frame(y, x)
pca <- prcomp(~x+y, df)
slp <- with(pca, rotation[2,1] / rotation[1,1])
int <- with(pca, center[2] - slp*center[1])
ggplot(df, aes(x,y)) +
geom_point() +
stat_smooth(method=lm, color="green", se=FALSE) +
geom_abline(slope=slp, intercept=int, color="blue")
关于r - ggplot2:如何绘制正交回归线?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26995923/