En probabilitats i estadística, una distribució de probabilitat és una funció que indica la probabilitat que una variable aleatòria prenga un valor determinat.
Una variable aleatòria és una funció que assigna un valor numèric a cada resultat possible d'un experiment aleatori.
Variable aleatòria: Catan
En el joc de taula Catan, el resultat de llançar dos daus és una variable aleatòria.
Considerem l'experiència aleatòria del llançament de dos daus. El conjunt de resultats possibles és:
Una distribució de probabilitat és discreta si la variable aleatòria és també discreta, és a dir,
si la variable aleatòria pren valors en un conjunt finit o numerable.
Catan
En l'exemple anterior, la variable aleatòria \(X\) és discreta, ja que pren valors en un conjunt finit.
Per calcular la distribució de probabilitat de la variable aleatòria \(X\),
hem de calcular la probabilitat de cada valor possible de la variable aleatòria.
El nombre total de resultats possibles és \(6 \times 6 = 36\).
Suma \(i\)
Resultats \(\{X = i\}\)
Probabilitat \(P(X = i)\)
2
\(\{(1,1)\}\)
\(\frac{1}{36} \approx 0.0278\)
3
\(\{(1,2), (2,1)\}\)
\(\frac{2}{36} \approx 0.0556\)
4
\(\{(1,3), (2,2), (3,1)\}\)
\(\frac{3}{36} \approx 0.0833\)
5
\(\{(1,4), (2,3), (3,2), (4,1)\}\)
\(\frac{4}{36} \approx 0.1111\)
6
\(\{(1,5), (2,4), (3,3), (4,2), (5,1)\}\)
\(\frac{5}{36} \approx 0.1389\)
7
\(\{(1,6), (2,5), (3,4), (4,3), (5,2), (6,1)\}\)
\(\frac{6}{36} \approx 0.1667\)
8
\(\{(2,6), (3,5), (4,4), (5,3), (6,2)\}\)
\(\frac{5}{36} \approx 0.1389\)
9
\(\{(3,6), (4,5), (5,4), (6,3)\}\)
\(\frac{4}{36} \approx 0.1111\)
10
\(\{(4,6), (5,5), (6,4)\}\)
\(\frac{3}{36} \approx 0.0833\)
11
\(\{(5,6), (6,5)\}\)
\(\frac{2}{36} \approx 0.0556\)
12
\(\{(6,6)\}\)
\(\frac{1}{36} \approx 0.0278\)
xychart-beta
title "Distribució de probabilitat la suma de dos daus"
x-axis "Suma dels dos daus" [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
y-axis "Probabilitat en %" 0 --> 20
bar [2.78, 5.56, 8.33, 11.11, 13.89, 16.67, 13.89, 11.11, 8.33, 5.56, 2.78]
La distribució de Bernoulli és una distribució de probabilitat discreta que modela
un experiment aleatori amb dos possibles resultats: èxit o fracàs.
Quan és èxit, la variable aleatòria pren el valor 1.
Quan és fracàs, la variable aleatòria pren el valor 0.
La distribució de Bernoulli depèn de dos paràmetres:
La probabilitat d'èxit \(p\).
La probabilitat de fracàs \(q\).
On sempre es compleix que \(p + q = 1\).
La funció de probabilitat de la distribució de Bernoulli és:
\[P(X = x) = \begin{cases}
p & \text{si } x = 1 \\
q & \text{si } x = 0 \\
0 & \text{altrament}
\end{cases}\]
O escrit com a fórmula, on \(x \in \{0, 1\}\):
\[P(X = x) = p^x \cdot (1 - p)^{1-x}\]
Llançament d'una moneda
En el llançament d'una moneda equilibrada, la variable aleatòria \(X\) que indica si el resultat
és cara o creu és una variable de Bernoulli, on \(p = q = 0.5\).
La distribució binomial és una distribució de probabilitat discreta que modela
el nombre d'èxits en una seqüència de \(n\) experiments amb una probabilitat d'èxit \(p\).
\[X \sim B(n, p)\]
És a dir, la distribució binomial modela el nombre de vegades que es repeteix un esdeveniment de Bernoulli.
La funció de probabilitat de la distribució binomial és la probabilitat de obtindre exactament \(k\) èxits
en \(n\) experiments:
on el coeficient binomial, és el
nombre de combinacions en què es poden escollir \(k\) elements d'un conjunt de \(n\) elements:
\[\binom{n}{k} = \frac{n!}{k! \cdot (n-k)!}\]
Dau igual a 6
En el llançament d'un dau equilibrat, la variable aleatòria \(X\) que indica si el resultat
és un 6 és una variable de Bernoulli, on \(p = \frac{1}{6}\).
Si llancem el dau 10 vegades, la variable aleatòria \(Y\) que indica el nombre de vegades que ha sortit un 6
és una variable binomial amb \(n = 10\) i \(p = \frac{1}{6}\).
La distribució de Poisson és una distribució de probabilitat discreta que modela
el nombre d'ocurrències d'un esdeveniment en un interval de temps o espai, sempre
i quan aquestes ocurrències siguin independents i la seva freqüència siga constant
independentment del temps des de l'última ocurrència.
La funció de probabilitat de la distribució de Poisson és:
on \(\lambda\) és la mitjana del nombre (o el nombre esperat) d'ocurrències
en l'interval.
Central 112
La central d'emergències 112 rep una mitjana de 5 trucades per minut.
La variable aleatòria \(X\) que indica el nombre de trucades que rep la central en un minut
és una variable de Poisson amb \(\lambda = 5\) si les trucades són independents.
La probabilitat que la central rebi exactament 3 trucades en un minut és:
Una distribució de probabilitat és contínua si la variable aleatòria és contínua, és a dir,
si la variable aleatòria pren valors en un conjunt no numerable (infinit) de valors.
En aquest cas, la funció de probabilitat és una funció de densitat de probabilitat,
que indica la probabilitat que la variable aleatòria prengui un valor en un interval.
\[P(a \leq X \leq b) = \int_a^b f(x) \, dx\]
Nota
La probabilitat que la variable aleatòria prenga un valor exacte és sempre zero.
La distribució uniforme contínua és una distribució de probabilitat contínua que modela
una variable aleatòria que pren valors en un interval amb la mateixa probabilitat.
La funció de densitat de probabilitat de la distribució uniforme és:
\[
f(x) = \begin{cases}
\frac{1}{b-a} & \text{si } a \leq x \leq b \\
0 & \text{altrament}
\end{cases}
\]
La funció de distribució de probabilitat acumulada és:
\[
F(x) = \begin{cases}
0 & \text{si } x < a \\
\frac{x-a}{b-a} & \text{si } a \leq x \leq b \\
1 & \text{si } x > b
\end{cases}
\]
Fabricació de llapis
En una fàbrica de llapis, la longitud dels llapis és una variable aleatòria contínua
que segueix una distribució uniforme en l'interval \([10, 20]\) cm.
La probabilitat que un llapis fabricat tinga una longitud entre 15 i 17 cm és:
La distribució normal és una distribució de probabilitat contínua que modela
variables aleatòries que segueixen una distribució simètrica al voltant d'un valor mitjà,
on existeix poc valors extrems i molts valors prop del mitjà.
És el model més comú en estadística, ja que existeixen moltes variables associades
a fenòmens naturals que segueixen aquesta distribució.
Aquesta distribució es caracteritza per una campana de Gauss a partir d'un valor mitjà \(\mu\),
sobre el qual el 50% dels valors queda a cada costat, i una desviació estàndard \(\sigma\).
\[X \sim N(\mu, \sigma)\]
La funció de densitat de probabilitat de la distribució normal és:
fromstatisticsimportNormalDistheight_dist=NormalDist(mu=170,sigma=10)# Probability of a person being taller than 160 cm and shorter than 180 cmp=height_dist.cdf(180)-height_dist.cdf(160)print("Probability of a person being taller than 160 cm and shorter than 180 cm:",p)# Probability of a person being taller than 190 cmp=1-height_dist.cdf(190)print("Probability of a person being taller than 190 cm:",p)
Probability of a person being taller than 160 cm and shorter than 180 cm: 0.6826
Probability of a person being taller than 190 cm: 0.02275
# Probability of a person being taller than 160 cm and shorter than 180 cmz1=(160-170)/10z2=(180-170)/10p=std_normal_dist.cdf(z2)-std_normal_dist.cdf(z1)print("Probability of a person being taller than 160 cm and shorter than 180 cm:",p)
Probability of a person being taller than 160 cm and shorter than 180 cm: 0.6826
La distribució mostral és la distribució de probabilitat d'una estadística
calculada a partir d'una mostra aleatòria d'una població.
Les distribucions mostrals són importants en les estadístiques perquè proporcionen una
important simplificació abans d'utilitzar la inferència estadística, quan
obtindre tots els valors d'una població és molt difícil o impossible.
Normalment, quan major és la mida de la mostra, més s'assembla
a la distribució la distribució poblacional.
Mostres en edats d'una població
Realitzem tres mostres de 10, 100 i 1000 persones de la població anterior.
Vegem com varien les mitjanes i les desviacions estàndard de les mostres,
que segons augmenta la mida de la mostra, s'assemblen més a la distribució poblacional.
# Distribució mostral I (agafem 1 mostra de 10 dades)sample1=df_edats.sample(10,random_state=42)mean=sample1.mean().values[0].round(2)std=sample1.std().values[0].round(2)print("Distribució mostral I")print("Mitjana de la mostra 1:",mean)print("Desviació estàndard de la mostra 1:",std)print()# Distribució mostral II (agafem 1 mostra de 100 dades)sample2=df_edats.sample(100,random_state=42)mean=sample2.mean().values[0].round(2)std=sample2.std().values[0].round(2)print("Distribució mostral II")print("Mitjana de la mostra 2:",mean)print("Desviació estàndard de la mostra 2:",std)print()# Distribució mostral III (agafem 1 mostra de 1000 dades)sample3=df_edats.sample(1000,random_state=42)mean=sample3.mean().values[0].round(2)std=sample3.std().values[0].round(2)print("Distribució mostral III")print("Mitjana de la mostra 3:",mean)print("Desviació estàndard de la mostra 3:",std)
Distribució mostral I
Mitjana de la mostra 1: 36.5
Desviació estàndard de la mostra 1: 26.38
Distribució mostral II
Mitjana de la mostra 2: 45.59
Desviació estàndard de la mostra 2: 24.78
Distribució mostral III
Mitjana de la mostra 3: 43.46
Desviació estàndard de la mostra 3: 22.23
La distribució mostral de la mitjana és una distribució de probabilitat
calculada a partir de les mitjanes de distribucions mostrals.
Segons el teorema del límit central,
aquesta distribució s'assembla més a la distribució conjunta a mesura que s'utilitzen més mostres.
Mitjana de mostres en edats d'una població
Realitzem tres grups de mostres de 1, 10 i 100 grups de 10 persones de la població anterior.
Vegem com varien les mitjanes i les desviacions estàndard de les mostres,
que segons augmenta el nombre de mostres, s'assemblen més a la distribució poblacional.
# Distribució mostral de la mitjana I (agafem 1 mostra de 10 dades)sample1=df_edats.sample(10,random_state=42)mean=sample1.mean().values[0].round(2)std=sample1.std().values[0].round(2)print("Distribució mostral de la mitjana I")print("Mitjana de la mostra 1:",mean)print("Desviació estàndard de la mostra 1:",std)print()# Distribució mostral de la mitjana II (agafem 10 mostres de 10 dades)means=[]stds=[]foriinrange(10):sample=df_edats.sample(10,random_state=i)means.append(sample.mean().values[0])stds.append(sample.std().values[0])mean=pd.Series(means).mean().round(2)std=pd.Series(stds).mean().round(2)print("Distribució mostral de la mitjana II")print("Mitjana de les mitjanes:",mean)print("Desviació estàndard de les mitjanes:",std)print()# Distribució mostral de la mitjana III (agafem 100 mostres de 10 dades)means=[]stds=[]foriinrange(100):sample=df_edats.sample(10,random_state=i)means.append(sample.mean().values[0])stds.append(sample.std().values[0])mean=pd.Series(means).mean().round(2)std=pd.Series(stds).mean().round(2)print("Distribució mostral de la mitjana III")print("Mitjana de les mitjanes:",mean)print("Desviació estàndard de les mitjanes:",std)
Distribució mostral de la mitjana I
Mitjana de la mostra 1: 36.5
Desviació estàndard de la mostra 1: 26.38
Distribució mostral de la mitjana II
Mitjana de les mitjanes: 45.11
Desviació estàndard de les mitjanes: 23.27
Distribució mostral de la mitjana III
Mitjana de les mitjanes: 44.26
Desviació estàndard de les mitjanes: 21.41
\(H_0 = \mu \geq 5\): La mitjana de les hores d'esport és major o igual a 5.
\(H_1 = \mu < 5\): La mitjana de les hores d'esport és menor que 5.
Per comprovar-ho, primer hem de triar un nivell de significació\(\alpha\),
que marcarà els límits entre la regió d'acceptació i la regió de rebuig.
Un valor comú és \(\alpha = 0.05\).
Calculem la z-score de \(\alpha\), que marcarà el límit de la regió de rebuig en una distribució normal estàndard.
#!/usr/bin/env python3fromstatisticsimportNormalDistalpha=0.05z_alpha=round(NormalDist().inv_cdf(alpha),2)print("Z-score de alpha:",z_alpha)
Z-score de alpha: -1.64
El següent pas és calcular la z-score de la mitjana de la mostra, que ens indicarà si la mitjana de la mostra
és dins de la regió d'acceptació o de rebuig.
importnumpyasnp# MostraX=np.array([7,6,4,3,1,9,8,7,3,1,1,0,9,4,3,2,1,5,5,6,4])# Mitjana i desviació estàndard de la mostramean=X.mean()std=X.std()# Z-score de la mitjana de la mostraz=(mean-5)/(std/np.sqrt(len(X)))print("Mitjana de la mostra:",mean)print("Z-score de la mitjana de la mostra:",round(z,2))
Mitjana de la mostra: 4.238095238095238
Z-score de la mitjana de la mostra: -1.3
Per últim, comparem la z-score de la mitjana de la mostra amb la z-score de \(\alpha\).
Si la z-score de la mitjana de la mostra és menor que la z-score de \(\alpha\), rebutgem la hipòtesi nul·la.
# Comprovació de la hipòtesip_value=NormalDist().cdf(z)print(f"Z-score de la mitjana de la mostra: {round(z,2)} (p_value: {round(p_value,4)})")print(f"Z-score de alpha: {z_alpha} (significancia: {alpha})")ifz<z_alpha:print("Rebutgem la hipòtesi nul·la")else:print("Acceptem la hipòtesi nul·la")
Z-score de la mitjana de la mostra: -1.3 (p_value: 0.097)
Z-score de alpha: -1.64 (0.05)
Acceptem la hipòtesi nul·la
Com que la \(Z_{\bar{X}}\)
i el valor p
són majors que la de \(Z_\alpha\) i \(\alpha\) respectivament,
acceptem la hipòtesi nul·la, és a dir, la mitjana de les hores d'esport és major o igual a 5.
Advertència
Existeixen moltes proves estadístiques de contrast d'hipòtesis,
segons les dades i la naturalesa del problema.
Perill
El valor p no indica el percentatge de certesa de la hipòtesi.
En l'exemple anterior, no podem afirmar amb un 90.3% de certesa que la mitjana de les hores d'esport és major o igual a 5,
Realment, el valor p indica la probabilitat de trobar la mitjana que hem obtingut
assumint que la hipòtesi nul·la és certa.
Per tant, si el valor p és molt baix, podem rebutjar la hipòtesi nul·la.
#!/usr/bin/env python3fromstatisticsimportNormalDistheight_dist=NormalDist(mu=170,sigma=10)# Probability of a person being taller than 160 cm and shorter than 180 cmp=height_dist.cdf(180)-height_dist.cdf(160)print("Probability of a person being taller than 160 cm and shorter than 180 cm:",p)# Probability of a person being taller than 190 cmp=1-height_dist.cdf(190)print("Probability of a person being taller than 190 cm:",p)
#!/usr/bin/env python3importpandasaspd# Distribució conjunta (totes les dades)df_edats=pd.read_csv('generated_edats.csv',header=None,index_col=False,names=['edat'])mean=df_edats.mean().values[0].round(2)std=df_edats.std().values[0].round(2)print("# Distribució conjunta")print("Mitjana de les edats:",mean)print("Desviació estàndard de les edats:",std)print()# Distribució mostral I (agafem 1 mostra de 10 dades)sample1=df_edats.sample(10,random_state=42)mean=sample1.mean().values[0].round(2)std=sample1.std().values[0].round(2)print("Distribució mostral I")print("Mitjana de la mostra 1:",mean)print("Desviació estàndard de la mostra 1:",std)print()# Distribució mostral II (agafem 1 mostra de 100 dades)sample2=df_edats.sample(100,random_state=42)mean=sample2.mean().values[0].round(2)std=sample2.std().values[0].round(2)print("Distribució mostral II")print("Mitjana de la mostra 2:",mean)print("Desviació estàndard de la mostra 2:",std)print()# Distribució mostral III (agafem 1 mostra de 1000 dades)sample3=df_edats.sample(1000,random_state=42)mean=sample3.mean().values[0].round(2)std=sample3.std().values[0].round(2)print("Distribució mostral III")print("Mitjana de la mostra 3:",mean)print("Desviació estàndard de la mostra 3:",std)print()# Distribució mostral de la mitjana I (agafem 1 mostra de 10 dades)sample1=df_edats.sample(10,random_state=42)mean=sample1.mean().values[0].round(2)std=sample1.std().values[0].round(2)print("Distribució mostral de la mitjana I")print("Mitjana de la mostra 1:",mean)print("Desviació estàndard de la mostra 1:",std)print()# Distribució mostral de la mitjana II (agafem 10 mostres de 10 dades)means=[]stds=[]foriinrange(10):sample=df_edats.sample(10,random_state=i)means.append(sample.mean().values[0])stds.append(sample.std().values[0])mean=pd.Series(means).mean().round(2)std=pd.Series(stds).mean().round(2)print("Distribució mostral de la mitjana II")print("Mitjana de les mitjanes:",mean)print("Desviació estàndard de les mitjanes:",std)print()# Distribució mostral de la mitjana III (agafem 100 mostres de 10 dades)means=[]stds=[]foriinrange(100):sample=df_edats.sample(10,random_state=i)means.append(sample.mean().values[0])stds.append(sample.std().values[0])mean=pd.Series(means).mean().round(2)std=pd.Series(stds).mean().round(2)print("Distribució mostral de la mitjana III")print("Mitjana de les mitjanes:",mean)print("Desviació estàndard de les mitjanes:",std)
#!/usr/bin/env python3fromstatisticsimportNormalDistimportnumpyasnpalpha=0.05z_alpha=round(NormalDist().inv_cdf(alpha),2)print("Z-score de alpha:",z_alpha)X=np.array([7,6,4,3,1,9,8,7,3,1,1,0,9,4,3,2,1,5,5,6,4])# Mitjana i desviació estàndard de la mostramean=X.mean()std=X.std()# Z-score de la mitjana de la mostraz=(mean-5)/(std/np.sqrt(len(X)))print()print("Mitjana de la mostra:",mean)print("Z-score de la mitjana de la mostra:",round(z,2))# Comprovació de la hipòtesip_value=NormalDist().cdf(z)print()print(f"Z-score de la mitjana de la mostra: {round(z,2)} (p_value: {round(p_value,4)})")print(f"Z-score de alpha: {z_alpha} ({alpha})")ifz<z_alpha:print("Rebutgem la hipòtesi nul·la")else:print("Acceptem la hipòtesi nul·la")