geom_smooth () ¿cuáles son los métodos disponibles?

92

Estoy usando geom_smooth()de ggplot2.

En el libro de Hadley Wickham ("ggplot2 - Gráficos elegantes para análisis de datos") hay un ejemplo (página 51), donde method="lm"se usa. En el manual en línea no se habla del methodargumento. Veo otros resultados de Google (y preguntas aquí) de personas que usan method='loess'.

¿Existe una lista exhaustiva en alguna parte que explique las opciones?

Por lo que puedo ver, 'lm'dibuja una línea recta y 'loess'dibuja una curva muy suave. Supongo que hay otros que trazan una línea más irregular entre los puntos de referencia.

El seargumento del ejemplo tampoco se encuentra en la ayuda o la documentación en línea.

FWIW aquí está mi código.

p <- ggplot(output8, aes(age, myoutcome, group=id, colour=year_diag_cat2)) +
  geom_line() + scale_y_continuous(limits = c(lwr,upr))
p + geom_smooth(aes(group=year_diag_cat2), method="loess", size=2, se=F)
nzcoops
fuente
2
Las preguntas y respuestas están desactualizadas. La documentación actual enumera los argumentos: ggplot2.tidyverse.org/reference/geom_smooth.html
jan-glx
El enlace de @ StéphaneLaurent se ha movido (dado que ahora tiene más de 5 años): stats.idre.ucla.edu/r/faq/…
MokeEire

Respuestas:

38

A veces es hacer la pregunta lo que hace que la respuesta salte. Los métodos y argumentos adicionales se enumeran en la página stat_smooth del wiki de ggplot2 .

Al que se alude en la geom_smooth()página con:

"Consulte stat_smooth para ver ejemplos de cómo utilizar el ajuste de modelo integrado si necesita algo más flexible, este ejemplo le muestra cómo trazar los ajustes de cualquier modelo de su elección".

No es la primera vez que veo argumentos en ejemplos de gráficos ggplot que no están específicamente en la función. Hace que sea difícil determinar el alcance de cada función, o tal vez todavía no me he topado con una lista mágica explícita que dice qué funcionará y qué no funcionará dentro de cada función.

nzcoops
fuente
4
sí, la documentación es un poco desordenada. No me gusta cómo Springer cobra más de 40 dólares por el libro de Hadley, que contiene la información que falta en el sitio web.
wespiserA
@wespiserA ¿en qué sentido falta la información en el sitio web (o la ayuda del paquete)? nzcoops estaba buscando en el lugar equivocado. Eso no quiere decir que la ayuda para geom_smooth()no pueda mejorarse, digamos, haciendo una mención explícita de methody para ver stat_smooth(), en este momento esto solo sucede en un comentario en los ejemplos, y estoy seguro de que un correo electrónico educado a Hadley funcionaría. maravillas. Escribir la documentación es difícil, especialmente cuando estás tan cerca del código; como desarrollador, ya no es un usuario y le resultará difícil escribir documentación para los usuarios.
Gavin Simpson
1
@nzcoops la razón por la que no está documentado como un argumento geom_smooth()es que esa función no tiene o no acepta ese argumento. El código geom es para producir objetos que, cuando se imprimen, hacen el dibujo. La convención en ggplot es tener stat_foo()funciones, incluso hasta el punto de tenerlas stat_identity()cuando no quieres calcular nada. Dicho esto, Hadley agradece los comentarios / críticas de su código / paquetes, así que envíelo por correo electrónico y sugiera enlaces de mayor perfil entre la geom_documentación y su asociadostat_
Gavin Simpson
2
@Gavin, sí, le envié un correo electrónico a Hadley varias veces en el pasado, pensé que la pregunta seguía siendo valiosa aquí, dado que no tengo ninguna duda de que otros la buscarán en Google en algún momento. Sin embargo, su comentario sobre "no tiene ni acepta ese argumento" es incorrecto. Lo hace. Bien puede pasarlo a stat_smooth () pero lo 'toma' como muestran los ejemplos. Tampoco quería molestar a Hadley por algo que sabía que alguien podría responder rápidamente, aunque fuera yo mismo: /
nzcoops
23

El argumento del método especifica el parámetro de la estadística suave. Puede ver stat_smoothla lista de todos los argumentos posibles para el argumento del método.

wespiserA
fuente
Cambio de respuesta descarada @wespiser: P Lo dejaré pasar;)
nzcoops
sí, atrapaste mi engaño la primera vez. Después de eso, decidí investigar un poco y ¡descubrí lo que estaba pasando!
wespiserA
1

El argumento se del ejemplo tampoco está en la ayuda o la documentación en línea.

Cuando 'se' en geom_smooth se establece en 'FALSE', la región de sombreado de error no es visible

RAMYA HARIHARAN
fuente