blob: f390a541662bbe2affaa3583b926d055f754b8de [file] [log] [blame]
Adrià Vilanova Martínez6baabbf2021-06-18 14:33:05 +02001---
2title: "Entregable 2 - Estadística"
3subtitle: "Grau de Matemàtiques, Curs 2020-21"
4author: "Vilanova Martínez, Adrià"
5output: html_document
6---
7
8```{r message=FALSE}
9# Libraries
10library(EnvStats)
11```
12
13## Configuració
14Aquí es pot configurar la pràctica depenent del que es pregunti:
15
16```{r}
17# Si |generate_random| és TRUE, en comptes d'utilitzar la mostra donada a la
18# variable |input|, es genera una mostra aleatòria seguint la distribució
19# binomial negativa de mida |random_n|, amb paràmetres |random_size| i
20# |random_prob|
21generate_random = FALSE
22
23# Dades de la mostra (s'usen si |generate_random| és FALSE)
24input = data.frame(
25 value = seq(0, 29),
26 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
27 #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
28 #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
29)
30
31# Paràmetres de la mostra aleatòria (s'usen si |generate_random| és TRUE)
32random_size = 10
33random_prob = 0.3
34random_n = 2000
35
36# == Adri ==
37# Probabilitat de la regió de predicció de la pregunta 11:
38prob_11 = 0.99
39
40# Paràmetres a, b i r de l'apartat c:
41a_c = -0.3
42b_c = -0.5
43r_c = 43
44
45# == Pedro ==
46# Probabilitat de la regió de predicció de la pregunta 11:
47#prob_11 = 0.95
48
49# Paràmetres a, b i r de l'apartat c:
50#a_c = 0.3
51#b_c = 2
52#r_c = 7
53
54# == Paula ==
55# Probabilitat de la regió de predicció de la pregunta 11:
56#prob_11 = 0.9
57
58# Paràmetres a, b i r de l'apartat c:
59#a_c = 0.2
60#b_c = 0.8
61#r_c = 15
62```
63
64```{r}
65if (generate_random == FALSE) {
66 dd = data.frame(
67 v = rep(input$value, input$freq)
68 )
69} else {
70 dd = data.frame(
71 v = rnbinom(random_n, size=random_size, prob=random_prob)
72 )
73}
74```
75
76Comprovació (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>
77
78## Apartat a)
79**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:**
80
81Els moments teòrics són:
82
83$$\begin{cases}
84 \mu_1 = \mathbb{E}[X] = \frac{r(1 - p)}{p} \\
85 \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}
86\end{cases}$$
87
88Pel mètode dels moments, igualem els moments mostrals i teòrics:
89
90$$\begin{cases}
91 \hat{\mu}_1 = \frac{r(1 - p)}{p} \\
92 \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}
93\end{cases}$$
94
95De la segona equació podem aïllar $p$ i trobem:
96
97$$\hat{p}_{mm} = \frac{\hat{\mu}_1^2}{\hat{\mu}_2 - \hat{\mu}_1^2}$$
98
99Després substituim aquest resultat a la primera equació, i aïllant $r$ trobem que:
100
101$$\hat{r}_{mm} = \frac{\hat{\mu}_1^2}{\hat{\mu}_2 - \hat{\mu}_1^2 - \hat{\mu}_1}$$
102
103### Pregunta 1
104El valor estimat de $p$ és:
105
106```{r}
107mu1 = mean(dd$v)
108#mu2 = mean(dd$v)^2 + var(dd$v) # WRONG
109mu2 = sum(dd$v^2)/length(dd$v)
110pmm = mu1/(mu2 - mu1^2)
111pmm
112```
113
114### Pregunta 2
115El valor estimat de $r$ és:
116
117```{r}
118rmm = mu1^2/(mu2 - mu1^2 - mu1)
119rmm
120```
121
122### Pregunta 3
123El valor estimat de $\mathbb{E}[X]$ és:
124```{r}
125mu1
126```
127
128### Pregunta 4
129El valor estimat de $Var(X)$ és:
130```{r}
131# Although we could also calculate varx as |mu2 - mu1^2|, it is much cleaner to
132# do it this way
133#varx = var(dd$v) # WRONG
134#varx
135mu2 - mu1^2
136```
137
138### Pregunta 5
139El valor de $\max(|F_{mm}(x) - F_{fr}(x)|)$ és:
140
141```{r}
142pemp_x = function(x) {
143 return(pemp(x, dd$v, discrete=TRUE))
144}
145
146pnbinom_a = function(x) {
147 return(pnbinom(x, size=rmm, prob=pmm))
148}
149
150graph_max = max(dd$v) + 5
151
152curve(pemp_x, col="red", from=0, to=graph_max, n=3333)
153curve(pnbinom_a, col="blue", from=0, to=graph_max, n=3333, add=T)
154legend(1, 1, legend=c("pemp(x)", "pnbinom_mm(x)"), col=c("red", "blue"), lty=c(1, 1))
155```
156
157```{r}
158curve(abs(pemp_x(x) - pnbinom_a(x)), from=0, to=graph_max, ylab="abs(pemp(x) - pnbinom_mm(x))", n=3333)
159xeq = seq(-1, graph_max, 0.5)
160max(abs(pemp_x(xeq) - pnbinom_a(xeq)))
161```
162
163## Apartat b)
164**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:**
165
166La funció de probabilitat de la distribució binomial negativa és:
167
168$$P(X = x) = \binom{r + x - 1}{x} p^r (1 - p)^x$$
169
170Per tant, la funció de versemblança és:
171
172$$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}$$
173
174L'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:
175
176$$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]$$
177
178Si 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:
179
180$$\begin{cases}
181 \displaystyle 0 = \frac{\partial l}{\partial r} = \sum_{i = 1}^n \psi(r + x_i) + n (\log(p) - \psi(r)) \\
182 \displaystyle 0 = \frac{\partial l}{\partial p} = n \left( \frac{r}{p} - \frac{\bar{X}}{1 - p} \right) \\
183\end{cases}$$
184
185on $\psi(x) = \frac{\partial}{\partial x} \log(\Gamma(x))$ és la funció digamma.
186
187Reordenant la segona equació tenim:
188
189$$p = \frac{r}{\bar{X} + r}$$
190
191I si substituïm aquesta darrera expressió a la primera equació, obtenim:
192
193$$0 = \sum_{i = 1}^n \psi(r + x_i) + n \left( \log\left( \frac{r}{\bar{X} + r} \right) - \psi(r) \right) =: F(r)$$
194
195Aquí 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ó.
196
197Com 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$.
198
199La gràfica de la funció anterior $F(r)$ és:
200
201```{r}
202fr_scalar = function (r, x) {
203 return(sum(psigamma(x + r)) + length(x)*(log(r/(mean(x) + r)) - psigamma(r)))
204}
205
206fr_list = function (r, x) {
207 val = lapply(r, fr_scalar, x)
208 return(val)
209}
210
211x_l = seq(0.01, 300, length.out=3333)
212y_l = fr_list(x_l, dd$v)
213
214plot(x_l, y_l, xlim=c(0.01, 125), ylim=c(-2, 2), ylab="F(r | x)", type="l")
215```
216
217### Pregunta 6
218El valor estimat de $p$ és:
219
220```{r}
221fr_uniparametric = function (r) {
222 return(fr_scalar(r, dd$v))
223}
224
225r_ml_result = uniroot(fr_uniparametric, lower=0.01, upper=1e5, tol=1e-10)
226r_ml = r_ml_result$root
227p_ml = r_ml/(mu1 + r_ml)
228p_ml
229```
230
231### Pregunta 7
232El valor estimat de $r$ és:
233
234```{r}
235r_ml
236```
237
238<span style="color: #aaa;">L'error estimat és de `r r_ml_result$estim.prec`</span>
239
240### Pregunta 8
241El valor estimat de $\mathbb{E}(X)$ és:
242```{r}
243mu1_ml = (r_ml*(1 - p_ml))/p_ml
244mu1_ml
245```
246
247### Pregunta 9
248El valor estimat de $Var(X)$ és:
249
250```{r}
251var_ml = (r_ml*(1 - p_ml))/(p_ml^2)
252var_ml
253```
254
255### Pregunta 10
256El valor de $\max(|F_{mv}(x) - F_{fr}(x)|)$ és:
257
258```{r}
259# |pemp_x| definida a la pregunta 5
260
261pnbinom_b = function(x) {
262 return(pnbinom(x, size=r_ml, prob=p_ml))
263}
264
265curve(pemp_x, col="red", from=0, to=graph_max, n=3333)
266curve(pnbinom_b, col="blue", from=0, to=graph_max, n=3333, add=T)
267legend(1, 1, legend=c("pemp(x)", "pnbinom_ml(x)"), col=c("red", "blue"), lty=c(1, 1))
268```
269
270```{r}
271curve(abs(pemp_x(x) - pnbinom_b(x)), from=0, to=graph_max, ylab="abs(pemp(x) - pnbinom_ml(x))", n=3333)
272# |xeq| definida a la pregunta 5
273max(abs(pemp_x(xeq) - pnbinom_b(xeq)))
274```
275
276### Pregunta 11
277Assumint 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):
278
279**Resolució:**
280
281Volum 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.
282
283```{r}
284alpha_11 = (1-prob_11)/2
285#a_11 = qnbinom(alpha_11, size=r_ml, prob=p_ml) + 1
286
287a_prov = -1
288for (i in 0:10000) {
289 if (pnbinom(i, size=r_ml, prob=p_ml) <= alpha_11) {
290 a_prov = i + 1
291 } else {
292 break
293 }
294}
295a_11 = a_prov
296b_11 = qnbinom(1 - alpha_11, size=r_ml, prob=p_ml)
297```
298
299> $[`r a_11`, `r b_11`]$
300
301### Pregunta 12
302De la regió de l'apartat 11) calculeu $Pr(X \in [a, b])$:
303
304```{r}
305p_12 = pnbinom(b_11, size=r_ml, prob=p_ml) - pnbinom(a_11 - 1, size=r_ml, prob=p_ml)
306p_12
307```
308
309
310## Apartat c)
311**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:**
312
313### Pregunta 13
314L'esperança de la distribució a posteriori de $p$ és:
315
316```{r}
317# Paràmetres de la distribució a posteriori:
318alpha_post = a_c + length(dd$v)*r_c + 1
319beta_post = b_c + length(dd$v)*mean(dd$v) + 1
320
321esp_13 = (alpha_post)/(alpha_post + beta_post)
322esp_13
323```
324
325### Pregunta 14
326La variància de la distribució a posteriori de $p$ és:
327
328```{r}
329var_14 = (alpha_post*beta_post)/((alpha_post + beta_post)^2*(alpha_post + beta_post + 1))
330var_14
331```
332
333### Pregunta 15
334A posteriori, l'esperança de $X$ és:
335
336```{r}
337esp_15 = r_c*beta_post/(alpha_post - 1)
338esp_15
339```
340
341### Pregunta 16
342A posteriori, la variància de $X$ és:
343
344```{r}
345#var_16 = r_c*(r_c + 1)*(alpha_post + beta_post - 1)*beta_post/((alpha_post - 1)*(alpha_post - 2)) - esp_15^2
346#var_16
347
348r_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)
349```
350
351<!-- Custom styles -->
352<style>
353/* ch element (|ch| stands for check) */
354ch {
355 color: red;
356}
357</style>