require(utils)
x = runif(n = 10, min = 0.2, max = 1)
y = rnorm(n = 10, mean = 2.5, sd = .5)
df = expand.grid(x = x,
y = y)
我使用下面的代码绘制了
sqrt(y) ~ assign(sqrt(x))
关系并在图表上显示了方程。回归线显示了,但方程没有显示。
ggplot(df , aes(x = x, y = y)) +
geom_point() +
geom_smooth( method = "lm", se = TRUE, formula = sqrt(y) ~ asin(sqrt(x)), col = "black") +
stat_poly_eq(mapping = aes(label = after_stat(eq.label)),
formula = sqrt(y) ~ asin(sqrt(x)))
Warning: [38;5;254mComputation failed in `stat_poly_eq()`[39m
代码示例来自 https://cran.r-project.org/web/packages/ggpmisc/vignettes/model-based-annotations.html#stat_poly_eq-and-stat_poly_line
stat_fit_tb
或 stat_fit_tidy
返回相同的警告,但没有方程式。
感谢您的光临。
如果在绘图层中使用变换作为模型方程的一部分,则拟合函数将无法正确绘制,因为观测值不会进行变换。变换应该应用于尺度,特别是在 y 的情况下。公式中的x和y是美学值。这适用于拟合线和方程。
最初计算失败,因为无法从模型公式推导出方向。这可以通过向
orientation = "x"
传递参数来解决。然而,解决这个问题后,在计算 R2 的置信区间时会触发新的错误。第二个错误是“ggpmisc”包中的错误。置信区间计算失败应该得到更好的处理,通过返回置信限的 NA 而不是无法返回所有输出。
修复错误后,下面的代码应该可以工作。 (我不仅修复了代码中的错误,而且还尽可能地简化了它。)
ggplot(df , aes(x = asin(sqrt(x)), y = sqrt(y))) +
geom_point() +
stat_poly_line() +
stat_poly_eq(use_label("eq"))
一旦错误修复,我将更新此答案。