Wikipédia signale que selon la règle de Freedman et Diaconis, le nombre optimal de casiers dans un histogramme, devrait croître comme
où est la taille de l'échantillon.
Cependant, si vous regardez la nclass.FD
fonction dans R, qui implémente cette règle, au moins avec les données gaussiennes et lorsque , le nombre de casiers semble croître plus rapidement que , plus proche de (en fait, le meilleur ajustement suggère ). Quelle est la justification de cette différence?
Modifier: plus d'informations:
La ligne est celle de l'OLS, avec une intersection de 0,429 et une pente de 0,4. Dans chaque cas, les données ( x
) ont été générées à partir d'un gaussien standard et introduites dans le nclass.FD
. Le tracé représente la taille (longueur) du vecteur par rapport au nombre optimal de classes renvoyé par la nclass.FD
fonction.
Citant de wikipedia:
Une bonne raison pour laquelle le nombre de casiers devrait être proportionnel à est la suivante: supposons que les données sont obtenues comme n réalisations indépendantes d'une distribution de probabilité bornée avec une densité lisse. Ensuite, l'histogramme reste également «robuste» car n tend vers l'infini. Si est la «largeur» de la distribution (par exemple, l'écart-type ou la plage inter-quartile), alors le nombre d'unités dans un casier (la fréquence) est d'ordre et l'erreur-type relative est d'ordre . Par rapport au bac suivant, la variation relative de la fréquence est d'ordre condition que la dérivée de la densité soit non nulle. Ces deux sont du même ordre siest d'ordre , de sorte que est d'ordre .
La règle Freedman – Diaconis est:
la source
Réponses:
La raison vient du fait que la fonction d'histogramme devrait inclure toutes les données, elle doit donc couvrir la plage des données.
La règle Freedman-Diaconis donne une formule pour la largeur des bacs.
La fonction donne une formule pour le nombre de bacs.
La relation entre le nombre de bacs et la largeur des bacs sera affectée par la plage des données.
Avec les données gaussiennes, la plage attendue augmente avec .n
Voici la fonction:
diff(range(x))
est la plage des données.Donc, comme nous le voyons, il divise la plage de données par la formule FD pour la largeur de bac (et arrondit) pour obtenir le nombre de bacs.
Il semble que j'aurais pu être plus clair, alors voici une explication plus détaillée:n−1/3 n n1/3
La règle Freedman-Diaconis réelle n'est pas une règle pour le nombre de bacs, mais pour la largeur de bac. D'après leur analyse, la largeur du bac devrait être proportionnelle à . Étant donné que la largeur totale de l'histogramme doit être étroitement liée à la plage d'échantillonnage (elle peut être un peu plus large, en raison de l'arrondi à de bons nombres) et que la plage attendue change avec , le nombre de casiers n'est pas tout à fait inversement proportionnel à bin-width, mais doit augmenter plus rapidement que cela. Donc, le nombre de casiers ne devrait pas augmenter comme - près de lui, mais un peu plus vite, en raison de la façon dont la plage entre en elle.
En regardant les données des tableaux de Tippett de 1925 [1], la plage attendue dans les échantillons normaux standard semble augmenter assez lentement avec , bien que plus lentement que :n log(n)
(en effet, amibe souligne dans les commentaires ci-dessous qu'elle devrait être proportionnelle - ou presque - à , ce qui croît plus lentement que votre analyse dans la question ne semble le suggérer. Cela me fait me demander s'il n'y a pas un autre problème à venir, mais je n'ai pas cherché à savoir si cet effet de plage explique pleinement vos données.)log(n)−−−−−√
Un rapide coup d'œil aux nombres de Tippett (qui vont jusqu'à n = 1000) suggère que la plage attendue dans un gaussien est très proche de linéaire dans sur , mais il semble pour ne pas être réellement proportionnelle aux valeurs de cette plage.log(n)−−−−−√ 10≤n≤1000
[1]: LHC Tippett (1925). "Sur les individus extrêmes et la gamme d'échantillons prélevés sur une population normale". Biometrika 17 (3/4): 364–387
la source