2017-02-28 3 views
1

Je prépare un tracé en utilisant ggplot2 et je souhaite ajouter une courbe de tendance basée sur une estimation des moindres carrés pondérés.Ajout d'une courbe de tendance des moindres carrés pondérés dans ggplot2

Dans les graphiques de base cela peut être fait en envoyant un modèle 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) 

dans ggplot2 Je mets l'argument weight dans geom_smooth mais rien ne change:

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

cela me donne la même tracé que

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

Pouvez-vous ajuster ceci à un jeu de données intégré pour la reproductibilité? –

+4

Vous pouvez mettre 'weight' dans' aes' et 'geom_smooth' l'utilisera –

Répondre

1

Je suis en retard, mais pour la postérité et la clarté, voici la solution complète:

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) 

Ne mettez pas le nom de poids entre guillemets.