Praktiken in Einführung in die Ökonometrie mit R ) In Python.
Die Lotterie wird $ 6 $ von $ 49 $ * eindeutigen * Zahlen ziehen.
** Anleitung: ** Ziehe die Gewinnzahl für diese Woche.
import math
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from scipy import integrate, stats
np.random.seed(seed=123)
np.random.randint(low=1, high=50, size=6)
array([46, 3, 29, 35, 39, 18])
Betrachten Sie die Zufallsvariable $ X $ mit der unten stehenden Wahrscheinlichkeitsdichtefunktion (PDF).
** Anleitung: ** Definieren Sie die obige Wahrscheinlichkeitsdichtefunktion als Funktion f () </ tt>. Stellen Sie sicher, dass die definierte Funktion tatsächlich eine Wahrscheinlichkeitsdichtefunktion ist.
def f(x):
return x/4*math.exp(-x**2/8)
integrate.quad(f, 0, np.inf)
(1.0, 2.1730298600934144e-09)
In dieser Übung müssen Sie den erwarteten Wert und die Varianz der Zufallsvariablen $ X $ berechnen, die Sie in der vorherigen Übung berücksichtigt haben.
Es wird angenommen, dass die Wahrscheinlichkeitsdichtefunktion f () </ tt> aus der vorherigen Übung in der Betriebsumgebung verfügbar ist.
** Anleitung: ** Definieren Sie eine geeignete Funktion ex () </ tt>, die in den erwarteten Wert von $ X $ integriert wird. Berechnen Sie den erwarteten Wert von $ X $. Speichern Sie das Ergebnis in expected_value </ tt>. Definieren Sie eine geeignete Funktion ex2 () </ tt>, die in den erwarteten Wert von $ X ^ 2 $ integriert wird. Berechnen Sie die Verteilung von $ X $. Speichern Sie das Ergebnis in Variation </ tt>.
# define the function ex
def ex(x):
return x*f(x)
# compute the expected value of X
expected_value = integrate.quad(ex, 0, np.inf)[0]
# define the function ex2
def ex2(x):
return x**2*f(x)
# compute the variance of X
variance = integrate.quad(ex2, 0, np.inf)[0] - expected_value**2
Let
** Anleitung: ** Berechnen Sie den Wert der normalen Standarddichte bei $ \ phi (3) $, dh $ c = 3 $.
stats.norm.pdf(3)
0.0044318484119380075
Let
** Anleitung: **
# compute the probability
stats.norm.cdf(1.64) - stats.norm.cdf(-1.64)
0.8989948330517925
Let
** Anleitung: ** Berechnen Sie den 99% -Anteil einer bestimmten Verteilung, dh finden Sie $ y $ so, dass $ y $ $ \ Phi (\ frac {y-5} {5}) = 0,99 $ ist.
# compute the 99% quantile of a normal distribution with mu = 5 and sigma^2 = 25.
stats.norm.ppf(0.99, 5, np.sqrt(25))
16.631739370204205
Let
** Anleitung: ** Generieren Sie aus dieser Verteilung eine $ 10 $ Zufallszahl.
# generate 10 random numbers from the given distribution.
stats.norm.rvs(loc=2, scale=np.sqrt(12), size=10, random_state=12)
array([ 3.63847098, -0.36052849, 2.83983505, -3.89152106, 4.60896331,
-3.31643067, 2.01776072, 1.58351913, -0.79546723, 11.9482742 ])
Let
** Anleitung: ** Zeichnen Sie die entsprechende Wahrscheinlichkeitsdichtefunktion. Geben Sie den Bereich der x-Werte für $ [0,25] $ an.
# plot the PDF of a chi^2 random variable with df = 10
x = np.arange(0, 25)
plt.plot(x, stats.chi2.pdf(x, df=10))
plt.show()
Let
** Anleitung: ** Berechnen Sie $ P (X_1 ^ 2 + X_2 ^ 2> 10) $.
# compute the probability
stats.chi2.sf(10/15, df=2, loc=0, scale=1)
0.7165313105737892
Let
** Anleitung: ** Berechnen Sie den Anteil von 95% für beide Verteilungen. Hast du irgendwelche Entdeckungen?
# compute the 95% quantile of a t distribution with 10000 degrees of freedom
# qt(0.95, df = 10000)
print(stats.t.ppf(0.95, df = 10000))
# compute the 95% quantile of a standard normal distribution
print(stats.norm.ppf(0.95))
# both values are very close to each other. This is not surprising as for sufficient large degrees of freedom the t distribution can be approximated by the standard normal distribution.
1.6450060180692423
1.6448536269514722
Let
** Anleitung: ** Generieren Sie aus dieser Verteilung eine $ 1000 $ Zufallszahl und weisen Sie sie der Variablen x </ tt> zu. Berechnen Sie den Stichprobenmittelwert von x </ tt>. Können Sie das Ergebnis erklären?
# generate 1000 random numbers from the given distribution. Assign them to the variable x.
x = stats.t.rvs(df = 1, size = 1000, random_state = 1)
# compute the sample mean of x.
np.mean(x)
# Although a t distribution with M = 1 is, as every other t distribution, symmetric around zero it actually has no expectation. This explains the highly non-zero value for the sample mean.
10.845661965991818
Let
** Anleitung: ** Zeichnen Sie die Bruchfunktion einer gegebenen Verteilung.
# plot the quantile function of the given distribution
dfn = 10
dfd = 4
x = np.linspace(stats.f.ppf(0.01, dfn, dfd),
stats.f.ppf(0.99, dfn, dfd), 100)
plt.plot(stats.f.pdf(x = x, dfn = dfn, dfd = dfd))
plt.show()
Let
** Anleitung: ** Berechnen Sie $ P (1 <Y <10) $ durch Integration der Wahrscheinlichkeitsdichtefunktion.
# compute the probability by integration
dfn = 4
dfd = 5
x = np.linspace(stats.f.ppf(0.01, dfn, dfd),
stats.f.ppf(0.99, dfn, dfd), 100)
def function(x):
return stats.f.pdf(x = x, dfn = dfn, dfd = dfd)
integrate.quad(function, 1, 10)[0]
0.4723970230052129
Recommended Posts