Aspettativa del log inverso della variabile casuale normale


8

Ho una variabile casuale e conosco .Y=eX1+eXXN(μ,σ2)

C'è un modo per calcolare ? Ho provato a elaborare l'integrale, ma non ho fatto molti progressi. È anche possibile?E(Y)


3
Apparentemente, una soluzione analitica non è nota. Un'approssimazione nota è fornita in questo link Math StackExchange: math.stackexchange.com/questions/207861/…
Greenparker,

Se , quindi , per qualsiasi . μ=0E[Y]=12σ
lupi il

@wolfies Potresti dare una fonte / derivazione di quello?
Greenparker,

2
@Greenparker La distribuzione di è simmetrica intorno a in quel caso, QED. Y1/20
whuber

1
L'ho fatto simbolicamente come one-liner con mathStatica / Mathematica ... ma un modo semplice per capire perché deve essere così: ...... (i) se , quindi il suo pdf è simmetrico intorno a 0. (ii) Considera la trasformazione . Quindi è una curva a forma di S simmetrica circa , ed E [Z] deve essere uguale a 0 (per simmetria). Poiché , ne consegue cheXN(0,σ2)Z=Y12=12tanh(x/2)ZX=0Y=Z+12E[Y]=12
wolfies il

Risposte:


5

Come già menzionato nei commenti alle domande e nella risposta di @Martijn, non sembra esserci una soluzione analitica per parte il caso speciale in cui che dà .E(Y)μ=0E(Y)=0.5

Inoltre per la disuguaglianza di Jensen abbiamo che if e viceversa che se . Poiché è convesso quando e concavo quando e la maggior parte della massa di densità normale si troverà in quelle regioni a seconda del valore di .E(Y)=E(f(X))<f(E(X))μ>0E(Y)=E(f(X))>f(E(X))μ<0f(x)=ex1+exx<0x>0μ

Esistono molti modi per approssimare , ne ho dettagliati alcuni con cui ho familiarità e ho incluso un codice R alla fine.E(Y)

campionatura

Questo è abbastanza facile da capire / implementare:

E(Y)=f(x)N(x|μ,σ2)dx1nΣi=1nf(xi)

dove disegniamo campioni da .x1,,xnN(μ,σ2)

Integrazione numerica

Ciò include molti metodi per approssimare l'integrale sopra - nel codice ho usato la funzione di integrazione di R che usa la quadratura adattativa.

Trasformazione senza profumo

Vedi ad esempio The Unscented Kalman Filter for Nonlinear Stimation di Eric A. Wan e Rudolph van der Merwe che descrive:

La trasformazione non profumata (UT) è un metodo per calcolare le statistiche di una variabile casuale che subisce una trasformazione non lineare

Il metodo prevede il calcolo di un piccolo numero di "punti sigma" che vengono poi trasformati da e viene presa una media ponderata. Ciò è in contrasto con il campionamento casuale di molti punti, trasformandoli con e prendendo la media.ff

Questo metodo è molto più efficiente dal punto di vista computazionale rispetto al campionamento casuale. Purtroppo non sono riuscito a trovare un'implementazione R online, quindi non l'ho inclusa nel codice seguente.

Codice

Il codice seguente crea dati con diversi valori di e fixed . Emette che è e approssimazioni di tramite e .μσf_muf(E(X))E(Y)=E(f(X))samplingintegration

integrate_approx <- function(mu, sigma) {
    f <- function(x) {
        plogis(x) * dnorm(x, mu, sigma)
    }
    int <- integrate(f, lower = -Inf, upper = Inf)
    int$value
}

sampling_approx <- function(mu, sigma, n = 1e6) {
    x <- rnorm(n, mu, sigma)
    mean(plogis(x))
}

mu <- seq(-2.0, 2.0, by = 0.5)

data <- data.frame(mu = mu,
                   sigma = 3.14,
                   f_mu = plogis(mu),
                   sampling = NA,
                   integration = NA)

