Y a-t-il une fonction dans R qui adapte une courbe à un histogramme?
Disons que vous avez l'histogramme suivant
hist(c(rep(65, times=5), rep(25, times=5), rep(35, times=10), rep(45, times=4)))
Cela semble normal, mais il est biaisé. Je veux ajuster une courbe normale qui est biaisée pour s'enrouler autour de cet histogramme.
Cette question est assez basique, mais je n'arrive pas à trouver la réponse pour R sur Internet.
r
histogram
curve-fitting
r-faq
user5243421
la source
la source
Réponses:
Si je comprends bien votre question, vous voulez probablement une estimation de la densité avec l'histogramme:
Modifier longtemps plus tard:
Voici une version un peu plus habillée:
avec le graphique qu'il produit:
la source
lines(density(X,na.rm= TRUE)
car le vecteur peut contenir des valeurs NA.Une telle chose est facile avec ggplot2
ou pour imiter le résultat de la solution de Dirk
la source
Voici comment je le fais:
Un exercice bonus est de faire cela avec le package ggplot2 ...
la source
Dirk a expliqué comment tracer la fonction de densité sur l'histogramme. Mais parfois, vous voudrez peut-être aller avec l'hypothèse plus forte d'une distribution normale asymétrique et tracer cela au lieu de la densité. Vous pouvez estimer les paramètres de la distribution et la tracer à l'aide du package sn :
Cela fonctionne probablement mieux sur des données plus faussées-normales:
la source
J'ai eu le même problème mais la solution de Dirk ne semblait pas fonctionner. Je recevais ce message d'avertissement à chaque fois
J'ai lu
?hist
et trouvé surfreq: a logical vector set TRUE by default.
le code qui a fonctionné pour moi est
la source