Nun, zuerst sah ich dies als Tippfehler, aber nach ein paar Diskussionen in den Kommentaren beschloss ich, eine Antwort zu schreiben.
Der Fehler tritt bei quantile
auf, da probs
zwischen 0 und 1 liegen sollte (lesen Sie ?quantile
).
Es sieht aus wie Sie mit den folgenden beiden verwechselt wurden:
cut(x, breaks = seq(0, 100000, 10000), include.lowest = TRUE)
cut(x, breaks = quantile(x, prob = seq(0, 1, 0.1)), include.lowest = TRUE)
Wie gesagt, werden sie anderes Ergebnis geben, vor allem, wenn die Daten nicht gleichmäßig verteilt.
Als repräsentatives Beispiel, ungleichmäßig verteilten Daten betrachten, sagen Beta verteilt:
set.seed(0)
x <- rbeta(10000, 3, 5)
b1 <- seq(0, 1, 0.1)
b2 <- quantile(x, prob = seq(0, 1, 0.1), names = FALSE)
round(b2, 2)
# [1] 0.01 0.17 0.23 0.28 0.32 0.37 0.41 0.46 0.52 0.60 0.94
Hinweis, der Unterschied zwischen b2
und b1
signifikant sind. Sie können die (empirische) Quantil-Quantil Grundstück inspizieren:
plot(b1, b2); abline(0, 1)
Sie werden die Punkte sehen stark von der Linie abweicht.
In oben gibt b1
einheitliche bin-Zellen, während b2
zackige bin-Zellen gibt. Betrachten Sie jetzt die Anzahl der Behälter:
table(cut(x, breaks = b1, include.lowest = TRUE))
# [0,0.1] (0.1,0.2] (0.2,0.3] (0.3,0.4] (0.4,0.5] (0.5,0.6] (0.6,0.7] (0.7,0.8]
# 256 1239 2011 2242 1948 1323 685 245
#(0.8,0.9] (0.9,1]
# 48 3
table(cut(x, breaks = b2, include.lowest = TRUE))
#[0.0101,0.169] (0.169,0.228] (0.228,0.276] (0.276,0.321] (0.321,0.365]
# 1000 1000 1000 1000 1000
# (0.365,0.412] (0.412,0.463] (0.463,0.519] (0.519,0.598] (0.598,0.935]
# 1000 1000 1000 1000 1000
Haben Sie den Unterschied gesehen? Wenn wir Bruchpunkte nach Quantil setzen, haben wir einheitliche Zählungen über den Bins.
Ich kann den Datensatz nicht teilen. Wir können annehmen, dass der Betrag eine numerische Variable mit einem Wert zwischen 1 und 100.000 ist. Jedes Beispiel, wie man richtig stopft, hilft – goutam
@ZheyuanLi Irgendeine Idee, wie und warum sie unterschiedlich sind? Irgendwelche Links dazu lesen? – goutam