Добавление взвешенной линии тренда наименьших квадратов в 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)
Не указывайте название веса в кавычках.