-
Notifications
You must be signed in to change notification settings - Fork 2
/
Capitulo_03.Rmd
1596 lines (1080 loc) · 85.3 KB
/
Capitulo_03.Rmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
# Teoría de la probabilidad {#TP}
```{r, echo = F}
options(knitr.duplicate.label = "allow")
```
```{r, 146, child="_setup.Rmd"}
```
```{r, 147, eval=knitr::opts_knit$get("rmarkdown.pandoc.to") == "html", results='asis', echo=FALSE}
cat('<hr style="background-color:#03193b;height:2px">')
```
Este capítulo revisa algunos conceptos básicos de la teoría de probabilidad y demuestra cómo se pueden aplicar en **R**.
La mayoría de las funciones estadísticas que tienen base en **R** se recopilan en el paquete **stats**. Dicho paquete proporciona funciones simples que calculan medidas descriptivas y facilitan los cálculos que involucran una variedad de distribuciones de probabilidad. También contiene rutinas más sofisticadas que, por ejemplo, permiten al usuario estimar una gran cantidad de modelos fundamentados en los mismos datos o ayudan a realizar estudios de simulación extensos. **stats** es parte de la distribución que tiene base en **R**, lo que significa que está instalado de forma predeterminada, por lo que no es necesario ejecutar `install.packages ("stats")` o `library ("stats")`. En este caso simplemente se necesita ejecutar `library(help ="stats")` en la consola para ver la documentación y una lista completa de todas las funciones reunidas en **stats**. Para la mayoría de los paquetes, existe una documentación que se puede ver en *RStudio*. La documentación se puede invocar usando el operador **?**, por ejemplo, al ejecutar `?stats` la documentación del paquete **stats** se muestra en la pestaña de ayuda del panel inferior derecho.
En lo que sigue, la perspectiva se centra en (algunas de) las distribuciones de probabilidad que maneja **R** y muestra cómo usar las funciones relevantes para resolver problemas simples. De ese modo, se actualizan algunos conceptos básicos de la teoría de la probabilidad. Entre otras cosas, aprenderá a dibujar números aleatorios, a calcular densidades, probabilidades, cuantiles y similares. Como se verá, es muy conveniente confiar en las rutinas o scripts que se mostrarán a continuación.
## Variables aleatorias y distribuciones de probabilidad
Resulta de vital importancia repasar brevemente algunos conceptos básicos de la teoría de la probabilidad.
- Los resultados mutuamente excluyentes de un proceso aleatorio se denominan simplemente *resultados*. "Mutuamente excluyente" implica que sólo se puede observar uno de los posibles resultados.
- La *probabilidad* de un resultado como se refiere a la proporción en que el resultado ocurre a largo plazo; es decir, si el experimento se repite muchas veces.
- El conjunto de todos los resultados posibles de una variable aleatoria se denomina *espacio muestral*.
- Un *evento* es un subconjunto del espacio muestral y consta de uno o más resultados.
Estas ideas están unificadas en un concepto llamado *variable aleatoria* que es un resumen numérico de resultados aleatorios. Las variables aleatorias pueden ser *discretas* o *continuas*.
- Las variables aleatorias discretas tienen resultados discretos, por ejemplo, $0$ y $1$ (números enteros).
- Una variable aleatoria continua puede tomar un continuo de valores posibles, por ejemplo, $0.5$ y $1.25$ (números decimales).
### Distribuciones de probabilidad de variables aleatorias discretas {-}
Un ejemplo típico de una variable aleatoria discreta $D$ es el resultado de lanzar un dado: en términos de un experimento aleatorio, esto no es más que seleccionar al azar una muestra de tamaño $1$ de un conjunto de números que son resultados mutuamente excluyentes. Aquí, el espacio muestral es $\{1,2,3,4,5,6\}$ y se puede pensar en muchos otros eventos, por ejemplo, "el resultado observado se puede encuentra entre $2$ y $5$".
Una función básica para extraer muestras aleatorias de un conjunto específico de elementos es la función **sample()**, consulte `?Sample`. Se puede usar para simular el resultado aleatorio de una tirada de dados. ¡Se tiran los dados!
```{r, 148, echo = T, eval = T, message = F, warning = F}
sample(1:6, 1)
```
La distribución de probabilidad (DP) de una variable aleatoria discreta es la lista de todos los valores posibles de la variable y sus probabilidades, que suman $1$. La función de distribución de probabilidad (FDP) acumulada da la probabilidad de que la variable aleatoria sea menor o igual a un valor particular.
Para la tirada de dados, la distribución de probabilidad (DP) y la distribución de probabilidad acumulada (DPA) se resumen en la Tabla \@ref(tab:pdist).
| Resultado | 1 | 2 | 3 | 4 | 5 | 6 |
|---------------------------|:---:|:---:|:---:|:---:|:---:|:---:|
| Probabilidad | 1/6 | 1/6 | 1/6 | 1/6 | 1/6 | 1/6 |
| Probabilidad Acumulada | 1/6 | 2/6 | 3/6 | 4/6 | 5/6 | 1 |
Table: (\#tab:pdist) Función de Distribución de Probabilidad (FDP) y Función de Distribución de Probabilidad Acumulada (FDPA) de una tirada de dados
Se puede graficar fácilmente ambas funciones usando **R**. Dado que la probabilidad es igual a $1/6$ para cada resultado, se configura el vector **Probabilidad** usando la función **rep()** que replica un valor dado un número específico de veces.
```{r, 149, eval = T, message = F, warning = F, fig.align='center', fig.pos="h"}
# generar el vector de probabilidades
Probabilidad <- rep(1/6, 6)
# graficar las probabilidades
plot(Probabilidad,
xlab = "Resultados",
main = "Distribución de Probabilidad (DP)")
```
Para la distribución de probabilidad acumulada, se necesitan las probabilidades acumuladas; es decir, se necesitan las sumas acumuladas del vector **Probabilidad**. Dichas sumas se pueden calcular usando **cumsum()**.
```{r, 150, echo = T, eval = T, message = F, warning = F, fig.align='center'}
# generar el vector de probabilidades acumuladas
Probabilidad_acumulada <- cumsum(Probabilidad)
# graficar las probabilidades
plot(Probabilidad_acumulada,
xlab = "Resultados",
main = "Distribución de Probabilidad Acumulada (DPA)")
```
### Ensayos de Bernoulli {-}
El conjunto de elementos de los que **sample()** extrae resultados no tiene por qué consistir solo en números. También se podría simular el lanzamiento de una moneda con los resultados $H$ (cara) y $T$ (cruz).
```{r, 151, echo = T, eval = T, message = F, warning = F}
sample(c("H", "T"), 1)
```
El resultado de un solo lanzamiento de la moneda es una variable aleatoria con distribución de *Bernoulli*; es decir, una variable con dos posibles resultados distintos.
Imagine que está a punto de lanzar una moneda $10$ veces seguidas y se pregunta qué tan probable es que termine con $5$ caras. Este es un ejemplo típico de lo que se llama un *experimento de Bernoulli*, ya que consta de $n = 10$ ensayos de Bernoulli que son independientes entre sí y se está interesado en la probabilidad de observar $k = 5$ éxitos de $H$ que ocurren con probabilidad $p = 0.5$ (asumiendo que la moneda no tiene truco, una moneda justa) en cada prueba. Tenga en cuenta que aquí no importa el orden de los resultados.
Es un [resultado bien conocido](https://en.wikipedia.org/wiki/Binomial_distribution) que el número de éxitos $k$ en un experimento de Bernoulli sigue una distribución binomial. Se denota esto como
$$k \sim B(n,p).$$
La probabilidad de observar $k$ éxitos en el experimento $B(n, p)$ viene dada por
$$f(k)=P(k)=\begin{pmatrix}n\\ k \end{pmatrix} \cdot p^k \cdot (1-p)^{n-k}=\frac{n!}{k!(n-k)!} \cdot p^k \cdot (1-p)^{n-k}$$
con el coeficiente binomial $\begin{pmatrix}n\\ k \end{pmatrix}$.
En **R**, se pueden resolver problemas como el anterior mediante la función **dbinom()** que calcula $P(k\vert n, p)$, la probabilidad de la distribución binomial dados los parámetros **x** ($k$), **tamaño** ($n$) y **prob** ($p$), consulte `?dbinom`. Se calcula $P(k=5\vert n = 10, p = 0.5)$ (se escribe en corto como $P(k=5)$.)
```{r, 152, echo = T, eval = T, message = F, warning = F}
dbinom(x = 5,
size = 10,
prob = 0.5)
```
Se concluye que $P(k=5)$, la probabilidad de observar cara $k = 5$ veces cuando se lanza una moneda justa $n = 10$ veces es de aproximadamente $24,6 \%$.
Ahora suponga que se está interesado en $P(4 \leq k \leq 7)$; es decir, la probabilidad de observando éxitos de $4$, $5$, $6$ o $7$ para $B(10, 0.5)$. Esto se puede calcular proporcionando un vector como argumento **x** en la escritura de **dbinom()** y resumiendo usando **sum()**.
```{r, 153, echo = T, eval = T, message = F, warning = F}
# calcular P(4 <= k <= 7) usando 'dbinom()'
sum(dbinom(x = 4:7, size = 10, prob = 0.5))
```
Un enfoque alternativo es usar **pbinom()**, que es la función de distribución, en específico, de la distribución binomial para calcular $$P(4 \leq k \leq 7) = P(k \leq 7) - P(k\leq3 ).$$
```{r, 154, echo = T, eval = T, message = F, warning = F}
# calcular P(4 <= k <= 7) usando 'pbinom()'
pbinom(size = 10, prob = 0.5, q = 7) - pbinom(size = 10, prob = 0.5, q = 3)
```
La distribución de probabilidad de una variable aleatoria discreta no es más que una lista de todos los resultados posibles que pueden ocurrir y sus respectivas probabilidades. En el ejemplo del lanzamiento de una moneda, se tienen $11$ posibles resultados para $k$.
```{r, 155, echo = T, eval = T, message = F, warning = F}
# configurar el vector de posibles resultados
k <- 0:10
k
```
Por lo tanto, para visualizar la función de distribución de probabilidad de $k$ se puede hacer lo siguiente:
```{r, 156, echo = T, eval = T, message = F, warning = F, fig.align='center'}
# asignar las probabilidades
Probabilidad <- dbinom(x = k,
size = 10,
prob = 0.5)
# graficar los resultados contra sus probabilidades
plot(x = k,
y = Probabilidad,
main = "Función de Distribución de Probabilidad (FDP)")
```
De manera similar, se puede graficar la función de distribución acumulativa de $k$ ejecutando el siguiente fragmento de código:
```{r, 157, echo = T, eval = T, message = F, warning = F, fig.align='center'}
# calcular probabilidades acumuladas
Probabilidad <- pbinom(q = k,
size = 10,
prob = 0.5)
# graficar las probabilidades acumuladas
plot(x = k,
y = Probabilidad,
main = "Función de Distribución de Probabilidad Acumulada (FDPA)")
```
### Valor esperado, media y varianza {-}
El valor esperado de una variable aleatoria es, en términos generales, el valor promedio a largo plazo de sus resultados cuando el número de ensayos repetidos es grande. Para una variable aleatoria discreta, el valor esperado se calcula como un promedio ponderado de sus posibles resultados, por lo que las ponderaciones son las probabilidades relacionadas. Esto se formaliza en el concepto clave 2.1.
```{r, 158, eval = my_output == "html", results='asis', echo=FALSE, purl=FALSE}
cat('<div class = "keyconcept" id="KC2.1">
<h3 class = "right"> Concepto clave 2.1 </h3>
<h3 class= "left"> Valor esperado y media </h3>
<p>
Suponga que la variable aleatoria $Y$ toma $k$ valores posibles, $y_1, \\dots, y_k$, donde $y_1$ denota el primer valor, $y_2$ denota el segundo valor, y así sucesivamente, y que la probabilidad que $Y$ toma $y_1$ es $p_1$, la probabilidad de que $Y$ tome $y_2$ es $p_2$ y así sucesivamente. El valor esperado de $Y$, $E(Y)$ se define como
$$ E(Y) = y_1 p_1 + y_2 p_2 + \\cdots + y_k p_k = \\sum_{i=1}^k y_i p_i $$
donde la notación $\\sum_{i=1}^k y_i p_i$ implica "la suma de $y_i$ $p_i$ para $i$ desde $1$ a $k$". El valor esperado de $Y$ también se llama la media de $Y$ o la expectativa de $Y$ y se denota por $\\mu_Y$.
</p>
</div>')
```
```{r, 159, eval = my_output == "latex", results='asis', echo=FALSE, purl=FALSE}
cat('\\begin{keyconcepts}[Valor esperado y media]{2.1}
Suponga que la variable aleatoria $Y$ toma $k$ valores posibles, $y_1, \\ puntos, y_k$, donde $y_1$ denota el primer valor, $y_2$ denota el segundo valor, y así sucesivamente, y que la probabilidad que $Y$ toma $y_1$ es $p_1$, la probabilidad de que $Y$ tome $y_2$ es $p_2$ y así sucesivamente. El valor esperado de $Y$, $E(Y)$ se define como
$$ E(Y) = y_1 p_1 + y_2 p_2 + \\cdots + y_k p_k = \\sum_{i=1}^k y_i p_i $$
donde la notación $\\sum_{i=1}^k y_i p_i$ significa \\"la suma de $y_i$ $p_i$ para $i$ desde $1$ hasta $k$ \\". El valor esperado de $Y$ también se denomina media de $Y$ o la expectativa de $Y$ y se denota por $\\ mu_Y$.
\\end{keyconcepts}')
```
En el ejemplo de los dados, la variable aleatoria, $D$ digamos, toma $6$ valores posibles $d_1 = 1, d_2 = 2, \dots, d_6 = 6$. Suponiendo un dado justo, cada uno de los resultados de $6$ ocurre con una probabilidad de $1/6$. Por lo tanto, es fácil calcular el valor exacto de $E(D)$ a mano:
$$ E(D) = 1/6 \sum_{i=1}^6 d_i = 3.5 $$
$E(D)$ es simplemente el promedio de los números naturales de $1$ a $6$ ya que todos los pesos $p_i$ son $1/6$. Esto se puede calcular fácilmente usando la función **mean()** que calcula la media aritmética de un vector numérico.
```{r, 160, echo = T, eval = T, message = F, warning = F}
# calcular la media de números naturales del 1 al 6
mean(1:6)
```
Un ejemplo de muestreo con reemplazo es tirar un dado tres veces seguidas.
```{r, 161, eval = T, message = F, warning = F}
# sembrar la semilla para la reproducibilidad
set.seed(1)
# tira un dado tres veces seguidas
sample(1:6, 3, replace = T)
```
Tenga en cuenta que cada llamada de `sample (1: 6, 3, replace = T)` da un resultado diferente, ya que se dibuja con reemplazo al azar. Para permitirle reproducir los resultados de los cálculos que involucran números aleatorios, se usará `set.seed()` para configurar el generador de números aleatorios de R en un estado específico. Debe verificar que realmente funcione: ¡Establezca la semilla en su sesión R en 1 y verifique que obtenga los mismos tres números aleatorios!
```{block2, randomseed, type='rmdknit'}
Las secuencias de números aleatorios generados por R son números pseudoaleatorios; es decir, no son "verdaderamente" aleatorios sino que se aproximan a las propiedades de las secuencias de números aleatorios. Dado que esta aproximación es suficientemente buena para los propósitos del presete trabajo, piense en los números pseudoaleatorios como números aleatorios a lo largo de este curso.
En general, las secuencias de números aleatorios se generan mediante funciones denominadas "generadores de números pseudoaleatorios" (GNP). El GNP en R funciona realizando alguna operación sobre un valor determinista. Generalmente, este valor es el número anterior generado por el GNP. Sin embargo, la primera vez que se usa el GNP, no existe un valor previo. Una "semilla" es el primer valor de una secuencia de números --- inicializa la secuencia. Cada valor semilla corresponderá a una secuencia de valores diferente. En R, se puede establecer una semilla usando <tt>set.seed()</tt>.
Esto es conveniente para el presente curso:
Si se proporciona la misma semilla dos veces, se obtiene la misma secuencia de números dos veces. Por lo tanto, establecer una semilla antes de ejecutar el código R que involucra números aleatorios hace que el resultado sea reproducible.
```
Por supuesto, también se podría considerar un número mucho mayor de pruebas, por ejemplo, $10000$. Al hacerlo, no tendría sentido simplemente imprimir los resultados en la consola: por defecto **R** muestra hasta $1000$ entradas de vectores grandes y omite el resto (pruébelo). Observar los números no revela mucho. En su lugar, se calcula el promedio de la muestra de los resultados usando **mean()** y viendo si el resultado se acerca al valor esperado $E(D)=3.5$.
```{r, 162, eval = T, message = F, warning = F}
# sembrar la semilla para la reproducibilidad
set.seed(1)
# calcular la media muestral de 10000 tiradas de dados
mean(sample(1:6,
10000,
replace = T))
```
Se encuentra que la media muestral está bastante cerca del valor esperado. Este resultado se discutirá en el Capítulo \@ref(MADPM) con más detalle.
Otras medidas que se encuentran con frecuencia son la varianza y la desviación estándar. Ambas son medidas de la *dispersión* de una variable aleatoria.
```{r, 163, eval = my_output == "html", results='asis', echo=FALSE, purl=FALSE}
cat('<div class = "keyconcept" id="KC2.2">
<h3 class = "right"> Concepto clave 2.2 </h3>
<h3 class= "left"> Varianza y desviación estándar </h3>
<p>
La varianza de la variable aleatoria discreta $Y$, denotada $\\sigma^2_Y$, es
$$ \\sigma^2_Y = \\text{Var}(Y) = E\\left[(Y-\\mu_y)^2\\right] = \\sum_{i=1}^k (y_i - \\mu_y)^2 p_i $$
La desviación estándar de $Y$ es $\\sigma_Y$, la raíz cuadrada de la varianza. Las unidades de la desviación estándar son las mismas que las unidades de $Y$.
</p>
</div>')
```
```{r, 164, eval = my_output == "latex", results='asis', echo=FALSE, purl=FALSE}
cat('\\begin{keyconcepts}[Varianza y desviación estándar]{2.2}
La varianza de la \\textit{variable aleatoria discreta} $Y$, denotada $\\sigma^2_Y$, es
$$ \\sigma^2_Y = \\text{Var}(Y) = E\\left[(Y-\\mu_Y)^2\\right] = \\sum_{i=1}^k (y_i - \\mu_Y)^2 p_i $$
La desviación estándar de $Y$ es $\\sigma_Y$, la raíz cuadrada de la varianza. Las unidades de la desviación estándar son las mismas que las unidades de $Y$.
\\end{keyconcepts}')
```
La varianza, como se define en el Concepto clave 2.2, siendo una cantidad de población, *no se* implementa como una función en R. En su lugar, se tiene la función **var()** que calcula la *varianza de la muestra*
$$ s^2_Y = \frac{1}{n-1} \sum_{i=1}^n (y_i - \overline{y})^2. $$
Resulta importante recordar que $s^2_Y$ es diferente de la llamada *varianza poblacional* de una variable aleatoria discreta $Y$,
$$ \text{Var}(Y) = \frac{1}{N} \sum_{i=1}^N (y_i - \mu_Y)^2 $$
ya que mide cómo las observaciones de $n$ en la muestra se dispersan alrededor del promedio de la muestra $\overline{y}$. En cambio, $\text{Var}(Y)$ mide la dispersión de toda la población ($N$ miembros) alrededor de la media de la población $\mu_Y$. La diferencia se vuelve clara cuando se mira el ejemplo de lanzamiento de dados. Por $D$ se tiene
$$ \text{Var}(D) = 1/6 \sum_{i=1}^6 (d_i - 3.5)^2 = 2.92 $$
que es obviamente diferente del resultado de $s^2$ calculado por **var()**.
```{r, 165, echo = 1, eval = T, message = F, warning = F}
var(1:6)
```
La varianza muestral calculada por **var()** es un *estimador* de la varianza poblacional. Se puede verificar esto usando el widget a continuación.
```{r, 166, echo=FALSE, results='asis', purl=FALSE}
write_html(playground = T)
```
### Distribuciones de probabilidad de variables aleatorias continuas {-}
Dado que una variable aleatoria continua toma un continuo de valores posibles, no se puede usar el concepto de distribución de probabilidad como se usa para las variables aleatorias discretas. En cambio, la distribución de probabilidad de una variable aleatoria continua se resume mediante su *función de densidad de probabilidad* (FDP).
La función de distribución de probabilidad acumulada (DPA) para una variable aleatoria continua se define como en el caso discreto. Por lo tanto, la DPA de una variable aleatoria continua establece la probabilidad de que la variable aleatoria sea menor o igual a un valor particular.
Para completar, se presentan revisiones de los conceptos clave 2.1 y 2.2 para el caso continuo.
```{r, 167, eval = my_output == "html", results='asis', echo=FALSE, purl=FALSE}
cat('<div class = "keyconcept" id="KC2.3">
<h3 class = "right"> Concepto clave 2.3 </h3>
<h3 class= "left"> Probabilidades, valor esperado y varianza de una variable aleatoria continua </h3>
<p>
Sea $f_Y(y)$ la función de densidad de probabilidad de $Y$. La probabilidad de que $Y$ caiga entre $a$ y $b$ donde $a < b$ es
$$ P(a \\leq Y \\leq b) = \\int_a^b f_Y(y) \\mathrm{d}y. $$
Además se tiene que $P(-\\infty \\leq Y \\leq \\infty) = 1$ y, por lo tanto, $\\int_{-\\infty}^{\\infty} f_Y(y) \\mathrm{d}y = 1$.
En cuanto al caso discreto, el valor esperado de $Y$ es el promedio ponderado de probabilidad de sus valores. Debido a la continuidad, se usan integrales en lugar de sumas. El valor esperado de $Y$ se define como
$$ E(Y) = \\mu_Y = \\int y f_Y(y) \\mathrm{d}y. $$
La varianza es el valor esperado de $(Y - \\mu_Y)^2$. Así se tiene
$$\\text{Var}(Y) = \\sigma_Y^2 = \\int (y - \\mu_Y)^2 f_Y(y) \\mathrm{d}y.$$
</p>
</div>')
```
```{r, 168, eval = my_output == "latex", results='asis', echo=FALSE, purl=FALSE}
cat('
\\begin{keyconcepts}[Probabilidades\\comma Valor esperado y varianza de una variable aleatoria continua]{2.3}
Sea $f_Y(y)$ la función de densidad de probabilidad de $Y$. La probabilidad de que $Y$ caiga entre $a$ y $b$ donde $a < b$ es
$$ P(a \\leq Y \\leq b) = \\int_a^b f_Y(y) \\mathrm{d}y. $$
Además se tiene que $P(-\\infty \\leq Y \\leq \\infty) = 1$ y, por lo tanto, $\\int_{-\\infty}^{\\infty} f_Y(y) \\mathrm{d}y = 1$.
En cuanto al caso discreto, el valor esperado de $Y$ es el promedio ponderado de probabilidad de sus valores. Debido a la continuidad, se usan integrales en lugar de sumas. El valor esperado de $Y$ se define como
$$ E(Y) = \\mu_Y = \\int y f_Y(y) \\mathrm{d}y. $$
La varianza es el valor esperado de $(Y - \\mu_Y)^2$. Así se tiene
$$\\text{Var}(Y) = \\sigma_Y^2 = \\int (y - \\mu_Y)^2 f_Y(y) \\mathrm{d}y.$$
\\end{keyconcepts}')
```
Se analiza un ejemplo:
Considere la variable aleatoria continua $X$ con FDP
$$ f_X(x) = \frac{3}{x^4}, x>1. $$
- Se puede mostrar analíticamente que la integral de $f_X (x)$ sobre la línea real es igual a $1$.
\begin{align}
\int f_X(x) \mathrm{d}x =& \int_{1}^{\infty} \frac{3}{x^4} \mathrm{d}x \\
=& \lim_{t \rightarrow \infty} \int_{1}^{t} \frac{3}{x^4} \mathrm{d}x \\
=& \lim_{t \rightarrow \infty} -x^{-3} \rvert_{x=1}^t \\
=& -\left(\lim_{t \rightarrow \infty}\frac{1}{t^3} - 1\right) \\
=& 1
\end{align}
- La expectativa de $X$ se puede calcular de la siguiente manera:
\begin{align}
E(X) = \int x \cdot f_X(x) \mathrm{d}x =& \int_{1}^{\infty} x \cdot \frac{3}{x^4} \mathrm{d}x \\
=& - \frac{3}{2} x^{-2} \rvert_{x=1}^{\infty} \\
=& -\frac{3}{2} \left( \lim_{t \rightarrow \infty} \frac{1}{t^2} - 1 \right) \\
=& \frac{3}{2}
\end{align}
- Se debe tener en cuenta que la varianza de $X$ se puede expresar como $\text{Var}(X) = E(X^2) - E(X)^2$. Dado que $E(X)$ se ha calculado en el paso anterior, se busca $E(X^2)$:
\begin{align}
E(X^2)= \int x^2 \cdot f_X(x) \mathrm{d}x =& \int_{1}^{\infty} x^2 \cdot \frac{3}{x^4} \mathrm{d}x \\
=& -3 x^{-1} \rvert_{x=1}^{\infty} \\
=& -3 \left( \lim_{t \rightarrow \infty} \frac{1}{t} - 1 \right) \\
=& 3
\end{align}
Así que se ha demostrado que el área bajo la curva es igual a uno, que la expectativa es $E(X)=\frac{3}{2}$ y se encontró que la varianza es $\text{Var}(X) = \frac{3}{4}$. Sin embargo, esto fue tedioso y, como veremos, un enfoque analítico no es aplicable para algunas FDP, por ejemplo, si las integrales no tienen soluciones de forma cerrada.
Afortunadamente, **R** también permite encontrar fácilmente los resultados derivados anteriormente. La herramienta que se usan para esto es la función **integrate()**. Primero, se tienen que definir las funciones para las que se quieren calcular integrales como funciones **R**; es decir, la FDP $f_X(x)$ así como las expresiones $x\cdot f_X(x)$ y $x^2\cdot f_X(x)$.
```{r, 169, echo = T, eval = T, message = F, warning = F}
# definir funciones
f <- function(x) 3 / x^4
g <- function(x) x * f(x)
h <- function(x) x^2 * f(x)
```
A continuación, se usa **integrate()** y se establecen los límites superior e inferior de integración en $1$ y $\infty$ usando argumentos **lower** y **upper**. De forma predeterminada, **integrate()** imprime el resultado junto con una estimación del error de aproximación en la consola. Sin embargo, el resultado no es un valor numérico con el que se puedan hacer más cálculos fácilmente. Para obtener solo un valor numérico de la integral, se necesita usar el operador **\$** junto con **value**. El operador **\$** se usa para extraer elementos por nombre de un objeto de tipo **list**.
```{r, 170, echo = T, eval = T, message = F, warning = F}
# calcular el área bajo la curva de densidad
area <- integrate(f,
lower = 1,
upper = Inf)$value
area
# calcular E(X)
EX <- integrate(g,
lower = 1,
upper = Inf)$value
EX
# calcular Var(X)
VarX <- integrate(h,
lower = 1,
upper = Inf)$value - EX^2
VarX
```
Aunque existe una amplia variedad de distribuciones, las que se encuentran con mayor frecuencia en econometría son las distribuciones normal, chi-cuadrado, Student $t$ y $F$. Por lo tanto, se discutiran algunas funciones básicas **R** que permiten hacer cálculos que involucran densidades, probabilidades y cuantiles de estas distribuciones.
Cada distribución de probabilidad que maneja **R** tiene cuatro funciones básicas cuyos nombres consisten en un prefijo seguido de un nombre raíz. Se tiene como ejemplo la distribución normal. El nombre raíz de las cuatro funciones asociadas con la distribución normal es **norm**. Los cuatro prefijos son:
- **d** para "densidad" - función de probabilidad / función de densidad de probabilidad
- **p** para "probabilidad" - función de distribución acumulativa
- **q** para "cuantil" - función cuantil (función de distribución acumulativa inversa)
- **r** para "aleatorio" - generador de números aleatorios
Así, para la distribución normal se tienen las funciones **R** **dnorm()**, **pnorm()**, **qnorm()** y **rnorm()**.
### La distribución normal {-}
La distribución de probabilidad probablemente más importante considerada aquí es la distribución normal. Esto se debe sobre todo al papel especial de la distribución normal estándar y al teorema del límite central, que se tratará en breve. Las distribuciones normales son simétricas y en forma de campana. Una distribución normal se caracteriza por su media $\mu$ y su desviación estándar $\sigma$, expresada de manera concisa por $\mathcal{N}(\mu,\sigma^2)$. La distribución normal tiene el FDP:
\begin{align}
f(x) = \frac{1}{\sqrt{2 \pi} \sigma} \exp{-(x - \mu)^2/(2 \sigma^2)}.
\end{align}
Para la distribución normal estándar se tiene $\mu = 0$ y $\sigma = 1$. Las variantes normales estándar a menudo se indican con $Z$. Por lo general, la FDP normal estándar se indica con $\phi$ y la FDPA normal estándar se indica con $\Phi$. Por eso,
$$ \phi(c) = \Phi'(c) \ \ , \ \ \Phi(c) = P(Z \leq c) \ \ , \ \ Z \sim \mathcal{N}(0,1).$$
Tenga en cuenta que la notación X $\sim$ Y se lee como "X se distribuye como Y". En **R**, se puede obtener convenientemente densidades de distribuciones normales usando la función **dnorm()**. Es momento de dibujar una gráfica de la función de densidad normal estándar usando **curve()** junto con **dnorm()**.
```{r, 171, echo = T, eval = T, message = F, warning = F, fig.align='center'}
# dibujar un gráfico de la FDP N(0,1)
curve(dnorm(x),
xlim = c(-3.5, 3.5),
ylab = "Densidad",
main = "Función de densidad normal estándar")
```
Se puede obtener la densidad en diferentes posiciones pasando un vector por **dnorm()**.
```{r, 172, echo = T, eval = T, message = F, warning = F}
# calcular la densidad en x = -1.96, x = 0 y x = 1.96
dnorm(x = c(-1.96, 0, 1.96))
```
Similar a la FDP, se puede trazar la FDPA normal estándar usando **curve()**. Se podría usar **dnorm()** para esto, pero es mucho más conveniente confiar en **pnorm()**.
```{r, 173, echo = T, eval = T, message = F, warning = F, fig.align='center'}
# graficar la FDPA normal estándar
curve(pnorm(x),
xlim = c(-3.5, 3.5),
ylab = "Probabilidad",
main = "Función de distribución acumulativa normal estándar")
```
También se puede usar **R** para calcular la probabilidad de eventos asociados con una variable normal estándar.
Suponiendo que se está interesado en $P(Z\leq 1.337)$. Para alguna variable aleatoria continua $Z$ en $[-\infty, \infty]$ con densidad $g(x)$ se tendría que determinar $G(x)$, la anti-derivada de $g(x)$ así que
$$ P(Z \leq 1.337 ) = G(1.337) = \int_{-\infty}^{1.337} g(x) \mathrm{d}x. $$
Si $Z \sim \mathcal{N}(0,1)$, se tiene $g(x)=\phi(x)$. No existe una solución analítica para la integral anterior. Afortunadamente, **R** ofrece buenas aproximaciones. El primer enfoque hace uso de la función **integrate()** que permite resolver problemas de integración unidimensionales utilizando un método numérico. Para esto, primero se define la función de la que se quiere calcular la integral como una función **R** **f**. En el ejemplo, **f** es la función de densidad normal estándar y, por lo tanto, toma un solo argumento **x**. Siguiendo la definición de $\phi(x)$ se define **f** como
```{r, 174, echo = T, eval = T, message = F, warning = F}
# definir la FDP normal estándar como una función R
f <- function(x) {
1/(sqrt(2 * pi)) * exp(-0.5 * x^2)
}
```
Se debe comprobar si esta función calcula densidades normales estándar pasando un vector.
```{r, 175, echo = T, eval = T, message = F, warning = F}
# definir un vector de reales
quants <- c(-1.96, 0, 1.96)
# calcular densidades
f(quants)
# comparar con los resultados producidos por 'dnorm()'
f(quants) == dnorm(quants)
```
Los resultados producidos por **f()** son, de hecho, equivalentes a los dados por **dnorm()**.
A continuación, se llama a **integrate()** en **f()** y se especifican los argumentos **lower** y **upper**, los límites inferior y superior de integración.
```{r, 176, echo = T, eval = T, message = F, warning = F}
# integrar f()
integrate(f,
lower = -Inf,
upper = 1.337)
```
Se encuentra que la probabilidad de observar $Z \leq 1.337$ es aproximadamente $90.94\% $.
Una segunda y mucho más conveniente forma es usar la función **pnorm()**, la función de distribución acumulativa normal estándar.
```{r, 177, echo = T, eval = T, message = F, warning = F}
# calcular la probabilidad usando pnorm()
pnorm(1.337)
```
El resultado coincide con el resultado del enfoque utilizando **integrate()**.
Es momento de analizar algunos ejemplos adicionales:
Un resultado comúnmente conocido es que $95\%$ de la masa de probabilidad de una normal estándar se encuentra en el intervalo $[-1.96, 1.96]$; es decir, en una distancia de aproximadamente $2$ desviaciones estándar de la media. Se puede confirmar esto fácilmente calculando $$ P(-1.96 \leq Z \leq 1.96) = 1-2\times P(Z \leq -1.96) $$ debido a la simetría de la FDP normal estándar. Gracias a **R**, se puede abandonar la tabla de la FDPA normal estándar que se encuentra en muchos otros libros de texto y, en su lugar, resolver esto rápidamente usando **pnorm()**.
```{r, 178, echo = T, eval = T, message = F, warning = F}
# calcula la probabilidad
1 - 2 * (pnorm(-1.96))
```
Para hacer afirmaciones sobre la probabilidad de observar resultados de $Y$ en algún rango específico es conveniente estandarizar primero como se muestra en el Concepto clave 2.4.
```{r, 179, eval = my_output == "html", results='asis', echo=FALSE, purl=FALSE}
cat('<div class = "keyconcept" id="KC2.4">
<h3 class = "right"> Concepto clave 2.4 </h3>
<h3 class = "left"> Calcular probabilidades que involucran variables aleatorias normales </h3>
<p>
Suponga que $Y$ se distribuye normalmente con la media $\\mu$ y la varianza $\\sigma^2$:
$$Y \\sim \\mathcal{N}(\\mu, \\sigma^2)$$
Entonces $Y$ se estandariza restando su media y dividiendo por su desviación estándar:
$$ Z = \\frac{Y -\\mu}{\\sigma} $$
Sea que $c_1$ y $c_2$ denotan dos números en los que $c_1 < c_2$ y más $d_1 = (c_1 - \\mu)/\\sigma$ y $d_2 = (c_2 - \\mu)/\\ sigma$. Luego
\\begin{align*}
P(Y \\leq c_2) =& \\, P(Z \\leq d_2) = \\Phi(d_2), \\\\
P(Y \\geq c_1) =& \\, P(Z \\geq d_1) = 1 - \\Phi(d_1), \\\\
P(c_1 \\leq Y \\leq c_2) =& \\, P(d_1 \\leq Z \\leq d_2) = \\Phi(d_2) - \\Phi(d_1).
\\end{align*}
</p>
</div>')
```
```{r, 180, eval = my_output == "latex", results='asis', echo=FALSE, purl=FALSE}
cat('\\begin{keyconcepts}[Calcular probabilidades que involucran variables aleatorias normales]{2.4}
Suponga que $Y$ se distribuye normalmente con la media $\\mu$ y la varianza $\\sigma^2$:
$$Y \\sim \\mathcal{N}(\\mu, \\sigma^2)$$
Entonces $Y$ se estandariza restando su media y dividiendo por su desviación estándar:
$$ Z = \\frac{Y -\\mu}{\\sigma} $$
Sea que $c_1$ y $c_2$ denotan dos números en los que $c_1 < c_2$ y más $d_1 = (c_1 - \\mu)/\\sigma$ y $d_2 = (c_2 - \\mu)/\\ sigma$. Luego
\\begin{align*}
P(Y \\leq c_2) =& \\, P(Z \\leq d_2) = \\Phi(d_2), \\\\
P(Y \\geq c_1) =& \\, P(Z \\geq d_1) = 1 - \\Phi(d_1), \\\\
P(c_1 \\leq Y \\leq c_2) =& \\, P(d_1 \\leq Z \\leq d_2) = \\Phi(d_2) - \\Phi(d_1).
\\end{align*}
\\end{keyconcepts}')
```
Ahora considere una variable aleatoria $Y$ con $Y \sim \mathcal{N}(5, 25)$. Las funciones de **R** que utilizan la distribución normal pueden realizar la estandarización. Si se está interesado en $P(3 \leq Y \leq 4)$ se puede usar **pnorm()** y ajustar por una media y/o una desviación estándar que se desvíe de $\mu = 0$ y $\sigma = 1$ especificando los argumentos **mean** y **sd**, respectivamente. **Atención**: ¡El argumento **sd** requiere la desviación estándar, no la varianza!
```{r, 181, echo = T, eval = T, message = F, warning = F}
pnorm(4, mean = 5, sd = 5) - pnorm(3, mean = 5, sd = 5)
```
Una extensión de la distribución normal en un entorno univariante es la distribución normal multivariante. La FDP conjunta de dos variables normales aleatorias $X$ y $Y$ viene dada por
\begin{align}
\begin{split}
g_{X,Y}(x,y) =& \, \frac{1}{2\pi\sigma_X\sigma_Y\sqrt{1-\rho_{XY}^2}} \\
\cdot & \, \exp \left\{ \frac{1}{-2(1-\rho_{XY}^2)} \left[ \left( \frac{x-\mu_x}{\sigma_X} \right)^2 - 2\rho_{XY}\left( \frac{x-\mu_X}{\sigma_X} \right)\left( \frac{y-\mu_Y}{\sigma_Y} \right) + \left( \frac{y-\mu_Y}{\sigma_Y} \right)^2 \right] \right\}.
\end{split} (\#eq:bivnorm)
\end{align}
La ecuación \@ref(eq:bivnorm) contiene la FDP normal bivariado. Es un poco difícil obtener información a partir de esta complicada expresión. En su lugar, se considera el caso especial en el que $X$ y $Y$ son variables aleatorias normales estándar no correlacionadas con densidades $f_X(x)$ y $f_Y(y)$ con distribución normal conjunta. Entonces se tienen los parámetros $\sigma_X = \sigma_Y = 1$, $\mu_X = \mu_Y = 0$ (debido a la normalidad estándar marginal) y $\rho_{XY} = 0$ (debido a la independencia). La densidad conjunta de $X$ y $Y$ se convierte en:
$$ g_{X,Y}(x,y) = f_X(x) f_Y(y) = \frac{1}{2\pi} \cdot \exp \left\{ -\frac{1}{2} \left[x^2 + y^2 \right] \right\}, \tag{2.2} $$
la FDP de la distribución normal estándar bivariada. El siguiente widget proporciona un gráfico tridimensional interactivo de (<a href="#mjx-eqn-2.2">2.2</a>).
```{r, 182, echo=F, purl=FALSE}
library("knitr")
library("usethis")
library("devtools")
url<-"https://plot.ly/~mca_unidue/22.embed?width=550&height=550?showlink=false"
plotly_iframe <- paste("<center><iframe scrolling='no' seamless='seamless' style='border:none' src='", url,
"/800/1200' width='600' height='400'></iframe></center>", sep = "")
```
`r I(plotly_iframe)`
Al mover el cursor sobre el gráfico, puede ver que la densidad es invariante en rotación; es decir, la densidad en $(a, b)$ depende únicamente de la distancia de $(a, b)$ al origen: geométricamente, regiones de igual densidad son los bordes de círculos concéntricos en el plano $XY$, centrados en $(\mu_X = 0, \mu_Y = 0)$.
La distribución normal tiene algunas características notables. Por ejemplo, para dos variables distribuidas normalmente conjuntamente $X$ y $Y$, la función de expectativa condicional es lineal: se puede mostrar que
$$ E(Y\vert X) = E(Y) + \rho \frac{\sigma_Y}{\sigma_X} (X - E(X)). $$
El widget interactivo a continuación ofrece datos de una muestra bivariada estándar distribuida normalmente junto con la función de expectativa condicional $E(Y\vert X)$ y las densidades marginales de $X$ y $Y$. Todos los elementos se ajustan en consecuencia a medida que varían los parámetros.
```{r, 183, echo=FALSE, results='asis', purl=FALSE}
if (my_output=="html"){
cat('
<center>
<iframe height="880" width="770" frameborder="0" scrolling="no" src="DCL/Normal_Bivariado.html"></iframe>
</center>
')
} else {
cat("\\begin{center}\\textit{Esta parte interactiva del curso solo está disponible en la versión HTML.}\\end{center}")
}
```
<a name="chisquare"></a>
### La distribución chi-cuadrado {-}
La distribución chi-cuadrado es otra distribución relevante en econometría. A menudo es necesario cuando se prueban tipos especiales de hipótesis que se encuentran con frecuencia cuando se trabaja con modelos de regresión.
La suma de las variables aleatorias distribuidas normales estándar independientes de $M$ al cuadrado sigue una distribución de chi-cuadrado con $M$ grados de libertad:
\begin{align*}
Z_1^2 + \dots + Z_M^2 = \sum_{m=1}^M Z_m^2 \sim \chi^2_M \ \ \text{with} \ \ Z_m \overset{i.i.d.}{\sim} \mathcal{N}(0,1) (\#eq:chisq)
\end{align*}
Una variable aleatoria distribuida $\chi^2$ con $M$ grados de libertad tiene expectativa $M$, moda en $M-2$ para $M \geq 2$ y varianza $2 \cdot M$. Por ejemplo, para
$$ Z_1,Z_2,Z_3 \overset{i.i.d.}{\sim} \mathcal{N}(0,1) $$
se sostiene que
$$ Z_1^2+Z_2^2+Z_3^2 \sim \chi^2_3. \tag{2.3} $$
Usando el código a continuación, se puede mostrar la FDP y la FDPA de una variable aleatoria $\chi^2_3$ en un solo gráfico. Esto se logra estableciendo el argumento **add = TRUE** en la segunda llamada de **curve()**. Además, se ajustan los límites de ambos ejes usando **xlim** y **ylim** y se eligen diferentes colores para que ambas funciones se distingan mejor. La trama se completa agregando una leyenda con la ayuda de **legend()**.
```{r, 184, echo = T, eval = T, message = F, warning = F, fig.align='center'}
# graficar el FDP
curve(dchisq(x, df = 3),
xlim = c(0, 10),
ylim = c(0, 1),
col = "blue",
ylab = "",
main = "F.D.P y F.D.P.A de la distribución chi-cuadrado, M = 3")
# Agregar la FDPA al gráfico
curve(pchisq(x, df = 3),
xlim = c(0, 10),
add = TRUE,
col = "red")
# agregar una leyenda al gráfico
legend("topleft",
c("FDP", "FDPA"),
col = c("blue", "red"),
lty = c(1, 1))
```
Dado que los resultados de una variable aleatoria distribuida $\chi^2_M$ son siempre positivos, el soporte de la FDP y FDPA relacionadas es $\mathbb{R}_{\geq0}$.
Como la expectativa y la varianza dependen (¡únicamente!) de los grados de libertad, la forma de la distribución cambia drásticamente si se varía el número de normales estándar cuadradas que se resumen. Dicha relación a menudo se describe superponiendo densidades para diferentes $M$, consulte el siguiente <a href="https://en.wikipedia.org/wiki/Chi-squared_distribution"> artículo de Wikipedia </a>.
Se reproduce esto aquí trazando la densidad de la distribución $\chi_1^2$ en el intervalo $[0, 15]$ con **curve()**. En el siguiente paso, se recorren los grados de libertad $M = 2, ..., 7$ y se agrega una curva de densidad para cada $M$ al gráfico. También se ajusta el color de la línea para cada iteración del ciclo estableciendo **col = M**. Por último, se agrega una leyenda que muestra los grados de libertad y los colores asociados.
```{r, 185, echo = T, eval = T, message = F, warning = F, fig.align='center'}
# graficar la densidad para M = 1
curve(dchisq(x, df = 1),
xlim = c(0, 15),
xlab = "x",
ylab = "Densidad",
main = "Variables aleatorias distribuidas de chi-cuadrado")
# agregar densidades para M = 2, ..., 7 al gráfico usando un bucle 'for()'
for (M in 2:7) {
curve(dchisq(x, df = M),
xlim = c(0, 15),
add = T,
col = M)
}
# agrega una leyenda
legend("topright",
as.character(1:7),
col = 1:7 ,
lty = 1,
title = "F.D.")
```
Al aumentar los grados de libertad, la distribución se desplaza hacia la derecha (la moda se vuelve más grande) y aumenta la dispersión (la varianza de la distribución aumenta).
### La distribución t de Student {-#thetdist}
<a name="tdist"></a>
Sea $Z$ una variable normal estándar, $W$ una variable aleatoria $\chi^2_M$ y suponiendo además que $Z$ y $W$ son independientes. Entonces se sostiene que
$$ \frac{Z}{\sqrt{W/M}} =:X \sim t_M $$
y $X$ sigue una distribución *$t$ de Student* (o simplemente distribución $t$) con $M$ grados de libertad.
Similar a la distribución $\chi^2_M$, la forma de una distribución $t_M$ depende de $M$. Las distribuciones $t$ son simétricas, en forma de campana y se ven similares a una distribución normal, especialmente cuando $M$ es grande. Esto no es una coincidencia: para un $M$ suficientemente grande, la distribución $t_M$ puede aproximarse mediante la distribución normal estándar. Esta aproximación funciona razonablemente bien para $M\geq 30$. Como se ilustrará más adelante mediante un pequeño estudio de simulación, la distribución $t_{\infty}$ *es la distribución normal estándar*.
En $t_{\infty}$ una variable aleatoria distribuida $X$ tiene una expectativa si $M > 1$ y tiene una variación si $M > 2$.
\begin{align}
E(X) =& 0, \ M>1 \\
\text{Var}(X) =& \frac{M}{M-2}, \ M>2
\end{align}
Es momento de graficar algunas distribuciones de $t$ con diferentes $M$ y compararlas con la distribución normal estándar.
```{r, 186, echo = T, eval = T, message = F, warning = F, fig.align='center'}
# graficar la densidad normal estándar
curve(dnorm(x),
xlim = c(-4, 4),
xlab = "x",
lty = 2,
ylab = "Densidad",
main = "Densidades de distribuciones t")
# graficar la densidad t para M = 2
curve(dt(x, df = 2),
xlim = c(-4, 4),
col = 2,
add = T)
# graficar la densidad t para M = 4
curve(dt(x, df = 4),
xlim = c(-4, 4),
col = 3,
add = T)
# graficar la densidad t para M = 25
curve(dt(x, df = 25),
xlim = c(-4, 4),
col = 4,
add = T)
# agrega una leyenda
legend("topright",
c("N(0, 1)", "M=2", "M=4", "M=25"),
col = 1:4,
lty = c(2, 1, 1, 1))
```
El gráfico ilustra lo que se ha dicho en el párrafo anterior: a medida que aumentan los grados de libertad, la forma de la distribución $t$ se acerca a la de una curva de campana normal estándar. Ya para $M = 25$ se encuentra poca diferencia con la densidad normal estándar. Si $M$ es pequeño, se encuentra que la distribución tiene colas más pesadas que una normal estándar; es decir, tiene una forma de campana "más gruesa".
### La distribución F {-}
Otra razón de variables aleatorias importante para los econometristas es la razón de dos variables aleatorias independientes distribuidas $\chi^2$ que se dividen por sus grados de libertad $M$ y $n$. La cantidad
$$ \frac{W/M}{V/n} \sim F_{M,n} \ \ \text{with} \ \ W \sim \chi^2_M \ \ , \ \ V \sim \chi^2_n $$
sigue una distribución $F$ con grados de libertad del numerador $M$ y grados de libertad del denominador $n$, denotado $F_{M,n}$. La distribución fue derivada por primera vez por George Snedecor, pero recibió su nombre en honor a [Sir Ronald Fisher](https://en.wikipedia.org/wiki/Ronald_Fisher).
Por definición, el soporte de la FDP y FDPA de una variable aleatoria distribuida $F_{M,n}$ es $\mathbb{R}_{\geq0}$.
Suponiendo que se tiene una variable aleatoria $Y$ distribuida $F$ con grados de libertad de numerador $3$ y grados de libertad de denominador $14$ y se está interesado en $P(Y \geq 2)$. Esto se puede calcular con la ayuda de la función **pf()**. Al establecer el argumento **lower.tail** en **FALSE**, se debe asegurar que **R** calcula $1- P(Y \leq 2)$; es decir, la masa de probabilidad en la cola derecha de $2$.
```{r, 187, echo = T, eval = T, message = F, warning = F}
pf(2, df1 = 3, df2 = 14, lower.tail = F)
```
Se puede visualizar dicha probabilidad dibujando una gráfica de lineal de la densidad relacionada y agregar un sombreado de color con **polygon()**.
```{r, 188, echo = T, eval = T, message = F, warning = F, fig.align='center'}
# definir vectores de coordenadas para los vértices del polígono
x <- c(2, seq(2, 10, 0.01), 10)
y <- c(0, df(seq(2, 10, 0.01), 3, 14), 0)
# graficar la densidad de F_{3, 14}
curve(df(x ,3 ,14),
ylim = c(0, 0.8),
xlim = c(0, 10),
ylab = "Densidad",
main = "Función de densidad")
# graficar el polígono
polygon(x, y, col = "orange")
```
La distribución $F$ está relacionada con muchas otras distribuciones. Un caso especial importante encontrado en econometría surge si los grados de libertad del denominador son grandes de tal manera que la distribución $F_{M,n}$ puede aproximarse mediante la distribución $F_{M,\infty}$ que resulta ser simplemente la distribución de una variable aleatoria $\chi^2_M$ dividida por sus grados de libertad $M$,
$$ W/M \sim F_{M,\infty} \ \ , \ \ W \sim \chi^2_M. $$
```{r, 189, echo=FALSE, results='asis', purl=FALSE}
if (my_output=="html"){
cat('
<iframe src="DCL/playground.html" frameborder="0" scrolling="no" style="width:100%;height:340px"></iframe>
')
}
```
## Muestreo aleatorio y distribución de promedios muestrales {#MADPM}
Para aclarar la idea básica del muestreo aleatorio, volviendo al ejemplo de tirar los dados:
Suponga que se tirando los dados $n$ veces. Esto significa que se está interesado en los resultados aleatorios de $Y_i$, $i = 1, ..., n$ que se caracterizan por la misma distribución. Dado que estos resultados se seleccionan al azar, son *variables aleatorias* en sí mismas y sus resultados diferirán cada vez que se extraiga una muestra; es decir, cada vez que se tiren los dados $n$ veces. Además, cada observación se extrae aleatoriamente de la misma población; es decir, los números de $1$ hasta $6$, y su distribución individual es la misma. Por tanto, $Y_1, \dots, Y_n$ se distribuyen de forma idéntica.
Además, se sabe que el valor de cualquiera de los $Y_i$ no proporciona ninguna información sobre el resto de los resultados. En el ejemplo, sacar un seis como la primera observación en la muestra no altera las distribuciones de $Y_2, \dots , Y_n$: Todos los números tienen la misma probabilidad de ocurrir. Esto significa que todos los $Y_i$ también se distribuyen de forma independiente. Por tanto, $Y_1, \dots, Y_n$ son independientes e idénticamente distribuidos (*i.i.d*).
El ejemplo de los dados usa este esquema de muestreo más simple. Por eso se llama *muestreo aleatorio simple*. Este concepto se resume en el Concepto clave 2.5.
```{r, 190, eval = my_output == "html", results='asis', echo=FALSE, purl=FALSE}
cat('
<div class = "keyconcept" id="KC2.5">
<h3 class = "right"> Concepto clave 2.5 </h3>
<h3 class = "left"> Muestreo aleatorio simple y Variables aleatorias independientes e idénticamente distribuidas (i.i.d) </h3>
<p>
En un muestreo aleatorio simple, $n$ objetos se extraen al azar de una población. Es igualmente probable que cada objeto termine en la muestra. Se denota el valor de la variable aleatoria $Y$ para el objeto $i^{th}$ dibujado al azar como $Y_i$. Dado que todos los objetos tienen la misma probabilidad de ser tomados y la distribución de $Y_i$ es la misma para todos los $i$, los $Y_i, \\dots, Y_n$ son independientes e idénticamente distribuidos (i.i.d.). Esto significa que la distribución de $Y_i$ es la misma para todos los $i=1,\\dots,n$ y $Y_1$ se distribuyen independientemente de $Y_2, \\dots, Y_n$ y $Y_2$ se distribuyen independientemente de $Y_1, Y_3, \\dots, Y_n$ y así sucesivamente.
</p>
</div>')
```
```{r, 191, eval = my_output == "latex", results='asis', echo=FALSE, purl=FALSE}
cat('\\begin{keyconcepts}[Muestreo aleatorio simple e i.i.d. Variables aleatorias]{2.5}
En un muestreo aleatorio simple, $n$ objetos se extraen al azar de una población. Es igualmente probable que cada objeto termine en la muestra. Se denota el valor de la variable aleatoria $Y$ para el objeto $i^{th}$ dibujado al azar como $Y_i$. Dado que todos los objetos tienen la misma probabilidad de ser tomados y la distribución de $Y_i$ es la misma para todos los $i$, los $Y_i, \\dots, Y_n$ son independientes e idénticamente distribuidos (i.i.d.). Esto significa que la distribución de $Y_i$ es la misma para todos los $i=1,\\dots,n$ y $Y_1$ se distribuyen independientemente de $Y_2, \\dots, Y_n$ y $Y_2$ se distribuyen independientemente de $Y_1, Y_3, \\dots, Y_n$ y así sucesivamente.
\\end{keyconcepts}')
```
¿Qué sucede si se consideran funciones de los datos de la muestra? Considere, una vez más, el ejemplo de lanzar un dado dos veces seguidas. Una muestra ahora consta de dos extracciones aleatorias independientes del conjunto $\{1,2,3,4,5,6\}$. Es evidente que cualquier función de estas dos variables aleatorias también es aleatoria; por ejemplo, su suma. Convénzase ejecutando el siguiente código varias veces.
```{r, 192, echo = T, eval = T, message = F, warning = F}
sum(sample(1:6, 2, replace = T))
```
Claramente, esta suma, llamada $S$, es una variable aleatoria, dado que depende de sumandos extraídos aleatoriamente. Para este ejemplo, se pueden enumerar completamente todos los resultados y, por lo tanto, escribir la distribución de probabilidad teórica de la función de los datos de la muestra $S$:
En esta situación se está enfrentando a $6^2 = 36$ pares posibles. Esos pares son:
\begin{align*}
&(1,1) (1,2) (1,3) (1,4) (1,5) (1,6) \\
&(2,1) (2,2) (2,3) (2,4) (2,5) (2,6) \\
&(3,1) (3,2) (3,3) (3,4) (3,5) (3,6) \\
&(4,1) (4,2) (4,3) (4,4) (4,5) (4,6) \\
&(5,1) (5,2) (5,3) (5,4) (5,5) (5,6) \\
&(6,1) (6,2) (6,3) (6,4) (6,5) (6,6)
\end{align*}
Por lo tanto, los posibles resultados para $S$ son:
$$ \left\{ 2,3,4,5,6,7,8,9,10,11,12 \right\} . $$
Enumeración de rendimientos de los resultados:
\begin{align}
P(S) =
\begin{cases}
1/36, \ & S = 2 \\
2/36, \ & S = 3 \\
3/36, \ & S = 4 \\
4/36, \ & S = 5 \\
5/36, \ & S = 6 \\
6/36, \ & S = 7 \\
5/36, \ & S = 8 \\
4/36, \ & S = 9 \\
3/36, \ & S = 10 \\
2/36, \ & S = 11 \\
1/36, \ & S = 12
\end{cases}
\end{align}
También se puede calcular $E(S)$ y $\text{Var}(S)$ como se indica en el Concepto clave 2.1 y el Concepto clave 2.2.
```{r, 193, echo = T, eval = T, message = F, warning = F}
# Vector de resultados
S <- 2:12
# Vector de probabilidades
PS <- c(1:6, 5:1) / 36
# Expectativa de S
ES <- sum(S * PS)
ES
# Varianza de S
VarS <- sum((S - c(ES))^2 * PS)
VarS
```
Entonces se conoce la distribución de $S$. También es evidente que su distribución difiere considerablemente de la distribución marginal; es decir, la distribución del resultado de una sola tirada de dados, $D$. Se puede visualizar esto usando gráficos de barras.
```{r, 194, echo = T, eval = T, message = F, warning = F, fig.align='center'}
# divide el área de trazado en una fila con dos columnas
par(mfrow = c(1, 2))
# graficar la distribución de S
barplot(PS,
ylim = c(0, 0.2),
xlab = "S",
ylab = "Probabilidad",
col = "steelblue",
space = 0,
main = "Suma de dos lanzamientos")
# graficar la distribución de D
probability <- rep(1/6, 6)
names(probability) <- 1:6
barplot(probability,
ylim = c(0, 0.2),
xlab = "D",
col = "steelblue",
space = 0,
main = "Resultado de un solo lanzamiento")
```
Muchos procedimientos econométricos tratan con promedios de datos muestreados. Por lo general, se asume que las observaciones se extraen al azar de una población desconocida más grande. Como se demostró para la función de muestra $S$, calcular el promedio de una muestra aleatoria tiene el efecto de que el promedio es una variable aleatoria en sí misma. Dicha variable aleatoria, a su vez, tiene una distribución de probabilidad, denominada distribución de muestreo. Por tanto, el conocimiento sobre la distribución muestral del promedio es fundamental para comprender el desempeño de los procedimientos econométricos.
El *promedio de la muestra* de una muestra de $n$ observaciones $Y_1, \dots, Y_n$ es
$$ \overline{Y} = \frac{1}{n} \sum_{i=1}^n Y_i = \frac{1}{n} (Y_1 + Y_2 + \cdots + Y_n). $$
$\overline{Y}$ también se denomina media muestral.
### Media y varianza de la media muestral {-}
Suponga que $Y_1,\dots,Y_n$ son i.i.d. y se denota $\mu_Y$ y $\sigma_Y^2$ como la media y la varianza de $Y_i$. Entonces se tiene que:
$$ E(\overline{Y}) = E\left(\frac{1}{n} \sum_{i=1}^n Y_i \right) = \frac{1}{n} E\left(\sum_{i=1}^n Y_i\right) = \frac{1}{n} \sum_{i=1}^n E\left(Y_i\right) = \frac{1}{n} \cdot n \cdot \mu_Y = \mu_Y $$
y
\begin{align*}
\text{Var}(\overline{Y}) =& \text{Var}\left(\frac{1}{n} \sum_{i=1}^n Y_i \right) \\
=& \frac{1}{n^2} \sum_{i=1}^n \text{Var}(Y_i) + \frac{1}{n^2} \sum_{i=1}^n \sum_{j=1, j\neq i}^n \text{cov}(Y_i,Y_j) \\
=& \frac{\sigma^2_Y}{n} \\
=& \sigma_{\overline{Y}}^2.
\end{align*}
El segundo sumando desaparece desde $\text{cov}(Y_i,Y_j)=0$ para $i\neq j$ debido a la independencia. En consecuencia, la desviación estándar de la media muestral viene dada por
$$\sigma_{\overline{Y}} = \frac{\sigma_Y}{\sqrt{n}}.$$
Vale la pena mencionar que estos resultados se mantienen independientemente de la distribución subyacente de $Y_i$.
#### La distribución de muestreo de $\overline{Y}$ cuando $Y$ se distribuye normalmente {-}
Si $Y_1,\dots,Y_n$ son i.i.d. se extrae de una distribución normal con media $\mu_Y$ y varianza $\sigma_Y^2$, lo siguiente es válido para su promedio de muestra $\overline{Y}$:
$$ \overline{Y} \sim \mathcal{N}(\mu_Y, \sigma_Y^2/n) \tag{2.4} $$
Por ejemplo, si una muestra $Y_i$ con $i=1,\dots,10$ se extrae de una distribución normal estándar con media $\mu_Y = 0$ y varianza $\sigma_Y^2=1$ se sigue que:
$$ \overline{Y} \sim \mathcal{N}(0,0.1).$$
Se puede usar la instalación de generación de números aleatorios de **R** para verificar el resultado. La idea básica es simular los resultados de la distribución real de $\overline{Y}$ extrayendo repetidamente muestras aleatorias de 10 observaciones de la distribución $\mathcal{N}(0,1)$ y calculando sus respectivos promedios. Si se hace esto para un gran número de repeticiones, el conjunto de datos simulados de promedios debería reflejar con bastante precisión la distribución teórica de $\overline{Y}$ si el resultado teórico se cumple.
El enfoque esbozado anteriormente es un ejemplo de lo que se conoce comúnmente como *Simulación de Monte Carlo* o *Experimento de Monte Carlo*. Para realizar esta simulación en **R** se debe proceder de la siguiente manera:
1. Elegir un tamaño de muestra **n** y el número de muestras que se extraerán, **reps**.
2. Utilizar la función **replicate()** junto con **rnorm()** para extraer **n** observaciones de la distribución normal estándar **rep** veces.
**Nota**: El resultado de **replicate()** es una matriz con dimensiones **n** $\times$ **rep**. Contiene las muestras extraídas como *columnas*.
3. Calcular las medias de la muestra utilizando **colMeans()**. Esta función calcula la media de cada columna; es decir, de cada muestra y devuelve un vector.
```{r, 195, echo = T, eval = T, message = F, warning = F}
# establecer el tamaño de la muestra y el número de muestras
n <- 10
reps <- 10000
# realizar muestreo aleatorio
muestras <- replicate(reps, rnorm(n)) # 10 x 10000 sample matrix
# calcular medias de muestra
muestra.promedios <- colMeans(muestras)
```
Luego se termina con un vector de promedios muestrales (medias muestrales). Se puede verificar la propiedad vectorial de **muestra.promedios**:
```{r, 196, echo = T, eval = T, message = F, warning = F}
# comprobar que 'muestra.promedios' es un vector
is.vector(muestra.promedios)
# imprimir las primeras entradas en la consola
head(muestra.promedios)
```
Un enfoque sencillo para examinar la distribución de datos numéricos univariados es trazarlos como un histograma y compararlos con alguna distribución conocida o supuesta. De forma predeterminada, **hist()** da un histograma de frecuencia; es decir, un gráfico de barras donde las observaciones se agrupan en rangos, también llamados bins. La ordenada informa el número de observaciones que caen en cada uno de los contenedores. En cambio, se quiere que informe estimaciones de densidad con fines de comparación. Esto se logra estableciendo el argumento **freq = FALSE**. El número de bins se ajusta mediante el argumento **breaks**.
Usando **curve()**, se superpone el histograma con una línea roja, la densidad teórica de una variable aleatoria $\mathcal{N}(0, 0.1)$ . Recuerde usar el argumento **add = TRUE** para agregar la curva al gráfico actual. De lo contrario, **R** abrirá un nuevo dispositivo gráfico y descartará el gráfico anterior.^[*Sugerencia:* **T** y **F** son alternativas para **TRUE** y **FALSE**.]
```{r, 197, echo = T, eval = T, message = F, warning = F, fig.align='center'}
# Grafique el histograma de densidad
hist(muestra.promedios,
ylim = c(0, 1.4),
col = "steelblue" ,
freq = F,
breaks = 20)
# Superponga la distribución teórica de los promedios de la muestra en la parte superior del histograma
curve(dnorm(x, sd = 1/sqrt(n)),
col = "red",
lwd = "2",
add = T)
```
La distribución de muestreo de $\overline{Y}$ es, de hecho, muy cercana a la de una distribución $\mathcal{N}(0, 0.1)$, por lo que la simulación de Monte Carlo respalda la afirmación teórica.
Analizando otro ejemplo en que el uso del muestreo aleatorio simple en una configuración de simulación ayuda a verificar un resultado bien conocido. Como se discutió antes, la distribución [Chi-cuadrado](#chi-cuadrado) con $M$ grados de libertad surge como la distribución de la suma de $M$ variables aleatorias independientes distribuidas de forma normalmente estándar al cuadrado.