Exercice-Probabilité (économie de la mesure en Python)

Practices dans Introduction to Econometrics with R ) En Python.

2.3 Exercices - Théorie des probabilités

1. Échantillonnage

La loterie tirera 6 $ sur 49 $ * numéros uniques *.

** Instructions: ** Dessinez le numéro gagnant pour cette semaine.

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

2. Fonction de densité de probabilité

Considérez la variable aléatoire $ X $ en utilisant la fonction de densité de probabilité (PDF) ci-dessous.

f_X(x)=\frac{x}{4}e^{-x^2/8},\quad x\geq 0.

** Instructions: ** Définissez la fonction de densité de probabilité ci-dessus comme une fonction f () </ tt>. Assurez-vous que la fonction définie est en fait une fonction de densité de probabilité.

def f(x):
    return x/4*math.exp(-x**2/8)

integrate.quad(f, 0, np.inf)
(1.0, 2.1730298600934144e-09)

3. Valeur attendue et variance

Dans cet exercice, vous devez calculer la valeur attendue et la variance de la variable aléatoire $ X $ que vous avez considérée dans l'exercice précédent.

La fonction de densité de probabilité f () </ tt> de l'exercice précédent est supposée disponible dans l'environnement d'exploitation.

** Instructions: ** Définissez une fonction appropriée ex () </ tt> qui s'intègre à la valeur attendue de $ X $. Calculez la valeur attendue de $ X $. Stockez le résultat dans valeur_attendue </ tt>. Définissez une fonction appropriée ex2 () </ tt> qui s'intègre à la valeur attendue de $ X ^ 2 $. Calculez la distribution de $ X $. Stockez le résultat dans 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

4. Distribution normale standard I

Let Z\sim\mathcal{N}(0, 1).

** Instructions: ** Calculez la valeur de la densité normale standard à $ \ phi (3) $, soit $ c = 3 $.

stats.norm.pdf(3)
0.0044318484119380075

5. Distribution normale standard II

Let Z\sim\mathcal{N}(0, 1).

** Instructions: ** P(|Z|\leq 1.64)Calculer.

# compute the probability
stats.norm.cdf(1.64) - stats.norm.cdf(-1.64)
0.8989948330517925

6. Distribution normale I

Let Y\sim\mathcal{N}(5, 25).

** Instructions: ** Calculer la fraction de 99% d'une distribution donnée, c'est-à-dire trouver $ y $ tel que $ y $ soit $ \ Phi (\ frac {y-5} {5}) = 0,99 $.

# 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

7. Distribution normale II

Let Y\sim\mathcal{N}(2, 12).

** Instructions: ** Générez un nombre aléatoire de 10 $ à partir de cette distribution.

# 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 ])

8. Distribution du chi carré I

Let W\sim\chi^2_{10}.

** Instructions: ** Tracez la fonction de densité de probabilité correspondante. Spécifiez la plage de valeurs x à $ [0,25] $.

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

output_17_0.png

9. Distribution du chi carré II

Let X_1 and X_2 be two independent normally distributed random variables with \\mu=0 and \\sigma^2=15.

** Instructions: ** Calculez $ P (X_1 ^ 2 + X_2 ^ 2> 10) $.

# compute the probability

stats.chi2.sf(10/15, df=2, loc=0, scale=1)
0.7165313105737892

10. Distribution des étudiants I

Let X\sim t_{10000} and Z\sim\mathcal{N}(0,1).

** Instructions: ** Calculez la fraction $ 95% $ pour les deux distributions. Avez-vous des découvertes?

# 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

11. Distribution t des élèves II

Let X\sim t_1. Once the session has initialized you will see the plot of the corresponding probability density function (PDF).

** Instructions: ** Générez un nombre aléatoire de 1 000 $ à partir de cette distribution et attribuez-le à la variable x </ tt>. Calculez la moyenne de l'échantillon de x </ tt>. Pouvez-vous expliquer le résultat?

# 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

12. Distribution F I

Let Y\sim F(10, 4).

** Instructions: ** Tracez la fonction fractionnaire d'une distribution donnée.

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

output_25_0.png

13. Répartition F II

Let Y\sim F(4,5).

** Instructions: ** Calculez $ P (1 <Y <10) $ en intégrant la fonction de densité de probabilité.

# 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