Skip to content

Commit

Permalink
Distribuciones discretas Tema 11
Browse files Browse the repository at this point in the history
  • Loading branch information
joanby committed Feb 5, 2019
1 parent d42e053 commit 34bd62a
Show file tree
Hide file tree
Showing 6 changed files with 197 additions and 29 deletions.
66 changes: 66 additions & 0 deletions scripts/tema11/02-binomial.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
---
title: "Binomial"
author: "Curso de Estadística Descriptiva"
date: "4/2/2019"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## Función de densidad
Sea $X = B(n = 30, p = 0.6)$,

TODO: escribir la FDens y la FDistr

## En `R`

```{r}
library(Rlab)
n = 30
p = 0.6
plot(0:n, dbinom(0:n, size = n, prob = p))
plot(0:n, pbinom(0:n, size = n, prob = p))
qbinom(0.5, n, p)
qbinom(0.25, n, p)
hist(rbinom(100000, n, p), breaks = 0:30)
```

## En Python

```{python}
from scipy.stats import binom
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(1,1)
n = 7
p = 0.4
mean, var, skew, kurt = binom.stats(n, p, moments = 'mvsk')
print("Media %f"%mean)
print("Varianza %f"%var)
print("Sesgo %f"%skew)
print("Curtosis %f"%kurt)
x = np.arange(0, n+1)
ax.plot(x, binom.pmf(x, n, p), 'bo', ms = 8, label = "Función de densidad de B(7,0.4)")
ax.vlines(x, 0, binom.pmf(x,n,p), colors = 'b', lw = 4, alpha = 0.5)
rv = binom(n,p)
ax.vlines(x,0, rv.pmf(x), colors = 'k', linestyles='--', lw = 1, label = "Distribución teórica")
ax.legend(loc = 'best', frameon = False)
plt.show()
fix, ax = plt.subplots(1,1)
r = binom.rvs(n, p, size = 10000)
ax.hist(r, bins = 7)
plt.show()
```

Binary file added scripts/tema11/02-binomial.pdf
Binary file not shown.
65 changes: 65 additions & 0 deletions scripts/tema11/03-geom.Rmd
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
---
title: "Geométrica"
author: "Curso de Estadística Descriptiva"
date: "4/2/2019"
output: pdf_document
---

