2017-09-12 8 views
3

Bonjour à tous. Donc, je sais que cela doit être assez basique, mais quelle est la façon correcte et précise de tracer le pdf de certains exemples de données que vous connaissez proviennent de certains pop. distribution, comme si vous l'avez généré en utilisant rnorm() ou rexp()?La bonne façon de tracer PDF d'un échantillon de données?

La raison pour laquelle je demande est parce que je sais que beaucoup de gens utilisent density(), puis entrez que dans plot(), mais la fonction density() semble trop arbitraire pour être précis; par exemple, il est inexact lorsqu'il se rapproche de la valeur négative pour les données provenant de la distribution exponentielle, qui ne possède pas nég. valeurs.

Donc, quelqu'un pourrait-il me recommander une méthode plus affinée pour accomplir le pdf de l'échantillon de traçage?

+1

Une question similaire (ou au moins connexe), on a demandé à [stats.se] - mon [réponse] (https://stats.stackexchange.com/a/71291/1390) couvre le bit sur les valeurs négatives invraisemblables pour une variable. –

Répondre

1

La fonction density effectue l'estimation de la densité du noyau (KDE). Pour trouver le meilleur KDE pour votre jeu de données, vous devez régler la bande passante (paramètre bw). Voici un document qui traite de KDE et la sélection de la bande passante: http://www.stat.washington.edu/courses/stat527/s13/readings/Sheather_StatSci_2004.pdf

Ou pour une approche plus simple, vous pouvez essayer différentes méthodes de bande passante pour passer à bw: https://stat.ethz.ch/R-manual/R-devel/library/stats/html/bandwidth.html

La valeur par défaut actuelle, « nrd0 », est là pour raisons historiques. Je trouve que "ucv" et "bcv" ont mieux fonctionné pour mes jeux de données.

+1

Si la valeur des données est proche de 0, la densité sera toujours considérée comme négative si vous ne disposez pas d'une très petite bande passante. –

0

ggplot aide à prendre soin des valeurs négatives lorsqu'elles ne sont pas appropriées. Il peut être utilisé de la manière suivante:

ggplot(df, 
     aes(x=contVar, fill = "green")) + 
    geom_density(alpha=.3) 

Je voudrais aussi jeter un oeil à ce poste dans cross validated

+0

Bien que je pensais que la réponse ci-dessus répondait à ma question d'une manière plus technique et approfondie, votre lien est une excellente ressource et je tiens à vous en remercier. – Coolio2654