Ich habe den Vektor
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)
(mein tatsächlicher Vektor hat eine Länge von> 10.000) und ich möchte die Intervalle finden, in denen 90% der Dichte liegen. Ist quantile(x, probs=c(0.05,0.95), type=5)
das am besten geeignet oder gibt es einen anderen Weg?
Antworten:
Wie oben erwähnt, gibt es viele verschiedene Möglichkeiten, ein Intervall zu definieren, das 90% der Dichte enthält. Eines, auf das noch nicht hingewiesen wurde, ist das höchste [hintere] Dichteintervall ( Wikipedia ), das definiert ist als "das kürzeste Intervall, für das die Differenz der empirischen kumulativen Dichtefunktionswerte der Endpunkte die nominelle Wahrscheinlichkeit ist".
quelle
Es scheint sicherlich der einfachste Ansatz zu sein. Die Funktion ist ziemlich schnell. Ich verwende es ständig für Stichproben, die hunderte Male größer sind als die von Ihnen verwendete, und die Stabilität der Schätzungen sollte bei Ihrer Stichprobengröße gut sein.
Es gibt Funktionen in anderen Paketen, die vollständigere Sätze beschreibender Statistiken bereitstellen. Das
Hmisc::describe
, was ich benutze, ist , aber es gibt mehrere andere Pakete mitdescribe
Funktionen.quelle
Ihr Weg erscheint sinnvoll, insbesondere mit den diskreten Daten im Beispiel,
Eine andere Möglichkeit wäre die Verwendung eines Kernels mit berechneter Dichte:
quelle
Ja. :-). Möglicherweise ist die Ausgabe von
stats::density
nützlicher.quelle