You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Supongamos que tenemos 20 animales, de los cuales 7 son perros. Queremos medir la probabilidad de encontrar un número determinado de perros si elegimos $k=12$ animales al azar.
15
+
16
+
# En `R`
17
+
18
+
```{r}
19
+
library(Rlab)
20
+
M = 7
21
+
N = 13
22
+
k = 12
23
+
dhyper(x = 0:12, m = M, n = N, k = k)
24
+
phyper(q = 0:12, m = M, n = N, k = k)
25
+
qhyper(p = 0.5, m = M, n = N, k = k)
26
+
rhyper(nn = 1000, m = M, n = N, k = k) -> data
27
+
hist(data, breaks = 8)
28
+
```
29
+
30
+
31
+
## En `Python`
32
+
```{python}
33
+
from scipy.stats import hypergeom
34
+
import matplotlib.pyplot as plt
35
+
import numpy as np
36
+
37
+
[M, n, N] = [20, 7, 6]
38
+
rv = hypergeom(M, n, N)
39
+
x = np.arange(0, n+1)
40
+
y = rv.pmf(x)
41
+
42
+
mean, var, skew, kurt = rv.stats(moments = 'mvsk')
43
+
print("Media %f"%mean)
44
+
print("Varianza %f"%var)
45
+
print("Sesgo %f"%skew)
46
+
print("Curtosis %f"%kurt)
47
+
48
+
fig = plt.figure()
49
+
ax = fig.add_subplot(111)
50
+
ax.plot(x, y, 'bo' )
51
+
ax.vlines(x,0,y, lw = 2, alpha = 0.5)
52
+
ax.set_xlabel("Número de perros entre los 12 elegidos al azar")
53
+
ax.set_ylabel("Distribución de probabilidad de H(13,7,12)")
Copy file name to clipboardExpand all lines: teoria/Tema11.Rmd
+68-2
Original file line number
Diff line number
Diff line change
@@ -195,6 +195,8 @@ Dada cualquier variable aleatoria, en `Python` tenemos las mismas cuatro funcion
195
195
-`ppf(p,...)`: Cuantil $p$-ésimo de la variable aleatoria (el valor de $x$ más pequeño tal que $F(x)\geq p$).
196
196
-`rvs(size,...)`: Generador de $size$ observaciones siguiendo la distribución de la variable aleatoria.
197
197
198
+
También vale la pena conocer la función `stats(moments='mvsk')` que nos devuelve cuatro valores con los estadísticos de la media `m`, la varianza `v`, el sesgo `s` y la curtosis `k` de la distribución.
199
+
198
200
# Distribuciones discretas más conocidas
199
201
200
202
## Distribuciones discretas
@@ -347,11 +349,19 @@ $$X\sim \text{H}(N,M,n)$$
347
349
## Distribución Hipergeométrica
348
350
349
351
```{r, echo = FALSE}
352
+
par(mfrow = c(1,2))
350
353
plot(0:30, dhyper(0:30,10,20,10),col = "purple", xlab = "", ylab = "", main = "Función de probabilidad de una H(20,10,30)")
351
354
plot(0:30, phyper(0:30,10,20,10),col = "purple", xlab = "", ylab = "", main = "Función de distribución de una H(20,10,30)", ylim = c(0,1))
352
355
par(mfrow= c(1,1))
353
356
```
354
357
358
+
## Distribución Hipergeométrica
359
+
360
+
El código de la distribución Hipergeométrica:
361
+
362
+
- En `R` tenemos las funciones del paquete `Rlab`: `dhyper(x, m, n, k), phyper(q, m, n, k), qhyper(p, m, n, k), rhyper(nn, m, n, k)` donde `m` es el número de objetos del primer tipo, `n` el número de objetos del segundo tipo y `k` el número de extracciones realizadas.
363
+
- En `Python` tenemos las funciones del paquete `scipy.stats.hypergeom`: `pmf(k,M, n, N), cdf(k,M, n, N), ppf(q,M, n, N), rvs(M, n, N, size)` donde `M` es el número de objetos del primer tipo, `N` el número de objetos del segundo tipo y `n` el número de extracciones realizadas.
364
+
355
365
## Distribución de Poisson
356
366
357
367
Si $X$ es variable aleatoria que mide el "número de eventos en un cierto intervalo de tiempo", diremos que $X$ se distribuye como una Poisson con parámetro $\lambda$
- En `R` tenemos las funciones del paquete `Rlab`: `dpois(x, lambda), ppois(q,lambda), qpois(p,lambda), rpois(n, lambda)` donde `lambda` es el número esperado de eventos por unidad de tiempo de la distribución.
402
+
- En `Python` tenemos las funciones del paquete `scipy.stats.poisson`: `pmf(k,mu), cdf(k,mu), ppf(q,mu), rvs(M,mu)` donde `mu` es el número esperado de eventos por unidad de tiempo de la distribución.
403
+
387
404
## Distribución Binomial Negativa
388
405
389
406
Si $X$ es variable aleatoria que mide el "número de repeticiones hasta observar los $r$ éxitos en ensayos de Bernoulli", diremos que $X$ se distribuye como una Binomial Negativa con parámetros $r$ y $p$, $$X\sim\text{BN}(r,p)$$ donde $p$ es la probabilidad de éxito
- En `R` tenemos las funciones del paquete `Rlab`: `dnbinom(x, size, prop), pnbinom(q, size, prop), qnbinom(p, size, prop), rnbinom(n, size, prop)` donde `size` es el número de casos exitosos y `prob` la probabilidad del éxito.
434
+
- En `Python` tenemos las funciones del paquete `scipy.stats.nbinom`: `pmf(k,n,p), cdf(k,n,p), ppf(q,n,p), rvs(n,p)` donde `n`es el número de casos exitosos y `p` la probabilidad del éxito.
412
435
413
436
## Distribuciones discretas en R
414
437
@@ -519,10 +542,20 @@ Modela el elegir un elemento del intervalo $[a,b]$ de manera equiprobable
519
542
## Distribución Uniforme
520
543
521
544
```{r, echo = FALSE}
522
-
plot(punif(1:20,min = 0, max = 20),col = "purple", xlab = "", ylab = "", main = "Función de densidad de una U(0,20)", type = "o")
545
+
par(mfrow=c(1,2))
546
+
plot(c(0,1,1:4,4,5), c(0,0,dunif(1:4,min = 1, max = 4),0,0),col = "purple", xlab = "", ylab = "", main = "Función de densidad de una U(1,4)", type = "o", ylim = c(0,1))
547
+
plot(0:5, punif(0:5,min = 1, max = 4),col = "purple", xlab = "", ylab = "", main = "Función de distribución de una U(1,4)", type = "o")
548
+
par(mfrow=c(1,1))
523
549
```
524
550
525
551
552
+
## Distribución Uniforme
553
+
554
+
El código de la distribución Uniforme:
555
+
556
+
- En `R` tenemos las funciones del paquete `stats`: `dunif(x, min, max), punif(q, min, max), qunif(p, min, max), runif(n, min, max)` donde `min` y `max` són los extremos de los intervalos de la distribución uniforme.
557
+
- En `Python` tenemos las funciones del paquete `scipy.stats.uniform`: `pdf(k,loc, scale), cdf(k,loc, scale), ppf(q,loc, scale), rvs(n,loc, scaler)` donde la distribución uniforme está definida en el intervalo `[loc, loc+scale]`.
558
+
526
559
## Distribución Exponencial
527
560
528
561
Una v.a. $X$ tiene distribución exponencial de parámetro $\lambda$, $X\sim\text{Exp}(\lambda)$, si su función de densidad es $$f_X(x)=\left\{
@@ -553,10 +586,18 @@ Una v.a. $X$ tiene distribución exponencial de parámetro $\lambda$, $X\sim\tex
553
586
## Distribución Exponencial
554
587
555
588
```{r, echo = FALSE}
556
-
plot(pexp(1:20,0.2),col = "purple", xlab = "", ylab = "", main = "Función de densidad de una Exp(0.2)", type = "o")
589
+
plot(0:20, pexp(0:20,0.2),col = "purple", xlab = "", ylab = "", main = "Función de densidad de una Exp(0.2)", type = "o")
557
590
```
558
591
559
592
593
+
## Distribución Exponencial
594
+
595
+
El código de la distribución Exponencial:
596
+
597
+
- En `R` tenemos las funciones del paquete `stats`: `dexp(x, rate), pexp(q, rate), qexp(p, rate), rexp(n, rate)` donde `rate`$=\lambda$ es el tiempo entre dos sucesos consecutivos de la distribución.
598
+
- En `Python` tenemos las funciones del paquete `scipy.stats.expon`: `pdf(k, scale), cdf(k, scale), ppf(q, scale), rvs(n, scaler)` donde `scale`$=1/\lambda$ es la inversa del tiempo entre dos sucesos consecutivos de la distribución.
599
+
600
+
560
601
## Distribución Normal
561
602
562
603
Una v.a. $X$ tiene distribución normal o gaussiana de parámetros $\mu$ y $\sigma$, $X\sim\mathcal{N}(\mu,\sigma)$ si su función de densidad es $$f_X(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu)^2}{2\sigma^2}}\quad \forall x\in\mathbb{R}$$
- En `R` tenemos las funciones del paquete `stats`: `dnorm(x, mean, sd), pnorm(q, mean, sd), qnorm(p, mean, sd), rnorm(n, mean, sd)` donde `mean` es la media y `sd` es la desviación estándar de la normal $N(\mu, \sigma)$.
637
+
- En `Python` tenemos las funciones del paquete `scipy.stats.expon`: `pdf(k, mu, scale), cdf(k, mu, scale), ppf(q, mu, scale), rvs(n, mu, scale)` donde `mu` es la media y `scale` es la desviación estándar de la normal $N(\mu, \sigma)$.
638
+
639
+
591
640
## Distribución Normal
592
641
593
642
<lclass = "prop">Estandarización de una v.a. normal.</l> Si $X$ es una v.a. $\mathcal{N}(\mu,\sigma)$, entonces $$Z=\frac{X-\mu}{\sigma}\sim\mathcal{N}(0,1)$$
@@ -610,6 +659,23 @@ Si a la hora de llamar a alguna de las 4 funciones siguientes: `dnorm`, `pnorm`,
610
659
611
660
Es decir, R interpreta $\mu = 0$ y $\sigma = 1$
612
661
662
+
## Otras distribuciones importantes
663
+
664
+
- La distribución $\chi^2_k$, donde $k$ representa los grados de libertad de la misma y que procede de la suma de los cuadrados de $k$ distribuciones normales estándar independientes:
665
+
666
+
$$X = Z_1^2 + Z_2^2+\cdots + Z_k^2\sim \chi_k^2$$
667
+
668
+
## Otras distribuciones importantes
669
+
670
+
- La distribución $t_k$ surge del problema de estimar la media de una población normalmente distribuida cuando el tamaño de la muestra es pequeña y procede del cociente
671
+
672
+
$$T = \frac{Z}{\sqrt{\chi^2_k/k}}\sim T_k$$
673
+
674
+
## Otras distribuciones importantes
675
+
676
+
- La distribución $F_{n_1,n_2}$ aparece frecuentemente como la distribución nula de una prueba estadística, especialmente en el análisis de varianza. Viene definida como el cociente
0 commit comments