```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## Función de densidad

Sea $X=Geom(p=0.1)$ la distribución que modela la probabilidad de intentar abrir una puerta hasta conseguirlo.

$$f(k) = (1-p)^{k-1}p$$


## En `R`

```{r}
library(Rlab)
p = 0.1
plot(0:20, dgeom(0:20, p))
plot(0:20, pgeom(0:20, p), ylim = c(0,1))
qgeom(0.5, p)
qgeom(0.75, p)
hist(rgeom(10000, p))
```

## En Python
```{python}
from scipy.stats import geom
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots(1,1)
p = 0.3
mean, var, skew, kurt = geom.stats(p, moments = 'mvsk')
print("Media %f"%mean)
print("Varianza %f"%var)
print("Sesgo %f"%skew)
print("Curtosis %f"%kurt)
x = np.arange(geom.ppf(0.01,p), geom.ppf(0.99, p))
ax.plot(x, geom.pmf(x, p), 'bo', ms = 8, label = "Función de probabilidad de Geom(0.3)")
ax.vlines(x,0,geom.pmf(x,p), colors = 'b', lw = 4, alpha = 0.5)
rv = geom(p)
ax.vlines(x,0,rv.pmf(x), colors = 'k', linestyles = '--', lw = 1, label = "Frozen PMF")
ax.legend(loc = 'best')
plt.show()
fig, ax = plt.subplots(1,1)
prob = geom.cdf(x,p)
ax.plot(x, prob, 'bo', ms = 8, label = "Función de distribución acumulada")
plt.show()
fig, ax = plt.subplots(1,1)
r = geom.rvs(p, size = 10000)
plt.hist(r)
plt.show()
```

Binary file added scripts/tema11/03-geom.pdf
Binary file not shown.
53 changes: 39 additions & 14 deletions teoria/Tema11.Rmd
Original file line number Diff line number Diff line change
Expand Up @@ -270,12 +270,19 @@ donde $p$ es la probabilidad de éxito y $q = 1-p$ es la probabilidad de fracaso

```{r, echo = FALSE}
par(mfrow = c(1,2))
plot(dbinom(1:50,50,0.5),col = "purple", xlab = "", ylab = "", main = "Función de probabilidad de una B(50,0.5)")
plot(pbinom(1:50,50,0.5),col = "purple", xlab = "", ylab = "", main = "Función de distribución de una B(50,0.5)")
plot(0:50,dbinom(0:50,50,0.5),col = "purple", xlab = "", ylab = "", main = "Función de probabilidad de una B(50,0.5)")
plot(0:50, pbinom(0:50,50,0.5),col = "purple", xlab = "", ylab = "", main = "Función de distribución de una B(50,0.5)", ylim = c(0,1))
par(mfrow= c(1,1))
```

## Distribución Binomial

El código de la distribución Binomial:

- En `R` tenemos las funciones del paquete `Rlab`: `dbinom(x, size, prob), pbinom(q,size, prob), qbinom(p, size, prob), rbinom(n, size, prob)` donde `prob` es la probabilidad de éxito y `size` el número de ensayos del experimento.
- En `Python` tenemos las funciones del paquete `scipy.stats.binom`: `pmf(k,n,p), cdf(k,n,p), ppf(q,n,p), rvs(n, p, size)` donde `p` es la probabilidad de éxito y `n` el número de ensayos del experimento.

## Distribución Geométrica

Si $X$ es variable aleatoria que mide el "número de repeticiones independientes del experimento hasta haber conseguido éxito", diremos que $X$ se distribuye como una Geométrica con parámetro $p$
Expand Down Expand Up @@ -304,12 +311,19 @@ $$f(k) = (1-p)^{k-1}p \qquad\text{ si empieza en 1}$$

```{r, echo = FALSE}
par(mfrow = c(1,2))
plot(dgeom(1:20,0.5),col = "purple", xlab = "", ylab = "", main = "Función de probabilidad de una Ge(0.5)")
plot(pgeom(1:20,0.5),col = "purple", xlab = "", ylab = "", main = "Función de distribución de una Ge(0.5)")
plot(0:20, dgeom(0:20,0.5),col = "purple", xlab = "", ylab = "", main = "Función de probabilidad de una Ge(0.5)")
plot(0:20, pgeom(0:20,0.5),col = "purple", xlab = "", ylab = "", main = "Función de distribución de una Ge(0.5)", ylim = c(0,1))
par(mfrow= c(1,1))
```

## Distribución Geométrica

El código de la distribución Geométrica:

- En `R` tenemos las funciones del paquete `Rlab`: `dgeom(x, prob), pgeom(q, prob), qgeom(p, prob), rgeom(n, prob)` donde `prob` es la probabilidad de éxito del experimento.
- En `Python` tenemos las funciones del paquete `scipy.stats.geom`: `pmf(k,p), cdf(k,p), ppf(q,p), rvs(p, size)` donde `p` es la probabilidad de éxito del experimento.

## Distribución Hipergeométrica

Consideremos el experimento "extraer a la vez (o una detrás de otra, sin retornarlos) $n$ objetos donde hay $N$ de tipo A y $M$ de tipo B". Si $X$ es variable aleatoria que mide el "número de objetos del tipo A", diremos que $X$ se distribuye como una Hipergeométrica con parámetros $N,M,n$
Expand All @@ -334,8 +348,8 @@ $$X\sim \text{H}(N,M,n)$$

```{r, echo = FALSE}
par(mfrow = c(1,2))
plot(dhyper(1:30,10,20,10),col = "purple", xlab = "", ylab = "", main = "Función de probabilidad de una H(20,10,30)")
plot(phyper(1:30,10,20,10),col = "purple", xlab = "", ylab = "", main = "Función de distribución de una H(20,10,30)")
plot(0:30, dhyper(0:30,10,20,10),col = "purple", xlab = "", ylab = "", main = "Función de probabilidad de una H(20,10,30)")
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))
par(mfrow= c(1,1))
```
Expand Down Expand Up @@ -363,14 +377,25 @@ donde $\lambda$ representa el número de veces que se espera que ocurra el event
- **Esperanza** $E(X) = \lambda$
- **Varianza** $Var(X) = \lambda$

<<<<<<< HEAD

## Distribución de Poisson

```{r, echo = FALSE}
par(mfrow = c(1,2))
plot(0:20, dpois(0:20,2),col = "purple", xlab = "", ylab = "", main = "Función de probabilidad de una Po(2)")
plot(0:20, ppois(0:20,2),col = "purple", xlab = "", ylab = "", main = "Función de distribución de una Po(2)", ylim = c(0,1))
par(mfrow= c(1,1))
```


## Distribución Binomial Negativa

Si $X$ es variable aleatoria que mide el "número de repeticiones hasta observar los $r$ éxitos en ensayos de Bernoulli con probabilidad $p$", diremos que $X$ se distribuye como una Binomial Negativa con parámetros $r$ y $p$, $BN(r,p)$.

- El **espacio muestral** de $X$ será $X(\Omega) = \{r, r+1, r+2,\dots\}$

- La **función de densidad** vendrá dada por $$f(k) = {k-1\choose r-1}p^r(1-p)^{k-r}, k\geq r$$
- La **función de densidad** vendrá dada por $$f(k) = {k-1\choose r-1}p^r(1-p)^{k-r} \ \mathrm{si}\ k\geq r$$


## Distribución Binomial Negativa
Expand All @@ -380,17 +405,17 @@ Si $X$ es variable aleatoria que mide el "número de repeticiones hasta observar
- **Esperanza** $E(X) = \frac{r}{p}$
- **Varianza** $Var(X) = r\frac{1-p}{p^2}$

=======
## Distribución de Poisson

```{r, echo = FALSE}
par(mfrow = c(1,2))
plot(dpois(1:20,2),col = "purple", xlab = "", ylab = "", main = "Función de probabilidad de una Po(2)")
plot(ppois(1:20,2),col = "purple", xlab = "", ylab = "", main = "Función de distribución de una Po(2)")
exitos = 5
size = 20
plot(c(rep(0,exitos),exitos:(size+exitos)), c(rep(0,exitos),dnbinom(0:size,exitos,0.5)),col = "purple", xlab = "", ylab = "", main = "Función de probabilidad de una BN(5, 0.5)")
plot(c(rep(0,exitos),exitos:(size+exitos)), c(rep(0,exitos),pnbinom(0:size,exitos,0.5)),col = "purple", xlab = "", ylab = "", main = "Función de distribución de una BN(5, 0.5)")
par(mfrow= c(1,1))
```
>>>>>>> 899de88f93fab102ba58ac838f929ad8950cebad



## Distribuciones discretas en R

Expand Down
42 changes: 27 additions & 15 deletions teoria/Tema11.html

Large diffs are not rendered by default.

0 comments on commit 34bd62a

Please sign in to comment.