Die Diskrepanz ergibt sich aus einer Mehrdeutigkeit in der Definition von Quantile. Keine einzelne Methode ist streng korrekt oder falsch - es gibt einfach verschiedene Möglichkeiten, um Quantile in Situationen zu schätzen (z. B. eine gerade Anzahl von Datenpunkten), wenn sie nicht genau mit einem bestimmten Datenpunkt übereinstimmen und interpoliert werden müssen. Etwas irritierend, boxplot
und quantile
(und andere Funktionen, die zusammenfassende Statistiken zur Verfügung stellen) verwenden verschiedene Standardmethoden Quantile zu berechnen, obwohl diese Standardwerte sein, die type =
Argument übergangen Verwendung in quantile
wir diese Unterschiede in Aktion klarer sehen können
boxplot.stats(X)$stats
# [1] 18.0 25.5 32.0 48.0 63.0
fivenum(X)
# [1] 18.0 25.5 32.0 48.0 63.0
: um einige der verschiedenen Möglichkeiten suchen, Quantil Statistiken in R.
Beide boxplot
und fivenum
geben die gleichen Werte zu erzeugen, In boxplot
und fivenum
ist der untere (obere) Quartil entspricht den Median der unteren (oberen) Hälfte der Daten (einschließlich den Median der vollständigen Daten):
c(median(X[ X <= median(X) ]), median(X[ X >= median(X) ]))
# [1] 25.5 48.0
Aber quartile
und summary
Dinge tun, anders:
summary(X)
# Min. 1st Qu. Median Mean 3rd Qu. Max.
# 18.00 26.25 32.00 35.75 46.50 63.00
quantile(X, c(0.25,0.5,0.75))
# 25% 50% 75%
# 26.25 32.00 46.50
Der Unterschied zwischen diesem und den Ergebnissen von boxplot
und fivenum
hängt davon ab, wie die Funktionen Interpolation zwischen Daten. quartile
versucht, durch Schätzen der Form der kumulativen Verteilungsfunktion zu interpolieren.Nach ?quantile
:
Quantils Erträgen Schätzungen der zugrunde liegenden Verteilung quantiles basierend auf einer oder zwei Ordnungsstatistiken aus den gelieferten Elementen in x bei Wahrscheinlichkeiten in probs. Einer der neun Quantilsalgorithmen, die in Hyndman und Fan (1996) diskutiert wurden, ist , ausgewählt nach Typ.
Die vollständigen Details der neun verschiedenen Methoden quantile
beschäftigen die Verteilungsfunktion der Daten abzuschätzen, kann in ?quantile
, und ist zu lang fand hier in voller Länge zu reproduzieren. Der wichtige Punkt zu beachten ist, dass die 9 Methoden stammen von Hyndman und Fan (1996), der Typ 8 empfohlen. Die Standardmethode von quantile
ist Typ 7, aus historischen Gründen der Kompatibilität mit S. Wir können die Schätzungen der zu sehen Verwendung Quartile mit verschiedenen Methoden in Quantil bereitgestellt:
quantile_methods = data.frame(q25 = sapply(1:9, function(method) quantile(X, 0.25, type = method)),
q50 = sapply(1:9, function(method) quantile(X, 0.50, type = method)),
q75 = sapply(1:9, function(method) quantile(X, 0.75, type = method)))
# q25 q50 q75
# 1 24.0000 30 45.000
# 2 25.5000 32 48.000
# 3 24.0000 30 45.000
# 4 24.0000 30 45.000
# 5 25.5000 32 48.000
# 6 24.7500 32 49.500
# 7 26.2500 32 46.500
# 8 25.2500 32 48.500
# 9 25.3125 32 48.375
in dem type = 5
die gleichen geschätzten Werte der Quartile bestimmt boxplot
tut. Wenn es jedoch eine ungerade Anzahl von Daten gibt, wird type=7
mit den Boxplot-Statistiken übereinstimmen.
Wir können dies zeigen, indem wir automatisch den Typ auswählen, der entweder 5 oder 7 ist, abhängig davon, ob gerade oder ungerade Daten vorhanden sind. Boxplot in Bild unten zeigen Quantile für Datensätze mit 1 bis 30 Werte, mit boxplot
und quantile
die gleichen Werte für das Geben beide ungerade und gerade N:
layout(matrix(1:30,5,6, byrow = T), respect = T)
par(mar=c(0.2,0.2,0.2,0.2), bty="n", yaxt="n", xaxt="n")
for (N in 1:30){
X = sample(100, N)
boxplot(X)
abline(h=quantile(X, c(0.25, 0.5, 0.75), type=c(5,7)[(N %% 2) + 1]), col="red", lty=2)
}
Hyndman, RJ und Fan , Y. (1996) Beispiel-Quantile in statistischen Paketen, American Statistician 50, 361-365
btw, 'boxplot' gibt ein Objekt zurück, das nach Bedarf verwendet werden kann:' bX = boxplot (X); abline (h = bX $ stats [c (2, 4), 1], col = "rot", lty = 2) ' –