for (i in seq_len(nrow(data))) {
    mu <- data$mu[i]
sigma <- data$sigma[i]
    data$sampling[i] <- sampling_approx(mu, sigma)
data$integration[i] <- integrate_approx(mu, sigma)
}

produzione:

    mu sigma      f_mu  sampling integration
1 -2.0  3.14 0.1192029 0.2891102   0.2892540
2 -1.5  3.14 0.1824255 0.3382486   0.3384099
3 -1.0  3.14 0.2689414 0.3902008   0.3905315
4 -0.5  3.14 0.3775407 0.4450018   0.4447307
5  0.0  3.14 0.5000000 0.4999657   0.5000000
6  0.5  3.14 0.6224593 0.5553955   0.5552693
7  1.0  3.14 0.7310586 0.6088106   0.6094685
8  1.5  3.14 0.8175745 0.6613919   0.6615901
9  2.0  3.14 0.8807971 0.7105594   0.7107460

MODIFICARE

In realtà ho trovato una trasformazione non profumata facile da usare nel pacchetto python filterpy (anche se in realtà è abbastanza veloce da implementare da zero):

import filterpy.kalman as fp
import numpy as np
import pandas as pd


def sigmoid(x):
    return 1.0 / (1.0 + np.exp(-x))


m = 9
n = 1
z = 1_000_000
alpha = 1e-3
beta = 2.0
kappa = 0.0
means = np.linspace(-2.0, 2.0, m)
sigma = 3.14
points = fp.MerweScaledSigmaPoints(n, alpha, beta, kappa)
ut = np.empty_like(means)
sampling = np.empty_like(means)

for i, mean in enumerate(means):
    sigmas = points.sigma_points(mean, sigma**2)
    trans_sigmas = sigmoid(sigmas)
    ut[i], _ = fp.unscented_transform(trans_sigmas, points.Wm, points.Wc)

    x = np.random.normal(mean, sigma, z)
    sampling[i] = np.mean(sigmoid(x))

print(pd.DataFrame({"mu": means,
                    "sigma": sigma,
                    "ut": ut,
                    "sampling": sampling}))

che produce:

    mu  sigma        ut  sampling
0 -2.0   3.14  0.513402  0.288771
1 -1.5   3.14  0.649426  0.338220
2 -1.0   3.14  0.716851  0.390582
3 -0.5   3.14  0.661284  0.444856
4  0.0   3.14  0.500000  0.500382
5  0.5   3.14  0.338716  0.555246
6  1.0   3.14  0.283149  0.609282
7  1.5   3.14  0.350574  0.662106
8  2.0   3.14  0.486598  0.710284

Quindi la trasformazione inodore sembra avere prestazioni scarse per questi valori di e . Questo forse non è sorprendente poiché la trasformazione inodore tenta di trovare la migliore approssimazione normale a e in questo caso è tutt'altro che normale:μσY=f(X)

import matplotlib.pyplot as plt

x = np.random.normal(means[0], sigma, z)
plt.hist(sigmoid(x), bins=50)
plt.title("mu = {}, sigma = {}".format(means[0], sigma))
plt.xlabel("f(x)")
plt.show()

istogramma

Per valori inferiori di sembra essere OK.σ


3

La variabile ha una distribuzione normale logit o logistica normale i cui momenti non hanno una descrizione analitica nota. È possibile ottenere i valori a livello computazionale.Y

Ulteriori informazioni su queste distribuzioni sono descritte in un articolo disponibile gratuitamente: Atchison, J. e Sheng M. Shen. "Distribuzioni logistiche-normali: alcune proprietà e usi." Biometrika 67.2 (1980): 261-272.

In quel testo non danno alcuna espressione per limiti, approssimazioni o comportamenti dei momenti (tranne menzionare che esistono). Tuttavia, continuano con le espressioni per il valore di aspettativa per il rapporto tra due componenti in una variabile distribuita normale logistica multivariata.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.