在ggplot2中添加加权最小二乘趋势线

问题描述 投票:0回答:1

我正在使用 ggplot2 准备绘图,我想添加基于加权最小二乘估计的趋势线。

在基础图形中,这可以通过将 WLS 模型发送到

abline
:

来完成
mod0 <- lm(ds$dMNP~ds$MNP)
mod1 <- lm(ds$dMNP~ds$MNP, weights = ds$Asset)

symbols(ds$dMNP~ds$MNP, circles=ds$r, inches=0.35)
#abline(mod0)
abline(mod1)

在 ggplot2 中,我在

weight
中设置了参数
geom_smooth
但没有任何变化:

ggplot(ds, aes(x=MNP, y=dMNP, size=Asset) + 
  geom_point(shape=21) +
  geom_smooth(method = "lm", weight="Asset", color="black", show.legend = FALSE)

这给了我相同的情节

ggplot(ds, aes(x=MNP, y=dMNP, size=Asset) + 
  geom_point(shape=21) +
  geom_smooth(method = "lm", color="black", show.legend = FALSE)
r ggplot2 weighted trendline
1个回答
30
投票

我迟到了,但为了后代和清晰起见,这里是完整的解决方案:

ggplot(ds, aes(x = MNP, y = dMNP, size = Asset)) + 
  geom_point(shape = 21) +
  geom_smooth(
    method = "lm",
    mapping = aes(weight = Asset), 
    color = "black",
    show.legend = FALSE
  )

不要将重量名称放在引号中。

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.