Dichteschätzung mit abgeschnittener Verteilung?

8

Ich habe einige Daten, die links deutlich abgeschnitten sind. Ich möchte es mit einer Dichteschätzung ausstatten, die es irgendwie handhabt, anstatt zu versuchen, es zu glätten.

Welche bekannten Methoden (wie in R üblich) können dies beheben?

Beispielcode:

set.seed(1341)
x <- c(runif(30, 0, 0.01), rnorm(100,3))
hist(x, br = 10, freq = F)
lines(density(x), col = 3, lwd = 3)

Geben Sie hier die Bildbeschreibung ein

Vielen Dank :)

Tal Galili
quelle
6
Dies ist ein schönes Beispiel für etwas, das gelegentlich als "Delta-Lognormalverteilung" bezeichnet wurde (wobei die x-Achse als Logarithmen interpretiert wird). Sie können es als eine Mischung aus einer kontinuierlichen Verteilung (die fast normal aussieht - aber die genaue Identifizierung liegt bei Ihnen) und einer Punktverteilung nahe 0 betrachten. Ein Mischungsmodell sollte gute Arbeit leisten. In diesem speziellen Fall ist der Abstand zwischen dem Atom in der Nähe von 0 und dem Rest der Daten so gut, dass es Ihnen gut geht, wenn Sie nur die Daten links (weniger als 0,5) entfernen und die Dichte des Restes schätzen.
whuber
2
In einigen Kontexten wird so etwas möglicherweise als Tweedie-Distribution bezeichnet , falls dies beim Erkunden hilfreich ist.
Kardinal
Kardinal - danke für den Hinweis! Whuber, ich interessiere mich mehr für den Teil nahe 0, daher ist Gregs Antwort unten großartig. Danke euch beiden.
Tal Galili

Antworten:

6

Das Logspline-Paket für R verfügt über die Oldlogspline-Funktion, mit der die Dichte anhand einer Mischung aus beobachteten und zensierten Daten geschätzt wird.

Greg Snow
quelle
5

Die Dichtefunktion hat auch einen fromParameter, der die am weitesten links stehende Seite "des Gitters angibt, auf dem die Dichte geschätzt werden soll". Fortsetzung des obigen Beispiels:

lines(density(x, from = 0), col = 4, lwd = 3)

Wie Sie sehen, ist dies jedoch genau die gleiche Verteilung ohne den fromParameter wie oben. Es beginnt gerade bei 0, das ist alles.

Mike T.
quelle