Summe der normal abgeschnittenen Zufallsvariablen


8

Angenommen, ich habe unabhängige normale Zufallsvariablenn

X1N(μ1,σ12)X2N(μ2,σ22)XnN(μn,σn2)

und . Wie würde ich die Dichte von charakterisieren, wenn die Verteilung jedes jeweils auf das abgeschnitten wäre ? Mit anderen Worten, ich nehme Stichproben aus n unabhängigen Normalverteilungen, verwerfe Stichproben, die nicht innerhalb von 2 \ sigma_i von jedem Mittelwert liegen, und summiere sie. Y X i ( μ i - 2 σ i , μ i + 2 σ i ) n 2 σ iY=X1+X2++XnYXi(μi2σi,μi+2σi)n2σi

Im Moment mache ich das mit dem R-Code unten:

x_mu <- c(12, 18, 7)
x_sd <- c(1.5, 2, 0.8)
a <- x_mu - 2 * x_sd
b <- x_mu + 2 * x_sd

samples <- sapply(1:3, function(i) {
  return(rtruncnorm(100000, a[i], b[i], x_mu[i], x_sd[i]))
})

y <- rowSums(samples)

Gibt es eine Methode, um die Dichte von Y direkt zu erzeugen ?


2
Ihre Frage impliziert , Sie kennen alle die . Ist das wirklich der Fall oder schätzen Sie sie? Es gibt einen großen Unterschied! Warum werfen Sie aus Neugier solche Daten weg? Abhängig von Ihren Zielen vermute ich, dass es (viel) bessere Verfahren gibt. σi
whuber

Ich kenne alle Mittel und SDs für meine Daten, ja.
Devin

7
Ich glaube, dass man es als "Chaos" bezeichnen könnte. Dieses Papier, jstor.org/stable/2236545 , untersucht die Angelegenheit mit wissenschaftlicher Genauigkeit.
Alecos Papadopoulos

2
Außerhalb der Annäherung über CLT ist dies relativ schwierig. Ich denke, wenn klein genug ist, könnten Sie versuchen, numerische Faltung. n
Glen_b -State Monica

2
@Silverfish Abhängig von der Implementierung, der Plattform und der Verträglichkeit eines Rasters sollten Hunderte in Ordnung sein (möglicherweise mehr). Abgesehen von der Geschwindigkeit muss man jedoch bei genügend Begriffen viel sorgfältiger mit Details der Implementierung umgehen, da sonst eine Reihe von numerischen Problemen auftreten können.
Glen_b -State Monica

Antworten:


2

Sie können die Approximation mit Sattelpunktmethoden für die Summe der abgeschnittenen Normalen verwenden. Ich werde jetzt nicht auf die Details eingehen. Sie können meine Antwort auf die allgemeine Summe der Gamma-Verteilungen nach Hinweisen durchsuchen. Was wir brauchen, ist die Momenterzeugungsfunktion für eine abgeschnittene Normalen zu finden, was einfach ist. Ich werde es hier für eine Standardnormalen tun , die bei abgeschnitten ist und die Dichte denen hier Dichte und cdf für eine Standardnormalen sind.f ( x ) = { 1±2 C=Φ(2)-Φ(-2)ϕ(x),Φ(x)

f(x)={1Cϕ(x),|x|20,|x|>2
C=Φ(2)Φ(2)ϕ(x),Φ(x)

Die Momenterzeugungsfunktion kann berechnet werden als und dann können wir Sattelpunktnäherungen verwenden.

M(t)=EetX=1C22etxϕ(x)dx=1Ce12t2[Φ(2t)Φ(2t)]

-3

Ich bin gespannt warum, aber ja, es gibt eine einfache Möglichkeit, das PDF dieser Summe von Verteilungen zu generieren:

## install.packages("truncnorm")
## install.packages("caTools")
library(truncnorm)

x.mu <- c(12, 18, 7)
x.sd <- c(1.5, 2, 0.8)
x.a <- x.mu - 2*x.sd
x.b <- x.mu + 2*x.sd

dmulti <- function(x, a, b, mu, sd)
  rowSums(
    sapply(1:length(mu),
           function(idx)
             dtruncnorm(x, a=a[idx], b=b[idx], mean=mu[idx], sd=sd[idx])))/length(mu)
pmulti <- function(q, a, b, mu, sd)
  rowSums(
    sapply(1:length(mu),
           function(idx)
             ptruncnorm(q, a=a[idx], b=b[idx], mean=mu[idx], sd=sd[idx])))/length(mu)

pointrange <- range(c(x.a, x.b))
pointseq <- seq(pointrange[1], pointrange[2], length.out=100)
## Plot the probability density function
plot(pointseq, dmulti(pointseq, x.a, x.b, x.mu, x.sd),
     type="l")

## Plot the cumulative distribution function
plot(pointseq, pmulti(pointseq, x.a, x.b, x.mu, x.sd),
     type="l")

Wenn ich diesen Code richtig lese, scheinen Sie eher eine Mischung als eine Summierung zu implementieren . Die Handlung, die dieser Code erzeugt, ist absolut falsch. Es ist nicht einmal eine gültige Wahrscheinlichkeitsdichtefunktion!
whuber

@whuber, danke für den Fang. Ich habe das PDF normalisiert und das PDF hinzugefügt.
Bill Denney

3
Vielen Dank. Der grundlegende Fehler bleibt jedoch bestehen: Sie berechnen eher eine Mischungsverteilung als die Summe.
whuber
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.