¿Existe una función en R que ajuste una curva a un histograma?
Digamos que tienes el siguiente histograma
hist(c(rep(65, times=5), rep(25, times=5), rep(35, times=10), rep(45, times=4)))
Parece normal, pero está sesgado. Quiero ajustar una curva normal que esté sesgada para envolver este histograma.
Esta pregunta es bastante básica, pero parece que no puedo encontrar la respuesta para R en Internet.
r
histogram
curve-fitting
r-faq
usuario5243421
fuente
fuente
Respuestas:
Si entiendo tu pregunta correctamente, probablemente quieras una estimación de densidad junto con el histograma:
Edite mucho tiempo después:
Aquí hay una versión un poco más elegante:
junto con el gráfico que produce:
fuente
lines(density(X,na.rm= TRUE)
ya que el vector puede contener valores NA.Eso es fácil con ggplot2
o para imitar el resultado de la solución de Dirk
fuente
Así es como lo hago:
Un ejercicio adicional es hacer esto con el paquete ggplot2 ...
fuente
Dirk ha explicado cómo trazar la función de densidad sobre el histograma. Pero a veces es posible que desee seguir el supuesto más sólido de una distribución normal sesgada y graficar eso en lugar de la densidad. Puede estimar los parámetros de la distribución y trazarlos usando el paquete sn :
Esto probablemente funcione mejor en datos que son más sesgados-normales:
fuente
Tuve el mismo problema, pero la solución de Dirk no pareció funcionar. Recibía este mensaje de advertencia cada vez
Leí
?hist
y encontré sobrefreq: a logical vector set TRUE by default.
el código que funcionó para mí es
fuente