Добавление взвешенной линии тренда наименьших квадратов в ggplot2

Я готовлю график с использованием 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)

1 ответ

Решение

Я опоздал, но для потомства и ясности, вот полное решение:

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)

Не указывайте название веса в кавычках.

Другие вопросы по тегам