Ich versuche, eine Simulation in Stata mit einer Zufallsstichprobe von 10000 für (i) die Variable X mit pdf durchzuführen f(x) = 2*x*exp(-x^2), X>0
, und (ii) Y=X^2
ich habe das cdf von F 1-exp(-x^2)
so berechnet , dass es umgekehrt ist, also habe sqrt(-ln(1-u).
ich den folgenden Code verwendet in Stata:
(1)
clear
set obs 10000
set seed 527665
gen u= runiform()
gen x= sqrt(-ln(1-u))
histogram x
summ x, detail
(mean 0.88, sd 0.46)
(2)
clear
set obs 10000
set seed 527665
gen u= runiform()
gen x= (sqrt(-ln(1-u)))^2
summ x, detail
(mean 0.99, sd 0.99)
(3)
clear
set obs 10000
set seed 527665
gen u= rexponential(1)
gen x= 2*u*exp(-(u^2))
summ x, detail
(mean 0.49, sd 0.28)
(4)
clear
set obs 10000
set seed 527665
gen v= runiform()
gen u=1/v
gen x= 2*u*exp(-(u^2))
histogram x
summ x, detail
(mean 0.22, sd 0.26)
Meine Fragen sind: (i) (1) und (2) basieren auf der Wahrscheinlichkeitsintegraltransformation, auf die ich gestoßen bin, die ich aber nicht verstehe. Wenn (1) und (2) gültige Ansätze sind, was ist die Intuition dahinter, (ii) die Ausgabe für (3) scheint nicht korrekt zu sein; Ich bin mir nicht sicher, ob ich die rexponentielle Funktion richtig anwende und was der Skalierungsparameter ist (es scheint keine Erklärung dafür in der Stata-Hilfe zu geben). (Iii) Die Ausgabe für (4) scheint ebenfalls nicht korrekt zu sein, und das war ich auch Ich frage mich, warum dieser Ansatz fehlerhaft ist.
Vielen Dank
Nun, was Sie als Distribution ausgearbeitet haben, sieht für mich in Ordnung aus
Wenn
PDF (x) = 2 x exp (-x 2 ), x in [0 ... Unendlichkeit] dann
CDF (x) = 1 - exp (-x 2 )
was bedeutet, dass es im Grunde eine Quadratwurzel eines exponentiell verteilten RV ist. Die exponentielle Verteilungsabtastung erfolgt mit -ln(1-u)
oder-ln(u)
Ich habe keine Stata, ich schaue mir nur den Code an
(1) sieht in Ordnung aus, Sie probieren Exponential und erhalten die Quadratwurzel davon
(2) sieht so aus, als würden Sie die Quadratwurzel des Exponentials abtasten und sie sofort wieder quadrieren. Sie werden exponentiell zurückkommen, glaube ich
(3) Ich weiß nicht, was es bedeuten soll, Exponent der quadratischen Exponentiale? Sollte sein
clear
set obs 10000
set seed 527665
gen u = rexponential(1)
gen x = sqrt(u)
summ x, detail
rexponential () ist dasselbe wie -ln (1-runiform ())
(4) Macht keinen Sinn. Exponent aus quadratischer Uniform?
Ich habe schnell einfachen Python-Code zur Veranschaulichung geschrieben
import numpy as np
import matplotlib.pyplot as plt
x = np.random.random(100000) // uniform in [0...1)
xx = np.sqrt(-np.log(1.0-x)) // -log(1-x) is exponential, then square root
q = np.linspace(0.0, 3.0, 101)
z = 2.0*q*np.exp(-q*q)
n, bins, patches = plt.hist(xx, 50, density=True, facecolor='g', alpha=0.75)
plt.plot(q, z, 'r-')
plt.show()
mit Bild
Dieser Artikel stammt aus dem Internet. Bitte geben Sie beim Nachdruck die Quelle an.
Bei Verstößen wenden Sie sich bitte [email protected] Löschen.
Lass mich ein paar Worte sagen