显示 sqrt(y) ~ allocate(sqrt(x)) 与 `stat_poly_eq`、`stat_fit_tb` 或 `stat_fit_tidy` 的关系

问题描述 投票:0回答:1
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
返回相同的警告,但没有方程式。

感谢您的光临。

r ggplot2 equation lm ggpmisc
1个回答
0
投票

如果在绘图层中使用变换作为模型方程的一部分,则拟合函数将无法正确绘制,因为观测值不会进行变换。变换应该应用于尺度,特别是在 y 的情况下。公式中的xy是美学值。这适用于拟合线和方程。

最初计算失败,因为无法从模型公式推导出方向。这可以通过向

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"))

一旦错误修复,我将更新此答案。

© www.soinside.com 2019 - 2024. All rights reserved.