Attente du logit inverse de la variable aléatoire normale


8

J'ai une variable aléatoire Oui=eX1+eXet je connais .XN(μ,σ2)

Existe-t-il un moyen de calculer ? J'ai essayé de comprendre l'intégrale, mais je n'ai pas fait beaucoup de progrès. Est-ce même possible?E(Oui)


3
Apparemment, aucune solution analytique n'est connue. Une approximation connue est donnée dans ce lien Math StackExchange: math.stackexchange.com/questions/207861/...
Greenparker

Si , alors , pour tout . μ=0E[Oui]=12σ
wolfies

@wolfies Pourriez-vous donner une source / dérivation de cela?
Greenparker

2
@Greenparker La distribution de est symétrique autour de dans ce cas, QED. Oui-1/20
whuber

1
Je l'ai fait symboliquement comme une ligne avec mathStatica / Mathematica ... mais un moyen facile de voir pourquoi il doit en être ainsi: ...... (i) si XN(0,σ2), alors son pdf est symétrique autour de 0. (ii) Considérons la transformation Z=Oui-12=12tanh(X/2). alorsZ est une courbe symétrique en forme de S sur X=0et E [Z] doit être égal à 0 (par symétrie). DepuisOui=Z+12, il s'ensuit que E[Oui]=12
Wolfies

Réponses:


5

Comme déjà mentionné dans les commentaires et réponses à la question de @Martijn, il ne semble pas y avoir de solution analytique pour E(Oui) en dehors du cas particulier où μ=0 qui donne E(Oui)=0,5.

De plus, par l'inégalité de Jensen, nous avons queE(Oui)=E(F(X))<F(E(X)) si μ>0 et inversement E(Oui)=E(F(X))>F(E(X)) si μ<0. DepuisF(X)=eX1+eX est convexe quand X<0 et concave quand X>0 et la majeure partie de la masse volumique normale se trouvera dans ces régions en fonction de la valeur de μ.

Il existe de nombreuses façons de se rapprocher E(Oui), J'en ai détaillé quelques-uns que je connais et inclus un code R à la fin.

Échantillonnage

C'est assez facile à comprendre / à mettre en œuvre:

E(Oui)=F(X)N(X|μ,σ2)X1nΣje=1nF(Xje)

où nous prélevons des échantillons X1,,Xn de N(μ,σ2).

Intégration numérique

Cela comprend de nombreuses méthodes d'approximation de l'intégrale ci-dessus - dans le code, j'ai utilisé la fonction d' intégration de R qui utilise la quadrature adaptative.

Transformation non parfumée

Voir par exemple le filtre de Kalman non parfumé pour l'estimation non linéaire d'Eric A. Wan et Rudolph van der Merwe qui décrit:

La transformation non parfumée (UT) est une méthode de calcul des statistiques d'une variable aléatoire qui subit une transformation non linéaire

La méthode consiste à calculer un petit nombre de "points sigma" qui sont ensuite transformés par Fet une moyenne pondérée est prise. Cela contraste avec l'échantillonnage aléatoire de nombreux points, en les transformant avecF et en prenant la moyenne.

Cette méthode est beaucoup plus efficace en termes de calcul que l'échantillonnage aléatoire. Malheureusement, je n'ai pas trouvé d'implémentation R en ligne, je ne l'ai donc pas incluse dans le code ci-dessous.

Code

Le code suivant crée des données avec différentes valeurs de μ et fixe σ. Il produit f_muce qui estF(E(X))et approximations de E(Oui)=E(F(X))via samplinget integration.

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)
}

production:

    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

ÉDITER

J'ai en fait trouvé une transformation non parfumée facile à utiliser dans le package python filterpy (bien qu'il soit en fait assez rapide à implémenter à partir de zéro):

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}))

qui génère:

    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

Ainsi, la transformation non parfumée semble fonctionner assez mal pour ces valeurs de μ et σ. Ce n'est peut-être pas surprenant puisque la transformation non parfumée tente de trouver la meilleure approximation normale deOui=F(X) et dans ce cas c'est loin d'être normal:

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()

histogramme

Pour des valeurs plus petites de σ cela semble OK.


3

La variable Ouia une distribution logit normale ou logistique normale dont les moments n'ont pas de description analytique connue. Vous pouvez obtenir les valeurs par calcul.

Plus d'informations sur ces distributions sont décrites dans un article disponible gratuitement: Atchison, J., et Sheng M. Shen. "Distributions logistiquement normales: quelques propriétés et utilisations." Biometrika 67,2 (1980): 261-272.

Dans ce texte, ils ne donnent aucune expression de limites, d'approximations ou de comportement des moments (sauf en mentionnant qu'ils existent). Mais, ils continuent avec des expressions de la valeur attendue pour le rapport de deux composantes dans une variable distribuée normale logistique multivariée.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.