diff --git a/entregables/ent3/ent3.Rmd b/entregables/ent3/ent3.Rmd
new file mode 100644
index 0000000..c0863e5
--- /dev/null
+++ b/entregables/ent3/ent3.Rmd
@@ -0,0 +1,252 @@
+---
+title: "Entregable 3 - Estadística"
+subtitle: "Grau de Matemàtiques, Curs 2020-21"
+author: "Vilanova Martínez, Adrià"
+output: html_document
+---
+
+```{r message=FALSE}
+# Libraries
+library(EnvStats)
+
+# Decimal separator (we have to fill in the results with commas :( )
+options(OutDec=",")
+```
+
+## Configuració
+Aquí es pot configurar la pràctica depenent del que es pregunti:
+
+```{r}
+# APARTAT A
+# Esperança de l'estadístic T(X):
+a_alpha = 3.01
+a_beta = 0.07
+
+# APARTAT B
+# Mitjana dels log(X)
+b_logx_mean = 2.97913
+# Mitjana dels 1/X
+b_invx_mean = 0.06817
+# Mida de la mostra
+b_n = 300
+
+# APARTAT C
+# 1 - alpha (sobre 1) de l'interval de confiança asimptòtic
+c_int = 0.9
+```
+
+Altres dades:
+
+```
+# == PAULA ==
+a_alpha = 2.02
+a_beta = 0.16
+b_logx_mean = 1.99872
+b_invx_mean = 0.16025
+b_n = 376
+c_int = 0.9
+
+# == PEDRO ==
+a_alpha = 1.67
+a_beta = 0.21
+b_logx_mean = 1.69553
+b_invx_mean = 0.20009
+b_n = 338
+c_int = 0.9
+```
+
+
+## Introducció
+
+**Considerem la variable aleatòria biparamètrica $X$ amb funció de densitat:**
+
+$$f(x; \lambda, \eta) = \frac{\eta^\lambda}{\Gamma(\lambda)} x^{-\lambda - 1} e^{-\frac{\eta}{x}}$$
+
+**Comproveu que és una família exponencial amb els estadístics $T(x) = (\log(x), \frac{1}{x})$, trobeu-ne el paràmetre canònic $\theta = (\theta_1, \theta_2)$ i la constant $C(\theta)$. En algut apartat caldrà fer servir la funció digamma $\psi(x)$ que correspon a la derivada del logaritme de la funció Gamma.**
+
+$$f(x; \lambda, \eta) = \frac{\eta^\lambda}{\Gamma(\lambda)} x^{-\lambda - 1} e^{-\frac{\eta}{x}} = \frac{\eta^\lambda}{\Gamma(\lambda)} x^{-\lambda - 1} e^{-\frac{\eta}{x}}$$
+
+## Apartat a)
+**En el cas que sabéssim que <ch>$\mathbb{E}[T(X)] = (`r a_alpha`, `r a_beta`) = (\alpha, \beta)$</ch>, contesteu les preguntes següents:**
+
+### Pregunta 1
+Quin seria el valor de $\lambda$?
+
+$$\log\left(\frac{\lambda}{\beta}\right) - \psi(\lambda) - \alpha = 0$$
+
+```{r}
+a_eq = function (lambda) {
+  return(log(lambda/a_beta) - digamma(lambda) - a_alpha)
+}
+
+a_lambda_result = uniroot(a_eq, lower=0.01, upper=1e5, tol=1e-10)
+a_lambda = a_lambda_result$root
+a_lambda
+```
+
+### Pregunta 2
+Quin seria el valor de $\eta$?
+
+$$\eta = \frac{\lambda}{\beta}$$
+
+```{r}
+a_eta = a_lambda/a_beta
+a_eta
+```
+
+### Pregunta 3
+Quin seria el valor de $Var(\log(X))$?
+
+$$Var(\log(X)) = \psi'(\lambda)$$
+
+```{r}
+r3 = trigamma(a_lambda)
+r3
+```
+
+### Pregunta 4
+Quin seria el valor de $Var\left(\frac{1}{X}\right)$?
+
+$$Var\left(\frac{1}{X}\right) = \frac{\lambda}{\eta^2}$$
+
+```{r}
+r4 = a_lambda/(a_eta**2)
+r4
+```
+
+### Pregunta 5
+Quin seria el valor de $Cov\left(\log(X), \frac{1}{X}\right)$?
+
+$$Cov\left(\log(X), \frac{1}{X}\right) = - \frac{1}{\eta}$$
+
+```{r}
+r5 = -1/a_eta
+r5
+```
+
+## Apartat b)
+**En la situació habitual en què no coneixem el valor dels paràmetres, però tenim una mostra: si la grandària és <ch>`r b_n`</ch>, la mitjana dels logaritmes de les $X$ ha donat <ch>`r b_logx_mean`</ch> i la de les inverses $\frac{1}{X}$ ha donat <ch>`r b_invx_mean`</ch>, estimeu per màxima versemblança els paràmetres de la distribució $\lambda$ i $\eta$. Calculeu la matriu d'Informació en els paràmetres canònics, avalueu la matriu en el màxim versemblant, i contesteu:**
+
+Primer trobem els estimadors de $\alpha$, $\beta$:
+
+```{r}
+b_alpha = b_logx_mean
+b_beta = b_invx_mean
+```
+
+Aleshores, ara hem de resoldre les mateixes equacions de les preguntes 1 i 2 per transformar els estimadors de $\alpha$, $\beta$ en els estimadors de $\lambda$, $\eta$ pel principi de la invariància.
+
+```{r}
+b_eq = function (lambda) {
+  return(log(lambda/b_beta) - digamma(lambda) - b_alpha)
+}
+
+b_lambda_result = uniroot(b_eq, lower=0.01, upper=1e5, tol=1e-10)
+b_lambda = b_lambda_result$root
+b_eta = b_lambda/b_beta
+```
+
+### Pregunta 6
+L'estimador m.v. de $\lambda$ ha donat:
+
+```{r}
+b_lambda
+```
+
+
+### Pregunta 7
+L'estimador m.v. d'$\eta$ ha donat:
+
+```{r}
+b_eta
+```
+
+### Pregunta 8
+El terme $[1, 1]$ de la matriu d'informació obtinguda és:
+
+```{r}
+b_IX11 = b_n*trigamma(b_lambda)
+b_IX11
+```
+
+### Pregunta 9
+El terme $[2, 2]$ de la matriu d'informació obtinguda és:
+
+```{r}
+b_IX22 = b_n*b_lambda/(b_eta**2)
+b_IX22
+```
+
+### Pregunta 10
+El terme $[1, 2]$ de la matriu d'informació obtinguda és:
+
+```{r}
+b_IX12 = b_n*(-1/b_eta)
+b_IX12
+```
+
+## Apartat c)
+**En la mateixa situació de l'apartat b), calculeu la fita de Cramer-Rao de l'estimador màxim versemblant de $T(X) = \left( \mathbb{E}[\log(X)], \mathbb{E}\left[ \frac{1}{X} \right] \right)$. Utilitzant el teorema central del límit, calculeu l'interval de confiança asimptòtic (<ch>`r c_int`</ch> dues cues) del paràmetre $\lambda$, i també el de $\eta$. Contesteu:**
+
+### Pregunta 11
+La fita de Cramer-Rao de l'estimador m.v. de $\mathbb{E}[\log(x)]$ és:
+
+```{r}
+r11 = 1/b_n*trigamma(b_lambda)
+r11
+```
+
+### Pregunta 12
+La fita de Cramer-Rao de l'estimador m.v. de $\mathbb{E}\left[ \frac{1}{X} \right]$ és:
+
+```{r}
+r12 = 1/b_n*(b_lambda/(b_eta**2))
+r12
+```
+
+## Pregunta 13
+L'interval de confiança de $\lambda$ és:
+
+```{r}
+alpha = 1 - c_int
+cota1 = b_lambda/(b_n*(b_lambda*trigamma(b_lambda) - 1))
+c_13_a = qnorm(alpha/2)*sqrt(cota1) + b_lambda
+c_13_b = qnorm(1 - alpha/2)*sqrt(cota1) + b_lambda
+```
+
+$[`r c_13_a`, `r c_13_b`]$
+
+## Pregunta 14
+L'interval de confiança de $\eta$ és:
+
+```{r}
+cota2 = (b_eta**2)*trigamma(b_lambda)/(b_n*(b_lambda*trigamma(b_lambda) - 1))
+c_14_a = qnorm(alpha/2)*sqrt(cota2) + b_eta
+c_14_b = qnorm(1 - alpha/2)*sqrt(cota2) + b_eta
+```
+
+$[`r c_14_a`, `r c_14_b`]$
+
+## Resum
+1. `r a_lambda`
+2. `r a_eta`
+3. `r r3`
+4. `r r4`
+5. `r r5`
+6. `r b_lambda`
+7. `r b_eta`
+8. `r b_IX11`
+9. `r b_IX22`
+10. `r b_IX12`
+11. `r r11`
+12. `r r12`
+13. `r c_13_a`
+14. `r c_14_b`
+
+<!-- Custom styles -->
+<style>
+/* ch element (|ch| stands for check) */
+ch {
+  color: red;
+}
+</style>
