J'ai le vecteur
x <- c(1,2,3,4,5,5,5,6,6,6,6,
7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,
7,7,7,7,7,7,7,7,8,8,8,8,9,9,9,10)
(mon vecteur réel a une longueur> 10 000) et je voudrais trouver les intervalles où se trouvent les 90% de la densité. Est-ce quantile(x, probs=c(0.05,0.95), type=5)
le plus approprié ou existe-t-il une autre manière?
Réponses:
Comme indiqué ci-dessus, il existe de nombreuses façons différentes de définir un intervalle qui comprend 90% de la densité. Celui qui n'a pas encore été souligné est l' intervalle de densité [postérieure] le plus élevé ( wikipedia ), qui est défini comme "l'intervalle le plus court pour lequel la différence dans les valeurs empiriques de la fonction de densité cumulative des points terminaux est la probabilité nominale".
la source
Cela semble certainement l'approche la plus simple. La fonction est assez rapide. Je l'utilise tout le temps sur des échantillons qui sont des centaines de fois plus gros que celui que vous utilisez, et la stabilité des estimations devrait être bonne à la taille de votre échantillon.
Il existe des fonctions dans d'autres packages qui fournissent des ensembles plus complets de statistiques descriptives. Celui que j'utilise est
Hmisc::describe
, mais il existe plusieurs autres packages avec desdescribe
fonctions.la source
Votre chemin semble sensé, surtout avec les données discrètes de l'exemple,
mais une autre façon serait d'utiliser un noyau de densité calculé:
la source
Oui. :-). Vous pouvez trouver la sortie de
stats::density
plus utile.la source