blob: f390a541662bbe2affaa3583b926d055f754b8de [file] [log] [blame]
---
title: "Entregable 2 - Estadística"
subtitle: "Grau de Matemàtiques, Curs 2020-21"
author: "Vilanova Martínez, Adrià"
output: html_document
---
```{r message=FALSE}
# Libraries
library(EnvStats)
```
## Configuració
Aquí es pot configurar la pràctica depenent del que es pregunti:
```{r}
# Si |generate_random| és TRUE, en comptes d'utilitzar la mostra donada a la
# variable |input|, es genera una mostra aleatòria seguint la distribució
# binomial negativa de mida |random_n|, amb paràmetres |random_size| i
# |random_prob|
generate_random = FALSE
# Dades de la mostra (s'usen si |generate_random| és FALSE)
input = data.frame(
value = seq(0, 29),
freq = c(0, 0, 2, 5, 11, 34, 68, 77, 139, 152, 192, 211, 190, 170, 170, 155, 109, 98, 69, 59, 31, 23, 20, 6, 3, 1, 1, 2, 2, 0) # Adri
#freq = c(4, 26, 60, 85, 155, 177, 186, 197, 213, 202, 148, 123, 116, 74, 58, 55, 40, 31, 11, 11, 5, 11, 2, 6, 2, 1, 1, 0, 0, 0) # Pedro
#freq = c(0, 5, 20, 31, 71, 97, 143, 155, 202, 174, 193, 167, 166, 141, 115, 84, 59, 54, 37, 28, 20, 15, 8, 6, 5, 1, 2, 0, 0, 1) # Paula
)
# Paràmetres de la mostra aleatòria (s'usen si |generate_random| és TRUE)
random_size = 10
random_prob = 0.3
random_n = 2000
# == Adri ==
# Probabilitat de la regió de predicció de la pregunta 11:
prob_11 = 0.99
# Paràmetres a, b i r de l'apartat c:
a_c = -0.3
b_c = -0.5
r_c = 43
# == Pedro ==
# Probabilitat de la regió de predicció de la pregunta 11:
#prob_11 = 0.95
# Paràmetres a, b i r de l'apartat c:
#a_c = 0.3
#b_c = 2
#r_c = 7
# == Paula ==
# Probabilitat de la regió de predicció de la pregunta 11:
#prob_11 = 0.9
# Paràmetres a, b i r de l'apartat c:
#a_c = 0.2
#b_c = 0.8
#r_c = 15
```
```{r}
if (generate_random == FALSE) {
dd = data.frame(
v = rep(input$value, input$freq)
)
} else {
dd = data.frame(
v = rnbinom(random_n, size=random_size, prob=random_prob)
)
}
```
Comprovació (el valor hauria de ser igual al del full de l'entregable): <ch>$\sum_{i=1}^{29} X^2 = `r format(sum(dd$v^2), scientific = FALSE)`$</ch>
## Apartat a)
**Estimeu pel mètode dels moments els paràmetres $p$ i $r$, utilitzant els dos primers moments. Per veure si l'estimació ajusta bé, dibuixeu i compareu la funció de distribució estimada $f_{mm}(x)$ amb l'empírica $F_{fr}(x)$ i contesteu les preguntes següents:**
Els moments teòrics són:
$$\begin{cases}
\mu_1 = \mathbb{E}[X] = \frac{r(1 - p)}{p} \\
\mu_2 = \mathbb{E}[X^2] = \mathbb{E}[X]^2 + Var(X) = \left( \frac{r(1 - p)}{p} \right)^2 + \frac{r(1 - p)}{p^2}
\end{cases}$$
Pel mètode dels moments, igualem els moments mostrals i teòrics:
$$\begin{cases}
\hat{\mu}_1 = \frac{r(1 - p)}{p} \\
\hat{\mu}_2 = \left( \frac{r(1 - p)}{p} \right)^2 + \frac{r(1 - p)}{p^2} = \hat{\mu}_1^2 + \frac{\hat{\mu}_1}{p}
\end{cases}$$
De la segona equació podem aïllar $p$ i trobem:
$$\hat{p}_{mm} = \frac{\hat{\mu}_1^2}{\hat{\mu}_2 - \hat{\mu}_1^2}$$
Després substituim aquest resultat a la primera equació, i aïllant $r$ trobem que:
$$\hat{r}_{mm} = \frac{\hat{\mu}_1^2}{\hat{\mu}_2 - \hat{\mu}_1^2 - \hat{\mu}_1}$$
### Pregunta 1
El valor estimat de $p$ és:
```{r}
mu1 = mean(dd$v)
#mu2 = mean(dd$v)^2 + var(dd$v) # WRONG
mu2 = sum(dd$v^2)/length(dd$v)
pmm = mu1/(mu2 - mu1^2)
pmm
```
### Pregunta 2
El valor estimat de $r$ és:
```{r}
rmm = mu1^2/(mu2 - mu1^2 - mu1)
rmm
```
### Pregunta 3
El valor estimat de $\mathbb{E}[X]$ és:
```{r}
mu1
```
### Pregunta 4
El valor estimat de $Var(X)$ és:
```{r}
# Although we could also calculate varx as |mu2 - mu1^2|, it is much cleaner to
# do it this way
#varx = var(dd$v) # WRONG
#varx
mu2 - mu1^2
```
### Pregunta 5
El valor de $\max(|F_{mm}(x) - F_{fr}(x)|)$ és:
```{r}
pemp_x = function(x) {
return(pemp(x, dd$v, discrete=TRUE))
}
pnbinom_a = function(x) {
return(pnbinom(x, size=rmm, prob=pmm))
}
graph_max = max(dd$v) + 5
curve(pemp_x, col="red", from=0, to=graph_max, n=3333)
curve(pnbinom_a, col="blue", from=0, to=graph_max, n=3333, add=T)
legend(1, 1, legend=c("pemp(x)", "pnbinom_mm(x)"), col=c("red", "blue"), lty=c(1, 1))
```
```{r}
curve(abs(pemp_x(x) - pnbinom_a(x)), from=0, to=graph_max, ylab="abs(pemp(x) - pnbinom_mm(x))", n=3333)
xeq = seq(-1, graph_max, 0.5)
max(abs(pemp_x(xeq) - pnbinom_a(xeq)))
```
## Apartat b)
**Estimeu pel mètode de la màxima versemblança els paràmetres $p$ i $r$. Per veure si l'estimació s'ajusta bé, dibuixeu i compareu la funció de distribució estimada $F_mm(x)$ amb l'empírica $F_{fr}(x)$ i contesteu les preguntes següents:**
La funció de probabilitat de la distribució binomial negativa és:
$$P(X = x) = \binom{r + x - 1}{x} p^r (1 - p)^x$$
Per tant, la funció de versemblança és:
$$L(p, r) \equiv L(p, r | \underset{\sim}{X}) = \prod_{i=1}^n \frac{\Gamma(r + x_i)}{\Gamma(r) \, x_i!} p^r (1 - p)^{x_i}$$
L'estimador de màxima versemblança és el que maximitza $L(p, r)$, i ho fa si i només si maximitza la funció de log-versemblança:
$$l(p, r) := \log(L(p, r)) = \sum_{i = 1}^n \left[ \log(\Gamma(r + x_i)) - \log(\Gamma(r)) - \log(x_i!) + r \log(p) + x_i \log(1 - p) \right]$$
Si derivem la funció de la log-versemblança i igualem les derivades a 0 per trobar màxims o mínims locals, trobem les següents equacions:
$$\begin{cases}
\displaystyle 0 = \frac{\partial l}{\partial r} = \sum_{i = 1}^n \psi(r + x_i) + n (\log(p) - \psi(r)) \\
\displaystyle 0 = \frac{\partial l}{\partial p} = n \left( \frac{r}{p} - \frac{\bar{X}}{1 - p} \right) \\
\end{cases}$$
on $\psi(x) = \frac{\partial}{\partial x} \log(\Gamma(x))$ és la funció digamma.
Reordenant la segona equació tenim:
$$p = \frac{r}{\bar{X} + r}$$
I si substituïm aquesta darrera expressió a la primera equació, obtenim:
$$0 = \sum_{i = 1}^n \psi(r + x_i) + n \left( \log\left( \frac{r}{\bar{X} + r} \right) - \psi(r) \right) =: F(r)$$
Aquí hem seguit el procediment conegut com a "profiling": trobar la solució explícita per un dels paràmetres en funció dels altres, i substituir aquesta expressió a les altres equacions per rebaixar la dimensió.
Com ens ha quedat una equació amb una incògnita, trobarem els zeros d'aquesta darrera funció per tal de trobar el valor de $r$, i mitjançant l'anterior expressió trobarem el valor de $p$.
La gràfica de la funció anterior $F(r)$ és:
```{r}
fr_scalar = function (r, x) {
return(sum(psigamma(x + r)) + length(x)*(log(r/(mean(x) + r)) - psigamma(r)))
}
fr_list = function (r, x) {
val = lapply(r, fr_scalar, x)
return(val)
}
x_l = seq(0.01, 300, length.out=3333)
y_l = fr_list(x_l, dd$v)
plot(x_l, y_l, xlim=c(0.01, 125), ylim=c(-2, 2), ylab="F(r | x)", type="l")
```
### Pregunta 6
El valor estimat de $p$ és:
```{r}
fr_uniparametric = function (r) {
return(fr_scalar(r, dd$v))
}
r_ml_result = uniroot(fr_uniparametric, lower=0.01, upper=1e5, tol=1e-10)
r_ml = r_ml_result$root
p_ml = r_ml/(mu1 + r_ml)
p_ml
```
### Pregunta 7
El valor estimat de $r$ és:
```{r}
r_ml
```
<span style="color: #aaa;">L'error estimat és de `r r_ml_result$estim.prec`</span>
### Pregunta 8
El valor estimat de $\mathbb{E}(X)$ és:
```{r}
mu1_ml = (r_ml*(1 - p_ml))/p_ml
mu1_ml
```
### Pregunta 9
El valor estimat de $Var(X)$ és:
```{r}
var_ml = (r_ml*(1 - p_ml))/(p_ml^2)
var_ml
```
### Pregunta 10
El valor de $\max(|F_{mv}(x) - F_{fr}(x)|)$ és:
```{r}
# |pemp_x| definida a la pregunta 5
pnbinom_b = function(x) {
return(pnbinom(x, size=r_ml, prob=p_ml))
}
curve(pemp_x, col="red", from=0, to=graph_max, n=3333)
curve(pnbinom_b, col="blue", from=0, to=graph_max, n=3333, add=T)
legend(1, 1, legend=c("pemp(x)", "pnbinom_ml(x)"), col=c("red", "blue"), lty=c(1, 1))
```
```{r}
curve(abs(pemp_x(x) - pnbinom_b(x)), from=0, to=graph_max, ylab="abs(pemp(x) - pnbinom_ml(x))", n=3333)
# |xeq| definida a la pregunta 5
max(abs(pemp_x(xeq) - pnbinom_b(xeq)))
```
### Pregunta 11
Assumint que els valors dels paràmetres de $X$ fossin els valors estimats per màxima versemblança, trobeu $[a, b]$, la regió de predicció de $X$ (amb probabilitat <ch>`r prob_11`</ch> i dues cues equiprobables):
**Resolució:**
Volum una regió central amb probabilitat més gran o igual a `r prob_11` i per tant dues cues amb probabilitat menor o igual a $\alpha := \frac{1 - `r prob_11`}{2}$. A més a més, volem que les cues siguin el més gran possibles dins del rang de probabilitats que poden prendre.
```{r}
alpha_11 = (1-prob_11)/2
#a_11 = qnbinom(alpha_11, size=r_ml, prob=p_ml) + 1
a_prov = -1
for (i in 0:10000) {
if (pnbinom(i, size=r_ml, prob=p_ml) <= alpha_11) {
a_prov = i + 1
} else {
break
}
}
a_11 = a_prov
b_11 = qnbinom(1 - alpha_11, size=r_ml, prob=p_ml)
```
> $[`r a_11`, `r b_11`]$
### Pregunta 12
De la regió de l'apartat 11) calculeu $Pr(X \in [a, b])$:
```{r}
p_12 = pnbinom(b_11, size=r_ml, prob=p_ml) - pnbinom(a_11 - 1, size=r_ml, prob=p_ml)
p_12
```
## Apartat c)
**En el supòsit que considerem que $p$ és una v.a. amb funció de densitat proporcional a $f(p) \propto p^a (1 - p)^b$, amb <ch>$a = `r a_c`$</ch> i <ch>$b = `r b_c`$</ch> amb el valor de $r$ conegut i igual a <ch>$`r r_c`$</ch>. Un cop coneguda la vostra mostra, calculeu la funció de densitat a posteriori de $p$, dibuixeu-la i contesteu les preguntes següents:**
### Pregunta 13
L'esperança de la distribució a posteriori de $p$ és:
```{r}
# Paràmetres de la distribució a posteriori:
alpha_post = a_c + length(dd$v)*r_c + 1
beta_post = b_c + length(dd$v)*mean(dd$v) + 1
esp_13 = (alpha_post)/(alpha_post + beta_post)
esp_13
```
### Pregunta 14
La variància de la distribució a posteriori de $p$ és:
```{r}
var_14 = (alpha_post*beta_post)/((alpha_post + beta_post)^2*(alpha_post + beta_post + 1))
var_14
```
### Pregunta 15
A posteriori, l'esperança de $X$ és:
```{r}
esp_15 = r_c*beta_post/(alpha_post - 1)
esp_15
```
### Pregunta 16
A posteriori, la variància de $X$ és:
```{r}
#var_16 = r_c*(r_c + 1)*(alpha_post + beta_post - 1)*beta_post/((alpha_post - 1)*(alpha_post - 2)) - esp_15^2
#var_16
r_c*(alpha_post + beta_post - 1)*beta_post/((alpha_post - 1)*(alpha_post - 2)) + r_c^2*beta_post*(beta_post + 1)/((alpha_post - 1)*(alpha_post - 2)) - r_c^2*beta_post^2/((alpha_post - 1)^2)
```
<!-- Custom styles -->
<style>
/* ch element (|ch| stands for check) */
ch {
color: red;
}
</style>