-
Notifications
You must be signed in to change notification settings - Fork 0
/
03-unidad3.Rmd
1932 lines (1474 loc) · 105 KB
/
03-unidad3.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
# Regresión Lineal
En general, las bases de datos que se trabajarán en esta sección son las siguientes:
- [Tasa Euro/Dólar](https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2023-1/Tasa%2Beuro%2Bdolar%2Bhistorica2023.csv){#TasaEURUSD}: Contiene el registro diario histórico de la tasa de cambio del Euro a Dólar durante el 2023. Las columnas de la base de datos son las siguientes:
- Date: Fecha de medición (yyyy-mm-dd), desde enero del 2003 hasta enero del 2023.
- Open: tasa de apertura.
- High: tasa más alta alcanzada en el día.
- Low: tasa más baja alcanzada en el día.
- Close: tasa de cierre del día.
- Adj Close: tasa de cierre ajustada del día (precio de cierre sin dividendos).
```{r, echo = FALSE, results="asis", eval=code}
cat("El código para cargar la base de datos en R es:")
```
```{r, echo = code}
datos = read.csv("https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2023-1/Tasa%2Beuro%2Bdolar%2Bhistorica2023.csv")
```
- [Precios de electricidad](https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2024-1/Belgian%20Electricity%20Prices.csv){#PreciosElectricidad}: Un conjunto de datos históricos que contiene el precio por hora de la electricidad para Bélgica. Las columnas de la base de datos son las siguientes:
- MTU: Hora de inicio (formato fecha y hora) del coste de la electricidad.
- EUR_MWh: Precio por hora (Euros por MWh).
```{r, echo = FALSE, results="asis", eval=code}
cat("El código para cargar la base de datos en R es:")
```
```{r, eval = F, echo = code}
datos = read.csv("https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2024-1/Belgian%20Electricity%20Prices.csv")
```
- [Pacientes](https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2023-1/Heart+complete.csv){#Pacientes}: Contiene datos respecto a los ataques al corazón de distintos pacientes hospitalarios. El detalle de algunas de las columnas de la base de datos que utilizaremos son las siguientes:
- age: edad del paciente (en años).
- sex: sexo del paciente (Hombre: 1 y Mujer: 0).
- cp: Tipo de dolor en el pecho, Valor 1: angina típica, Valor 2: angina atípica, Valor 3: dolor no anginoso, Valor 4: asintomático.
- trtbps: presión arterial en reposo (en mm Hg).
- chol: nivel de colestorol (en mg/dl).
- fbs: azúcar en sangre en ayunas $>$ 120 mg/dl (V = 1; F = 0).
- thalachh: frecuencia cardíaca máxima alcanzada (en latidos por minuto).
- oldpeak: tiempo de duración del último ataque al corazón (en minutos).
```{r, echo = FALSE, results="asis", eval=code}
cat("El código para cargar la base de datos en R es:")
```
```{r, eval = F, echo = code}
datos = read.csv("https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2023-1/Heart+complete.csv")
```
- [Ingreso](https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2023-1/Ingreso%2Buniversidad.csv){#Ingreso}: Contiene datos relacionados a características de ingresos de estudiantes a un determinada universidad. Las columnas de la base de datos son las siguientes.
- Sexo: Hombre o Mujer.
- Ingreso: indica la vía de ingreso del estudiante a la universidad, se clasifica en PTU u Otra.
- Logro: corresponde a la proporción de logro (número entre 0 y 1, un logro de 0.4 indica que el estudiante respondió correctamente un 40% de la prueba) del estudiante en el diagnóstico de "Comunicación escrita" aplicado por la universidad.
- LEN: Puntaje PTU - Lenguaje.
- NEM: Puntaje NEM del estudiante.
```{r, echo = FALSE, results="asis", eval=code}
cat("El código para cargar la base de datos en R es:")
```
```{r, eval = F, echo = code}
datos = read.csv("https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2023-1/Ingreso%2Buniversidad.csv")
```
- [Imacec](https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2022-2/Estad%C3%ADstica%201/imacec.csv){#Imacec3}: Contiene los datos de los valores del Imacec mensual de distintos sectores desde enero del 2018 hasta junio del 2022. Las columnas de la base de datos son las siguientes:
- Ano: Año de medición del Imacec.
- Mes: Mes de medición del Imacec.
- Mineria: Imacec del sector de minería.
- Industria: Imacec del sector de industria.
```{r, echo = FALSE, results="asis", eval=code}
cat("El código para cargar la base de datos en R es:")
```
```{r, eval = F, echo = code}
datos = read.csv("https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2022-2/Estad%C3%ADstica%201/imacec.csv")
```
## Análisis descriptivo de datos {#descriptiva}
<!-- ### Gráficos descriptivos -->
<!-- En este apartado, se considera la representación de un conjunto de datos por medio de técnicas visuales. A continuación, se hará mención de algunas de las técnicas más útiles y pertinentes a la estadística de descriptiva. Los ejemplos presentados en esta sección hacen uso de la base de datos de la unidad (sección \@ref(descriptiva)). -->
<!-- #### Histograma -->
<!-- Algunos datos numéricos se obtienen contando para determinar el valor de una variable (cuántas veces se repite un hecho), mientras que otro datos se obtienen tomando mediciones (peso, altura, tiempo de reacción). Usualmente, este tipo de gráfico se utiliza con datos continuos (aunque tiene una versión para datos discretos), para lo cual, se debe hacer lo siguiente [@Devore, página 12]: -->
<!-- 1. Subdividir los datos en **intervalos de clase** o **clases**, de tal manera que cada observación quede contenida en exactamente una clase. Para esto, se hace uso de la regla de Sturges [-@sturges1926choice], la cual, consiste en calcular la expresión $1+\log_2(n)$, aproximando hacia el entero más próximo, dónde $n$ corresponde a la cantidad de datos (existen otra variedad de técnicas). -->
<!-- 2. Determinar la frecuencia y la frecuencia relativa de cada clase, es decir, cuántas observaciones hay en cada uno de los intervalos. -->
<!-- 3. Se marcan los límite de clase sobre el eje horizontal del plano cartesiano. -->
<!-- 4. Se traza un rectángulo cuya altura es la frecuencia absoluta (o relativa) correspondiente a cada intervalo de clase. -->
<!-- Para generar un histograma en R a partir de un conjunto de datos, se utiliza el siguiente código (se toma como ejemplo la base de datos [Tasa Euro/Dólar](#TasaEURUSD)): -->
<!-- ```{r fig.align="center", fig.width=5, fig.height=2} -->
<!-- library(ggplot2) # Librería de ggplot2 -->
<!-- ggplot( # Ambiente gráfico -->
<!-- data = datos, # Base de datos a utilizar -->
<!-- aes( # Comandos estéticos -->
<!-- x = Close)) + # Eje X y variable asociada -->
<!-- geom_histogram( # Objeto a graficar: histograma -->
<!-- bins = round(1 + log2(dim(datos)[1])), # Cantidad de intervalos del histograma: regla de Sturges -->
<!-- color = "black", # Color del borde de las barras del histograma -->
<!-- fill = "white", # Color de relleno de las barras -->
<!-- closed = "left") + # Tipo de intervalo del histograma -->
<!-- labs( # Títulos -->
<!-- title = "Histograma EUR/USD", # Título del gráfico -->
<!-- x = "Tasa de cierre", # Título del eje X -->
<!-- y = "Frecuencia") # Título del eje Y -->
<!-- ``` -->
<!-- Para interpretar un histograma, basta con indicar los siguientes aspectos: -->
<!-- - Forma visual de la distribución de las barras (en general). -->
<!-- - Mencionar si existe una concentración fuera del comportamiento general, y en dónde se encuentra. -->
<!-- En el caso del histograma de la tasa de cierre del EUR/USD, se observa una forma de campana centrada cerca del 1.3, además, se evidencia la presencia de una frecuencia superior al resto que se encuentra la izquierda del gráfico cerca del 1.1. -->
<!-- Cabe mencionar, que existen otros aspectos que son posibles mencionar, para ello consulte la bibliografía del curso. -->
<!-- Es útil recordar que el histograma está asociado a una tabla de frecuencia por intervalos. Para obtener la tabla asociada a un histograma se puede utilizar el siguiente código. -->
<!-- ```{r} -->
<!-- # Datos del histograma guardados -->
<!-- h = hist(datos$Close, # Datos a graficar en el histograma -->
<!-- breaks = 13, # Cantidad de intervalos: regla de Sturges -->
<!-- right = F, # Cerrado por la izquierda -->
<!-- plot = F) # No desplegar el gráfico en consola -->
<!-- library(agricolae) # Librería para generar la tabla de frecuencias -->
<!-- print(table.freq(h)) # Imprime en consola la tabla de frecuencias -->
<!-- ``` -->
<!-- ::: {.exercise} -->
<!-- Utilizando la base de datos de [Precios](#PreciosElectricidad), elabore un histograma de los precios de la electricidad. Interprete. -->
<!-- ::: -->
<!-- #### Gráfico de Caja -->
<!-- El gráfico de caja se utiliza para describir las siguiente características de un conjunto de datos [@Devore, página 35]: -->
<!-- - El centro. -->
<!-- - La dispersión. -->
<!-- - El grado y naturaleza de cualquier alejamiento de la simetría. -->
<!-- - La identificación de las observaciones "extremas" (atípicas) inusualmente alejadas del cuerpo principal de los datos. -->
<!-- Los pasos para elaborar un gráfico de caja son los siguiente [@anderson, página 106]: -->
<!-- 1. Se dibuja una caja cuyos extremos se localicen en primer y tercer cuartiles. Esta caja contiene 50% de los datos centrales. -->
<!-- 2. En el punto donde se localiza la mediana se traza una linea horizontal. -->
<!-- 3. Usando el rango intercuartílico ($RIC = Q_3-Q_1$), se localizan los límites. En un gráfico de caja los límites se encuentra a $1.5RIC$ abajo y arriba de $Q_1$ y $Q_3$ respectivamente. Los datos que quedan fuera de estos límites se consideran observaciones atípicas [@Tukey]. La razón por la cual se considera 1.5 veces el rango intercuartílico es convencional, no obstante, hay argumento relacionados a la cantidad de datos dentro de los limites inferior y superior, los cuales indican que debe ser de 99.7% [@James2013]. -->
<!-- 4. Las lineas que se extienden verticalmente desde la caja se les llaman *'bigotes'*. Los bigotes van desde los extremos de la caja hasta los valores menor y mayor de los límites calculados en el paso 3. -->
<!-- 5. Mediante puntos se indica la localización de las observaciones atípicas. -->
<!-- Para generar un gráfico de caja en R a partir de un conjunto de datos, se utiliza el siguiente código (se toma como ejemplo la base de datos [Tasa Euro/Dólar](#TasaEURUSD)): -->
<!-- ```{r fig.align="center", fig.width=8, fig.height=3} -->
<!-- g = ggplot( # Ambiente gráfico -->
<!-- data = datos, # Base de datos a utilizar -->
<!-- aes( # Comandos estéticos -->
<!-- y = Close)) + # Eje Y y variable asociada -->
<!-- geom_boxplot( # Objeto a graficar: gráfico de caja -->
<!-- color = "black", # Color del borde del gráfico -->
<!-- fill = "white") + # Color de relleno del gráfico -->
<!-- labs( # Títulos -->
<!-- title = "Caja EUR/USD (opción 1)", # Título del gráfico -->
<!-- x = "", # Título del eje X -->
<!-- y = "Tasa de cierre") + # Título del eje Y -->
<!-- theme( # Aspectos visuales del gráfico -->
<!-- axis.ticks.x = element_blank(), # Elimina las regletas del eje X -->
<!-- axis.text.x = element_blank()) # Elimina los números del eje X -->
<!-- info = unlist(ggplot_build(g)[[1]]) # Guardamos los valores del gráfico -->
<!-- values = round(as.numeric(info[1:5]), 3) # Extraemos los valores de construcción -->
<!-- g1 = g + # Creamos un nuevo gráfico a partir del anterior -->
<!-- scale_y_continuous( # Modificar el eje Y -->
<!-- breaks = values, # Modificamos los puntos a considerar en el eje Y -->
<!-- labels = values) + # Modificamos los valores mostrados en el eje Y -->
<!-- labs( # Títulos -->
<!-- title = "Caja EUR/USD (opción 2)") # Título del gráfico -->
<!-- library(gridExtra) # Librería para juntar gráficos de ggplot2 -->
<!-- grid.arrange(g, # Gráfico -->
<!-- g1, # Gráfico -->
<!-- ncol = 2) # Despliegue en a dos columnas -->
<!-- ``` -->
<!-- Para interpretar un gráfico de caja es recomendable utilizar la opción 2 mostrada anteriormente, ya que, se debe mencionar uno de los puntos relevantes del gráfico. En el ejemplo recién dado, se observa que, el primer, segundo y tercer cuartil están en 1.135, 1.233 y 1.335 respectivamente, mientras que el valor mínimo y máximo están en 0.96 y 1.559 respectivamente. Adicionalmente, se puede mencionar que los datos superiores en comparación a los inferiores, se encuentran más alejados de la mediana. -->
<!-- ::: {.exercise} -->
<!-- Utilizando la base de datos de [Precios](#PreciosElectricidad), elabore un gráfico de caja de los precios de la electricidad. Interprete. -->
<!-- ::: -->
<!-- #### Gráfico de Violín -->
<!-- El gráfico de violín proporciona una representación más completa y precisa de la distribución de los datos que las técnicas anteriores, ya que muestra tanto la forma de la distribución como su concentración [@hintze1998violin]. La utilidad de este gráfico recae en la comparación de la distribución de los datos entre distintos grupos y/o categorías. -->
<!-- El proceso de construcción del gráfico es el siguiente: -->
<!-- 1. Dibujo de la traza de densidad: la traza de densidad se dibuja sobre el eje vertical en el gráfico de violín ("forma suavizada del histograma"). -->
<!-- 2. Creación de la sección central simétrica: se crea una sección central simétrica que representa la mitad de la traza de densidad. -->
<!-- Adicionalmente, es común agregar un gráfico de caja junto al de violín con el fin de incorporar la visualización de las medidas de posición. -->
<!-- Para generar un gráfico de violín en R a partir de un conjunto de datos, se utiliza el siguiente código (se toma como ejemplo la base de datos [Tasa Euro/Dólar](#TasaEURUSD)): -->
<!-- ```{r fig.align="center", fig.width=4, fig.height=3} -->
<!-- # Se guarda el gráfico en una variable para posteriormente -->
<!-- # integrar otros gráficos dentro de este. -->
<!-- g = ggplot( # Ambiente gráfico -->
<!-- data = datos, # Base de datos a utilizar -->
<!-- aes( # Comandos estéticos -->
<!-- x = 1, # Se fija el valor horizontal del gráfico (a elección) -->
<!-- y = Close)) + # Eje Y y variable asociada -->
<!-- geom_violin( # Objeto a graficar: violín -->
<!-- trim = F, # Modifica las terminaciones visuales superior e inferior -->
<!-- fill = "white") + # Color de relleno del gráfico -->
<!-- labs( # Títulos -->
<!-- title = "Violín EUR/USD", # Título del gráfico -->
<!-- x = "", # Título del eje X -->
<!-- y = "Tasa de cierre") + # Título del eje Y -->
<!-- theme( # Aspectos visuales del gráfico -->
<!-- axis.ticks.x = element_blank(), # Elimina las regletas del eje X -->
<!-- axis.text.x = element_blank()) # Elimina los números del eje X -->
<!-- g # Desplegamos el gráfico en el visualizador -->
<!-- ``` -->
<!-- ```{r fig.align="center", fig.width=4, fig.height=3} -->
<!-- # Agregamos otros elementos al gráfico guardado -->
<!-- g + geom_boxplot( # Objeto a graficar: gráfico de caja -->
<!-- width = 0.1, # Anchura proporcional del nuevo gráfico de caja -->
<!-- color = "black", # Color de borde del gráfico -->
<!-- fill = "white") + # Color de relleno del gráfico -->
<!-- stat_summary( # Función para agregar información de resumen -->
<!-- fun = mean, # Tipo de información: promedio -->
<!-- geom = "point", # Forma visual -->
<!-- size = 1, # Tamaño -->
<!-- color = "red", # Color -->
<!-- orientation = "x") # Orientación -->
<!-- ``` -->
<!-- Para interpretar un gráfico de violín con caja y promedio se deben mencionar tres aspectos relevantes: -->
<!-- - Ubicación de la(s) mayor(es) concentración(es) de datos, utilizando como referencia los cuartiles. -->
<!-- - Ubicación del promedio respecto a la mediana. -->
<!-- - Posibles razones por las cuales se explica la ubicación anteriormente mencionada del promedio respecto a la mediana. -->
<!-- En el ejemplo anterior, la principal concentración se encuentra por debajo del primer cuartil, aunque destacan otras dos concentraciones que están por debajo del segundo cuartil y alrededor del tercer cuartil respectivamente. El promedio se encuentra sutilmente por encima de la mediana, esto se puede explicar debido a que los datos superiores del gráfico se encuentra más lejos de la mediana en comparación a los datos inferiores. -->
<!-- ::: {.exercise} -->
<!-- Utilizando la base de datos de [Precios](#PreciosElectricidad), elabore un gráfico de violín con caja y promedio de los precios de la electricidad. Interprete. -->
<!-- ::: -->
<!-- :::: {.blackbox} -->
<!-- ::: {.example} -->
<!-- El siguiente código, crea una nueva columna en la base de datos que identifica el año en el que se realizó la medición de las tasas. A continuación, elabore un gráfico de violín (más gráfico de caja y promedio) de la variable **Close** en el periodo de años 2006-2010, diferenciando por año. -->
<!-- ```{r fig.align="center", fig.width=8, fig.height=3} -->
<!-- # Extraemos el año de la variable Date, y la guardamos en un nueva columna -->
<!-- datos$Ano = substr(datos$Date, 1, 4) -->
<!-- ggplot( # Ambiente gráfico -->
<!-- data = datos[datos$Ano %in% 2006:2010,], # Base de datos a utilizar -->
<!-- aes( # Comandos estéticos -->
<!-- x = 1, # Se fija el valor horizontal del gráfico (a elección) -->
<!-- y = Close)) + # Eje Y y variable asociada -->
<!-- geom_violin( # Objeto a graficar: violín -->
<!-- trim = F, # Modifica las terminaciones visuales superior e inferior -->
<!-- fill = "white") + # Color de relleno del gráfico -->
<!-- geom_boxplot( # Objeto a graficar: gráfico de caja -->
<!-- width = 0.1, # Anchura proporcional del nuevo gráfico de caja -->
<!-- color = "black", # Color de borde del gráfico -->
<!-- fill = "white") + # Color de relleno del gráfico -->
<!-- stat_summary( # Función para agregar información de resumen -->
<!-- fun = mean, # Tipo de información: promedio -->
<!-- geom = "point", # Forma visual -->
<!-- size = 1, # Tamaño -->
<!-- color = "red") + # Color -->
<!-- labs( # Títulos -->
<!-- title = "Violín EUR/USD", # Título del gráfico -->
<!-- x = "", # Título del eje X -->
<!-- y = "Tasa de cierre") + # Título del eje Y -->
<!-- theme( # Aspectos visuales del gráfico -->
<!-- axis.ticks.x = element_blank(), # Elimina las regletas del eje X -->
<!-- axis.text.x = element_blank()) + # Elimina los números del eje X -->
<!-- facet_wrap( # Segregación del gráfico -->
<!-- vars(Ano), # Variable que se utiliza para segregar el gráfico -->
<!-- nrow = 1) # Disposición visual: una fila -->
<!-- ``` -->
<!-- Para interpretar este tipo de gráficos, se debe realizar un interpretación uno a uno, siguiendo la recomendación antes dada. También, es posible comprar los gráficos a través de la media y coeficiente de variabilidad. Para este ejemplo, queda como trabajo del estudiante realizar esta comparación. -->
<!-- ::: -->
<!-- :::: -->
<!-- ::: {.exercise #violin-colesterol-azucar} -->
<!-- Utilizando la base de datos de [Paciente](#Pacientes) Realice un gráfico de violín con caja y promedio del nivel de colesterol de los paciente, diferenciando por el nivel de azúcar en sangre en ayunas. Interprete. -->
<!-- ::: -->
<!-- ::: {.exercise} -->
<!-- Agregue una diferenciación por sexo a lo realizado en el ejercicio \@ref(exr:violin-colesterol-azucar). Entienda que para cada nivel de azúcar en sangre se debe ver un desglose por sexo. Interprete. -->
<!-- ::: -->
<!-- ::: {.exercise} -->
<!-- Utilizando la base de datos de [Precios](#PreciosElectricidad), realice un gráfico de violín con caja y promedio para el precio de la electricidad, diferenciado por año. Interprete. -->
<!-- ::: -->
<!-- #### Gráfico de Barras -->
<!-- Una gráfico de barras, es una gráfica para representar los datos cualitativos de una distribución de frecuencia. El procedimiento de construcción es el siguiente [@anderson, página 29]. -->
<!-- 1. En uno de los ejes de la gráfica (por lo general en el horizontal), se especifican las etiquetas empleadas para las clases (categorías). -->
<!-- 3. Para el otro eje de la gráfica (el vertical) se usa una escala para frecuencia, frecuencia relativa o frecuencia porcentual. -->
<!-- 4. Finalmente, se emplea un ancho de barra fijo y se dibuja sobre cada etiqueta de las clases una barra que se extiende hasta la frecuencia de la clase (a diferencia del histograma, las barras deben estar separadas notoriamente). -->
<!-- Para generar un gráfico de barras en R a partir de un conjunto de datos, se utiliza el siguiente código (se toma como ejemplo la base de datos [Tasa Euro/Dólar](#TasaEURUSD)): -->
<!-- ```{r fig.align="center", fig.width=4, fig.height=2} -->
<!-- # Nueva variable para dicotomizar la tasa de cierre del EUR/USD -->
<!-- datos$Close2 = ifelse(datos$Close > 1.1, # Criterio -->
<!-- "Mayor a 1.1", # Valor asignado si se cumple el criterio -->
<!-- "Menor a 1.1") # Valor asignado si no se cumple el criterio -->
<!-- ggplot( # Ambiente gráfico -->
<!-- data = datos, # Base de datos a utilizar -->
<!-- aes( # Comandos estéticos -->
<!-- x = Close2)) + # Eje Y y variable asociada -->
<!-- geom_bar( # Objeto a graficar: gráfico de barras -->
<!-- fill = "white", color = "black") + # Color de relleno y borde -->
<!-- labs( # Títulos -->
<!-- title = "Barras EUR/USD", # Título del gráfico -->
<!-- x = "Tasa de cierre", # Título del eje X -->
<!-- y = "Frecuencia") # Título del eje Y -->
<!-- ``` -->
<!-- La interpretación de este tipo de gráfico (gráfico de barras no apiladas) es bastante intuitiva, ya que consiste en mencionar cuál categoría tiene un mayor frecuencia. En caso de graficar una variable con más de 2 categorías, se debe mencionar a que altura del eje vertical se encuentra la altura de cada una de las barras. Para obtener mayor detalles respecto a las frecuencias por categoría, suele apoyarse con un tabla de frecuencias absolutas o relativas porcentuales. -->
<!-- En el ejemplo, la frecuencia de la cantidad de tasas de cierre que se encuentran por sobre 1.1 es mayor a las que se encuentran por debajo, con una frecuencia sobre 4000 y menor a 1000 respectivamente. -->
<!-- ::: {.exercise} -->
<!-- Utilizando la base de datos [Pacientes](#Pacientes), elabore un gráfico de barras de la variable *fbs*. Interprete, apoyado de una tabla de frecuencias absolutas. -->
<!-- ::: -->
<!-- ::: {.exercise} -->
<!-- Utilizando la base de datos [Pacientes](#Pacientes), elabore un gráfico de barras (no apiladas) de la variable *cp*, diferenciado por sexo. Interprete, apoyado de una tabla de frecuencias relativas porcentuales. Haga el contraste visual con el gráfico de barras apiladas. -->
<!-- ::: -->
<!-- #### Gráfico de Dispersión -->
<!-- El gráfico de dispersión es útil para estudiar la relación entre dos variables continuas. Muestra cómo varía un variable en función de la otra y puede ayudar a identificar patrones y tendencias [@rowlingson2016data]. -->
<!-- Los pasos para elaborar un gráfico de caja son los siguiente [@healy2019data]: -->
<!-- 1. Elegir dos variables continuas de la base de datos a trabajar. Cada fila corresponde a una observación, por lo cual, hay una correspondencia entre los valores de una misma fila. -->
<!-- 2. Elegir la variable estará en el eje X y Y. -->
<!-- 3. Representar cada par ordenado con un punto. -->
<!-- Para generar un gráfico de dispersión en R a partir de un conjunto de datos, se utiliza el siguiente código (se toma como ejemplo la base de datos [Tasa Euro/Dólar](#TasaEURUSD)): -->
<!-- ```{r fig.align="center", fig.width=8, fig.height=4} -->
<!-- ggplot( # Ambiente gráfico -->
<!-- data = datos, # Base de datos a utilizar -->
<!-- aes( # Comando estéticos -->
<!-- x = Open, # Eje X y variable asociada -->
<!-- y = Close)) + # Eje Y y variable asociada -->
<!-- geom_point( # Objeto a graficar: Gráfico de dispersión -->
<!-- color = "black", # Color -->
<!-- alpha = 0.3) + # Opacidad -->
<!-- labs( # Títulos -->
<!-- title = "Tasa de apertura y cierre del EUR/USD", # Título del gráfico -->
<!-- x = "Tasa de apertura", # Título del eje X -->
<!-- y = "Tasa de cierre") # Título del eje Y -->
<!-- ``` -->
<!-- Tal como se menciona al inicio, la interpretación de este tipo de gráficos radica en describir la tendencia de los puntos. En el ejemplo anterior, el gráfico muestra una tendencia al alza, es decir, que cuando la tasa de apertura del EUR/USD aumenta, entonces, la tasa de cierre tiende a aumentar. -->
<!-- ::: {.exercise} -->
<!-- Utilizando la base de datos [Pacientes](#Pacientes), realice un gráfico de dispersión entre la variable *age* (eje X) y la variable *thalachh* (eje Y). Interprete. -->
<!-- ::: -->
<!-- :::: {.blackbox} -->
<!-- ::: {.example} -->
<!-- En los siguiente gráficos se toma como ejemplo la base de datos [Tasa Euro/Dólar](#TasaEURUSD). -->
<!-- 1. Es posible utilizar el gráfico de dispersión con variables que en su naturaleza son discretas. En este sentido, elabore un gráfico de dispersión entre el año de medición y el valor promedio de tasa de apertura del EUR/USD (guarde el gráfico en una variable). -->
<!-- ```{r fig.align="center", fig.width=8, fig.height=4} -->
<!-- g = ggplot( # Ambiente gráfico -->
<!-- data = datos, # Base de datos a utilizar -->
<!-- aes( # Comando estéticos -->
<!-- x = Ano, # Eje X y variable asociada -->
<!-- y = Open, # Eje Y y variable asociada -->
<!-- group = 1)) + # Comando únicamente necesario para la pregunta 2 -->
<!-- geom_point( # Objeto a graficar -->
<!-- stat = "summary", # Tipo de información a graficar: resumen -->
<!-- fun = "mean") + # Tipo de resumen: promedio de la variable Y -->
<!-- labs( # Títulos -->
<!-- title = "Tasa de apertura promedio del EUR/USD por año", # Título del gráfico -->
<!-- x = "Año", # Título del eje X -->
<!-- y = "Tasa de apertura") # Título del eje Y -->
<!-- g # Desplegamos el gráfico guardado -->
<!-- ``` -->
<!-- 2. Añadir al gráfico un formato de líneas entre los puntos. Interprete. -->
<!-- ```{r fig.align="center", fig.width=8, fig.height=4} -->
<!-- g = g + # Añadimos otro gráfico -->
<!-- geom_line( # Objeto a graficar: lineas -->
<!-- stat = "summary", # Tipo de información a graficar: resumen -->
<!-- fun = "mean") # Tipo de resumen: promedio de la variable Y -->
<!-- g # Desplegamos el gráfico guardado -->
<!-- ``` -->
<!-- Hasta el 2008 la tasa promedio de apertura estuvo en alza, posteriormente, la tasa decayó a un valor inferior a 1.1. -->
<!-- 3. Grafique el valor de la tasa de apertura del EUR/USD desde el 2020 hasta el 2022 separadamente. Interprete. -->
<!-- ```{r fig.align="center", fig.width=8, fig.height=4} -->
<!-- datos$Date = as.Date(datos$Date) # Fechas en formato fecha de R -->
<!-- g = ggplot( # Ambiente gráfico -->
<!-- data = datos[datos$Ano %in% 2020:2022,], # Datos de los años 2020 al 2022 -->
<!-- aes( # Comando estéticos -->
<!-- x = Date, # Comandos estéticos: Eje X y variable asociada -->
<!-- y = Open)) + # Eje Y y variable asociada -->
<!-- geom_point( # Objeto a graficar -->
<!-- alpha = 0.5, # Opacidad -->
<!-- size = 0.6) + # Tamaño -->
<!-- theme( # Aspectos visuales del gráfico -->
<!-- axis.text.x = element_blank()) + # Eliminamos el texto del eje X -->
<!-- facet_wrap( # Segregación del gráfico -->
<!-- vars(Ano), # Variable que se utiliza para segregar el gráfico -->
<!-- nrow = 1, # Disposición visual: una fila -->
<!-- scales = "free_x") + # La escala del eje X es independiente para gráfico -->
<!-- labs( # Títulos -->
<!-- title = "Tasa de apertura del EUR/USD desde el 2020 hasta el 2022", # Título del gráfico -->
<!-- x = "Fecha", # Título del eje X -->
<!-- y = "Tasa de apertura") # Título del eje Y -->
<!-- g # Desplegamos el gráfico guardado -->
<!-- ``` -->
<!-- Durante los 3 años consecutivos, se observa que únicamente en el 2020 la tendencia de la tasa de apertura es al alza, mientra que para los otros dos años hubo un decaimiento en el valor de esta. -->
<!-- 4. Grafique el valor de la tasa de apertura del EUR/USD diferenciando por año. Interprete. -->
<!-- ```{r fig.align="center", fig.width=8, fig.height=4} -->
<!-- g = ggplot( # Ambiente gráfico -->
<!-- data = datos, # Base de datos a utilizar -->
<!-- aes( # Comando estéticos -->
<!-- x = Date, # Comandos estéticos: Eje X y variable asociada -->
<!-- y = Open, # Eje Y y variable asociada -->
<!-- color = Ano)) + # Color según el año -->
<!-- geom_point( # Objeto a graficar -->
<!-- alpha = 0.5, # Opacidad -->
<!-- size = 0.7) + # Tamaño -->
<!-- labs( # Títulos -->
<!-- color = "Año", # Título de la leyenda -->
<!-- title = "Tasa de apertura del EUR/USD", # Título del gráfico -->
<!-- x = "Fecha", # Título del eje X -->
<!-- y = "Tasa de apertura") + # Título del eje Y -->
<!-- guides( # Edición de escalas -->
<!-- color = guide_legend( # Escala de color de la leyenda -->
<!-- override.aes = list( # Comando estéticos asociados -->
<!-- alpha = 1, # Opacidad de los puntos -->
<!-- size = 3))) # Tamaño de los puntos -->
<!-- g # Desplegamos el gráfico guardado -->
<!-- ``` -->
<!-- Al observar la evolución histórica de la tasa de apertura diferenciada por año, se aprecia que el periodo 2008 - 2010 es aquel con predominancia de valores más altos. Por otro lado, desde el 2016, se registraron pro primera vez valores menores a 1.1. En años posteriores, no ha observado que la tasa supere los 1.3 puntos. -->
<!-- ::: -->
<!-- :::: -->
<!-- ::: {.exercise} -->
<!-- Utilizando la base de datos de la [Tasa Euro/Dólar](#TasaEURUSD): -->
<!-- 1. Elabore un gráfico de dispersión entre el año de medición y el valor promedio de tasa de cierre del EUR/USD (guarde el gráfico en una variable). -->
<!-- 2. Añadir al gráfico un formato de líneas entre los puntos. Interprete. -->
<!-- 3. Grafique el valor de la tasa de cierre del EUR/USD desde el 2010 hasta el 2013 separadamente. Interprete. -->
<!-- 4. Grafique el valor de la tasa de cierre del EUR/USD diferenciando por año. Interprete. -->
<!-- ::: -->
<!-- ::: {.exercise} -->
<!-- Utilizando la base de datos de [Precios de electricidad](#PreciosElectricidad), elabore un gráfico de dispersión del precio de la electricidad a través del tiempo (considere año, mes y día). Interprete. -->
<!-- ::: -->
<!-- ::: {.exercise} -->
<!-- Utilizando la base de datos de [Pacientes](#Pacientes): -->
<!-- 1. Elabore un histograma del nivel de colesterol de los pacientes. Interprete. -->
<!-- 2. Elabore un gráfico de caja del nivel de colesterol de los pacientes, diferenciando por sexo. Interprete y compare. -->
<!-- 3. Elabore un gráfico de violín (más caja y promedio) del nivel de colesterol de los pacientes, diferenciado por tipo de dolor en el pecho. Interprete y compare. -->
<!-- 4. Elabore un gráfico de dispersión entre la edad (eje X) y el nivel de colesterol (eje Y) de los pacientes, coloreando por sexo. Interprete. -->
<!-- ::: -->
### Covarianza
Es posible entender las relaciones entre dos o más variables, gráficamente y a través de estadísticos. En esta sección seabarcarán las relaciones lineales entre dos variables cuantitativas, utilizando la Covarianza y la Correlación. El gráfico que apoya a estas dos medidas es el gráfico de dispersión.
La **Covarianza** entre dos variables de la misma muestra, se puede calcular como:
```{=tex}
\begin{equation}
S_{XY} = \displaystyle\frac{\displaystyle\sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})}{n-1}
(\#eq:Covarianza)
\end{equation}
```
La utilidad radica en el signo de esta expresión, el cual, da a conocer el tipo de relación lineal entre las variables $X$ e $Y$. Para interpretar esta expresión se puede usar la siguiente regla.
- Si $S_{XY} = 0$, entonces no existe *relación lineal* entre $X$ e $Y$.
- Si $S_{XY} > 0$, entonces existe una relación lineal directa o positiva entre $X$ e $Y$. Esto es, a mayores valores de $X$, en promedio tenemos mayores valores de $Y$ y viceversa.
- Si $S_{XY} < 0$, entonces existe una relación lineal inversa o negativa entre $X$ e $Y$. Esto es, a mayores valores de $X$, en promedio tenemos menores valores de $Y$ y viceversa.
:::: blackbox
::: {.example}
Por ejemplo, si $S_{XY} = -1000$, ¿qué podemos decir acerca de la relación entre $X$ e $Y$?
La relación entre las variables es inversa. No podemos decir nada acerca de qué tan fuerte es la relación; para eso tendríamos calcular el coeficiente de correlación.
**Nota:** En R, se utiliza el comando `cov()` para calcular la covarianza entre dos variables.
:::
::::
A continuación, se estudia gráficamente la covarianza entre dos variables. Para ello, se necesita del gráfico de dispersión y de las líneas promedio de ambas variables.
```{r echo=FALSE, fig.width=6, fig.height=3, fig.align='center'}
df = iris
x = iris$Petal.Length
y = iris$Petal.Width
x.bar = mean(iris[["Petal.Length"]])
y.bar = mean(iris[["Petal.Width"]])
df$Cuadrante = ifelse(x >= x.bar & y >= y.bar, "+ +",
ifelse(x > x.bar & y < y.bar, "+ -",
ifelse(x <= x.bar & y <= y.bar, "- -", "- +")))
ggplot(data = df, aes(x = Petal.Length, y = Petal.Width, color = Cuadrante)) +
geom_vline(xintercept = x.bar, linetype = "dashed") +
geom_hline(yintercept = y.bar, linetype = "dashed") +
geom_point() +
labs(x = "Variable 1", y = "Variable 2", title = "Gráfico de dispersión")
```
En este caso, la mayoría de los puntos están en los cuadrantes '$+ +$' y '$- -$', y en estos cuadrantes la expresión $(x_i-\bar{x})(y_i-\bar{y})$ es positiva; por eso la covarianza es positiva (aunque también necesario considerar que tan lejos están los puntos de la intersección de las líneas promedio). **¿Es pronunciada la relación lineal?**
### Correlación
Aunque con el signo de la covarianza podemos detectar el tipo de relación entre dos variables, al depender de las unidades de $X$ y de $Y$, no sabemos si corresponde a un relación fuerte o débil (es decir, la forma lineal es fuertemente o débilmente pronunciada); sólo sabemos el signo. Para solucionar esto, **estandarizamos** los valores. La fórmula que realiza este proceso utilizando la covarianza es
```{=tex}
\begin{equation}
r_{XY} = \frac{S_{XY}}{S_{X}S_{Y}}
(\#eq:Correlacion)
\end{equation}
```
Este estadístico, también conocido como **Coeficiente de correlación de Pearson** se encuentra entre -1 y 1.
- Si $r_{XY} = 0$, entonces no hay relación lineal o con relación lineal débil entre las variables.
- Si $r_{XY}$ es cercano a 1, entonces hay relación lineal directa y fuerte entre variables.
- Si $r_{XY}$ es cercano a $-1$, entonces hay relación lineal inversa y fuerte entre las variables.
Una regla más fina sobre la intensidad de la relación es [@ratner_correlation_2009]:
- $r_{XY} = 0$ indica que no hay relación lineal.
- $r_{XY} = 1$ indica una relación lineal positiva perfecta: a medida que una variable aumenta en sus valores, la otra variable también aumenta en sus valores a través de una regla lineal exacta.
- $r_{XY} = -1$ indica una relación lineal negativa perfecta: a medida que una variable aumenta en sus valores, la otra variable disminuye en sus valores a través de una regla lineal exacta.
- Los valores entre $0$ y $0.3$ ($0$ y $−0.3$) indican una relación lineal positiva (negativa) débil a través de una regla lineal inestable.
- Valores entre $0.3$ y $0.7$ ($-0.3$ y $−0.7$) indican una relación lineal positiva (negativa) moderada a través de una regla lineal difusa-firme.
- Los valores entre $0.7$ y $1.0$ ($−0.7$ y $−1.0$) indican una fuerte relación lineal positiva (negativa) a través de una regla lineal firme.
:::: {.blackbox}
::: {.exercise}
Por ejemplo, si $r_{XY} = -0.96$, ¿qué podemos decir acerca de la relación entre $X$ e $Y$?
:::
::::
A continuación, se estudia gráficamente la correlación entre dos variables. Para ello, se necesita del gráfico de dispersión y una recta que refleje la asociación lineal (detalles de esta recta en secciones posteriores).
```{r echo=FALSE, fig.width=6, fig.height=3, fig.align='center', warning=FALSE, message=FALSE}
df = iris
x = iris$Petal.Length
y = iris$Petal.Width
x.bar = mean(iris[["Petal.Length"]])
y.bar = mean(iris[["Petal.Width"]])
ggplot(data = df, aes(x = Petal.Length, y = Petal.Width))+
geom_smooth(method = lm, se = FALSE, formula = 'y ~ x') +
geom_point() +
labs(x = "Variable 1", y = "Variable 2", title = "Gráfico de dispersión")
```
**Nota:** En R, se utiliza el comando `cor()` para calcular la correlación entre dos variables.
**¿Cómo se comportan los puntos al rededor de la línea azul?**
::: {.exercise}
La base de datos [*graficos+dolar.csv*](https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2022-2/Estad%C3%ADstica%202/dolar.csv) contiene el valor del dólar observado de algunos de los días de los meses de junio y julio del 2022, tomados por el el SII. A continuación:
1. Realice un histograma del valor de dólar.
2. Realice un histograma del valor de dólar diferenciado por mes. Utilice el comando `facet_grid(~Mes)`.
3. Reordene los gráficos por mes. Para ello convierta la variable Mes a factor, ordenando los meses como corresponde.
4. Realice un gráfico de Violín con caja y promedio del valor de dolar. Interprete lo observado.
5. Separe el gráfico anterior por mes. Comente lo observado.
6. Estudie las medidas de asociación entre los valores del dólar de los primeros 18 registros de cada mes. Interprete. ¿Por qué no es posible comparar todos los registros de cada uno de los meses?
7. Realice un gráfico de dispersión de los para estudiar las medidas de asociación entre las variables de la pregunta 6.
:::
## Regresión lineal simple
La regresión lineal simple (RLS) consiste en generar un **modelo de regresión** (ecuación de una recta) que permita explicar la relación lineal que existe entre dos variables. A la variable dependiente, predicha o respuesta se le identifica como $Y$ y a la variable predictora o independiente como $X$. [@Devore, página 450]
El modelo de regresión lineal simple se describe de acuerdo a la ecuación:
```{=tex}
\begin{equation}
Y_i = \beta_0 + \beta_1X_i + \epsilon_i \text{ , }i = 1,\ldots ,n \text{ , } \epsilon_i \overset{\text{iid}}{\sim} N(0,\sigma^2)
(\#eq:regresion)
\end{equation}
```
Una ejemplificación de esta ecuación es la siguiente (\@ref(fig:regresion1)).
```{r regresion1, echo=FALSE, message=FALSE, fig.width=6, fig.height=3, fig.align='center', fig.cap='Ecuación de regresión'}
df = data.frame("Variable.Explicativa" = 0:8,
"Variable.Respuesta" = c(12,10,8,11,6,7,2,3,3))
model = lm(Variable.Respuesta ~ ., data = df)
df$Predicha = model$fitted.values
ggplot(data = df, aes(x = Variable.Explicativa, y = Variable.Respuesta)) +
# geom_segment(aes(x = Variable.Explicativa, xend = Variable.Explicativa,
# y = Variable.Respuesta, yend = Predicha, color = "segment")) +
labs(x = "Variable explicativa (X)", y = "Variable repuesta (Y)",
title = "Ecuación de regresión") +
geom_point() +
geom_smooth(method = lm, se = FALSE, formula = 'y ~ x')
# theme_bw() +
# theme(legend.position = "none")
```
Siendo $\beta_0$ la ordenada en el origen, $\beta_1$ la pendiente y $\epsilon$ el **error aleatorio**. Este último representa la diferencia entre el valor ajustado por la recta y el valor real (línea de color rojo en el gráfico enla figura \@ref(fig:regresion2)), el cual, recoge el efecto de todas aquellas variables que influyen en $Y$ pero que no se incluyen en el modelo como predictores. En el gráfico \@ref(fig:regresion2) es posible apreciar los errores como el distanciamiento de los puntos respecto de la recta.
```{r regresion2, echo=FALSE, message=FALSE, fig.width=6, fig.height=3, fig.align='center', fig.cap='Errores de una ecuación de regresión'}
df = data.frame("Variable.Explicativa" = 0:8,
"Variable.Respuesta" = c(12,10,8,11,6,7,2,3,3))
model = lm(Variable.Respuesta ~ ., data = df)
df$Predicha = model$fitted.values
ggplot(data = df, aes(x = Variable.Explicativa, y = Variable.Respuesta)) +
geom_segment(aes(x = Variable.Explicativa, xend = Variable.Explicativa,
y = Variable.Respuesta, yend = Predicha), color = "red") +
geom_point() +
geom_smooth(method = lm, se = FALSE, formula = 'y ~ x') +
# theme(legend.position = "none") +
labs(x = "Variable explicativa (X)", y = "Variable repuesta (Y)",
title = "Ecuación de regresión")
```
La ecuación \@ref(eq:regresion) representa la **ecuación de regresión verdadera** (o poblacional). Sin embargo, no es posible conocer el valor de $\beta_0$ y $\beta_1$, ya que son parámetros poblacionales (de antemano, no se conocen todos los datos de la población), por lo cual, se se deben determinar estimadores que permitan aproximar los valores de estos parámetros a partir de una muestra ("base de datos"), para así de determinar una expresión estimada de esta ecuación de regresión verdadera.
### Estimadores de mínimos cuadrados {#EMCRLS}
Una forma intuitiva de abordar el problema de estimar $\beta_0$ y $\beta_1$ es minimizando los errores aleatorios. Para ello, se hace uso de la ecuación de regresión verdadera:
$$
Y_i = \beta_0 + \beta_1X_i + \epsilon_i
$$
Luego, es posible escribir el error aleatorio de la siguiente manera:
```{=tex}
\begin{equation}
\epsilon_i = Y_i - [\beta_0 + \beta_1X_i]
(\#eq:funcion-errores)
\end{equation}
```
Para considerar el error en cada uno de los puntos al rededor de la recta de regresión verdadera se considera la suma de los errores. Sin embargo, para tener mayor facilidad en el proceso de determinar los estimadores, se elevan los errores al cuadrado (**suma cuadrática de errores**).
```{=tex}
\begin{equation}
\sum_{i=1}^n\epsilon_i^2 = \sum_{i=1}^n (Y_i - [\beta_0 + \beta_1X_i])^2
(\#eq:sumacuadratica-RL)
\end{equation}
```
Llegado a este punto, es natural minimizar esta función, ya que los valores de $\beta_0$ y $\beta_1$ estimados buscan dar lugar a la recta que "pasa más cerca de todos lo puntos". Los estimadores de $\beta_0$ y $\beta_1$ se denotan por $\widehat{\beta}_0$ y $\widehat{\beta}_1$ respectivamente, y son denominados como **Estimadores de Mínimos Cuadrados** (EMC). La ecuación \@ref(eq:regresionajustada) representa la ecuación de regresión ajustada (estimada) mediante una muestra.
```{=tex}
\begin{equation}
\widehat{Y}_i = \widehat{\beta}_0 + \widehat{\beta}_1X_i
(\#eq:regresionajustada)
\end{equation}
```
Los estimadores de $\beta_0$ y $\beta_1$ son (detalles del desarrollo en el anexo \@ref(RLS-EMC)):
```{=tex}
\begin{equation}
\widehat{\beta}_1 = \frac{\displaystyle\sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})}{\displaystyle\sum_{i=1}^n(x_i-\bar{x})^2} = \frac{S_Y}{S_X}r_{XY}
(\#eq:beta1gorro)
\end{equation}
```
```{=tex}
\begin{equation}
\widehat{\beta}_0 = \bar{y} - \widehat{\beta}_1\bar{x}
(\#eq:beta0gorro)
\end{equation}
```
- Los valores de $S_y$ y $S_x$ son las desviaciones estándar de cada variable y $r_{XY}$ el coeficiente de correlación entre estas.
- $\widehat{\beta}_0$ es el valor esperado la variable $Y$ cuando $X = 0$, es decir, la intersección de la recta con el eje $y$. En ocasiones, no tiene interpretación práctica (situaciones en las que $X$ no puede adquirir el valor 0).
- $\widehat{\beta}_1$ corresponde al valor de la pendiente. La interpretación de este valor se detalla más adelante.
- $\widehat{Y}$ se entiende como el valor esperado, es decir, el valor promedio (muestral) de $Y$.
- La diferencia entre los valores reales $Y$ (en la base de datos) y los valores de la recta estimada ($\widehat{Y}$) se denominan residuos, que se denotan por la letra $e$. Estos se observan de la misma forma que los errores aleatorios (figura \@ref(fig:regresion2)).
:::: {.blackbox}
::: {#AFPUNO .example}
El archivo [*cuota+patrimonio.csv*](https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2022-2/Estad%C3%ADstica%202/cuota%2Bpatrimonio.csv) contiene los valores cuota (pesos) y valor del patrimonio (miles de millones de pesos) de los primeros dos meses del año 2022 de la AFP UNO. En R:
1. Realice un estudio inicial de los datos, elaborando un gráfico de violín + caja + promedio para cada una de las variables.
Inspeccionamos la base de datos.
```{r, echo=FALSE}
datos = read.csv("https://raw.githubusercontent.com/Dfranzani/Bases-de-datos-para-cursos/main/2022-2/Estad%C3%ADstica%202/cuota%2Bpatrimonio.csv")
```
```{r}
# Cargue previamente la base de datos, guardándola con el nombre "datos"
str(datos)
```
Luego, realizamos el gráfico de violín con caja y promedio.
```{r fig.align='center', fig.width=4, fig.height=2}
ggplot(data = datos, aes(y = 1, x = Valor.Cuota)) +
geom_violin(trim = F) +
geom_boxplot(width = 0.1) +
stat_summary(fun = mean, color = "red", geom = "point", orientation = "y") +
labs(y = "", x = "Pesos", title = "Valor Cuota")
```
Se observa, que la mayor concentración de datos se encuentra entre el primer y segundo cuartil. Además, el cierre superior del gráfico de violín presenta una mayor concentración de datos que el cierre inferior, lo cual, explica la posición del promedio por sobre la mediana.
```{r fig.align='center', fig.width=4, fig.height=2}
ggplot(data = datos, aes(y = 1, x = Valor.Patrimonio)) +
geom_violin(trim = F) +
geom_boxplot(width = 0.1) +
stat_summary(fun = mean, color = "red", geom = "point", orientation = "y") +
labs(y = "", x = "Miles de millones de pesos", title = "Valor Patrimonio")
```
Se observa, que la mayor concentración de datos se encuentra entre el primer y segundo cuartil. Una segunda concentración se encuentra por sobre el tercer cuartil , lo cual, explica la posición del promedio por sobre la mediana.
2. Estudie la correlación entre ambas variables.
```{r}
cor(datos$Valor.Cuota, datos$Valor.Patrimonio)
```
El valor de la correlación indica que la relación lineal entre las dos variables es positiva y fuerte. Esto quiere decir que, cuando en promedio el valor cuota aumenta, el promedio el valor del patrimonio también aumenta.
3. Considerando que desea explicar el valor del patrimonio a partir del valor cuota. Determine los valores de $\widehat{\beta}_0$ y $\widehat{\beta}_1$ utilizando el comando `lm()`.
```{r}
modelo = lm(Valor.Patrimonio ~ Valor.Cuota, data = datos)
modelo
```
4. Escriba la ecuación de la recta de regresión ajustada.
$$
\widehat{Y}_i = -135.3 + 0.004936X_i
$$
5. Realice un gráfico de la la recta de regresión y los residuos del modelo.
```{r message=FALSE, fig.width=6, fig.height=3, fig.align='center'}
# Guardamos los valores de la recta estimada en una nueva columna en la base de datos
datos$Ajustados = modelo$fitted.values
ggplot(data = datos, aes(x = Valor.Cuota, y = Valor.Patrimonio)) +
geom_segment(aes(x = Valor.Cuota, xend = Valor.Cuota,
y = Valor.Patrimonio, yend = Ajustados), color = "red") +
labs(x = "Valor Cuota", y = "Valor Patrimonio",
title = "Ecuación de regresión ajustada") +
geom_point() +
geom_smooth(method = lm, se = FALSE, formula = 'y ~ x')
```
:::
::::
Para interpretar cada uno de los beta estimados se debe hacer en función de la variable de estudio (variable dependiente). En este sentido,
- $\widehat{\beta}_1$: corresponde a la pendiente de la ecuación de la recta de regresión ajustada, e indica un avance lineal constante en crecimiento o en decrecimiento dependiendo de su valor. La interpretación de este parámetro, está sujeta a la unidad de medida de la variable predictora $X$, de tal manera, que una cambio en una unidad de medida de la variable $x$, afecta en **promedio** $\widehat{\beta}_1$ unidades en la variable $Y$.
En el ejemplo \@ref(exm:AFPUNO), el valor de $\widehat{\beta}_1$ es de `r modelo$coefficients[2]` , lo cual indica que por cada unidad de valor cuota (por cada peso), el valor del patrimonio aumenta en promedio `r modelo$coefficients[2]` miles de millones pesos.
- $\widehat{\beta}_0$: es el intercepto de la ecuación de la recta de regresión ajustada, y se debe verificar que el valor obtenido tenga sentido con el fenómeno. En el ejemplo \@ref(exm:AFPUNO), se obtiene un valor lejano a cero (`r modelo$coefficients[1]`), por lo que, cuando $\beta_1x$ vale cero (es decir, una cantidad de cuotas igual a 0), el valor del promedio del patrimonio es menor a cero. Esto tiene sentido, ya que las cuotas no constituyen la totalidad del valor del patrimonio de la AFP (en el ejemplo se trabaja con un fondo en específico de los cinco existentes, de un determinado producto de inversión).
::: {.exercise #ingreso}
Utilizando la base de datos [Ingreso](#Ingreso):
1. Realice un estudio inicial de los datos, elaborando un gráfico de violín + caja + promedio para cada una de las variables cuantitativas continuas, mientras que para las variables categóricas elabore tablas de frecuencias relativas.
2. Considerando que desea explicar la proporción de logro en el diagnóstico de comunicación escrita a partir del puntaje en la PTU de Lenguaje (considere esto para las siguientes preguntas), estudie la correlación entre ambas variables.
3. Determine los valores de $\widehat{\beta}_0$ y $\widehat{\beta}_1$ utilizando el comando `lm()`. Interprete los valores.
4. Escriba la ecuación de la recta de regresión ajustada.
5. Realice un gráfico de la la recta de regresión ajustada y los residuos del modelo.
:::
### Sumas cuadráticas {#sumascuadraticas}
En un modelo sin variables independientes los valores ajustados o predichos son iguales al promedio de las observaciones, $\bar{Y}$ (tal como se mostró en la interpretación asociada a las estimaciones de los parámetros). Los residuos de dicho modelo corresponden a $Y_i - \bar{Y}$. La **suma de cuadrados total** (SCT) se define como:
```{=tex}
\begin{equation}
\text{SCT} = \sum_{i=1}^n\left( Y_i - \bar{Y} \right)^2
(\#eq:SCT)
\end{equation}
```
¿Cómo se relacionan la SCT y la suma cuadrática de errores (SCE)? Consideremos la siguiente igualdad.
```{=tex}
\begin{equation}
Y_i - \bar{Y} = \left( \widehat{Y}_i - \bar{Y} \right) + \left( Y_i - \widehat{Y}_i \right)
(\#eq:SCT-SCE-SCReg)
\end{equation}
```
A partir de esta igualdad se demuestra que:
```{=tex}
\begin{equation}
\underbrace{\sum_{i=1}^n\left( Y_i - \bar{Y} \right)^2}_{\text{SCT}} = \underbrace{\sum_{i=1}^n\left( \widehat{Y}_i - \bar{Y} \right)^2}_{\text{SCReg}} + \underbrace{\sum_{i=1}^n\left( Y_i - \widehat{Y}_i \right)^2}_{\text{SCE}},
(\#eq:descomposicion-sct)
\end{equation}
```
donde,
- **Suma de cuadrados total** (SCT): corresponde a la variabilidad de los datos.
- **Suma de cuadrados de la regresión** (SCReg): corresponde a la variabilidad de los datos que es explicada por el modelo de regresión.
- **Suma de cuadrados del error** (SCE): corresponde a la variabilidad de los datos que no es explicada por el modelo.
En la experimentación, se quiere que SCE sea pequeña y que SCReg sea grande.
Las expresiones involucradas en la ecuación \@ref(eq:descomposicion-sct) dan lugar a reescribir distintas expresiones, entre las cuales se encuentra, el coeficiente de determinación ($R^2$) y el error estándar residual explicados en la sección \@ref(metricasRLS), y el estadístico asociado a las pruebas de hipótesis de los parámetros explicado en la sección \@ref(pruebasHipotesisRLS).
### Pruebas de hipótesis {#pruebasHipotesisRLS}
Los modelos de regresión lineal simple incluyen pruebas de hipótesis asociadas a los betas, además de otro tipo de información. En R es posible utilizar el comando `summary()` para acceder al resumen de información. A continuación, a modo de ejemplo se utiliza el modelo elaborado en el ejemplo \@ref(exm:AFPUNO).
```{r}
summary(modelo)
```
El detalle por columna es el siguiente.
- En primer lugar, ya conocemos los coeficientes del modelo (betas estimados) y cómo se interpretan. Estos valores los podemos encontrar en la columna llamada **Estimate**.
- La segunda columna (**Std. Error**) corresponde a la desviación estándar de la estimación de cada uno de los betas. Como cada uno de los errores ($\epsilon_i$) tiene distribución normal, esto implica que cada uno de los $\beta$ tenga distribución t -- Student (no analizaremos esto en profundidad).
- La tercera y cuarta columna están diseñadas para probar una determinada prueba de hipótesis relacionada a los $\beta$, llamada **prueba de no nulidad**. En este caso, cada fila aborda la siguiente hipótesis:
```{=tex}
\begin{equation}
\notag
\begin{split}
H_0:&\beta_i = 0\\
H_1:&\beta_i \neq 0\\
\end{split}
\end{equation}
```
El estadístico para cada uno de los beta se obtiene dividiendo el valor estimado (**Estimate**) por la desviación estándar (**Std. Error**). El resultado de estos valores, se puede apreciar en la columna **t value**.
- Finalmente, se calcula el valor - p asociado a cada una de las hipótesis del punto anterior, con la fórmula $2\cdot(1-pt(|t_0|, n-2))$. El valor resultante de esta expresión para cada uno de los betas se encuentra en la columna **Pr(\>\|t\|)**. La interpretación de este valor es mediante el criterio del valor - p presentado en la unidad anterior.
En el ejemplo \@ref(exm:AFPUNO), al no rechazarse la hipótesis nula asociada a cada beta estimado, se tiene que cada variable (intercepto y valor cuota) son relevantes para explicar la variable respuesta (valor del patrimonio). Sin embargo, esto no es un regla decidora respecto a si una variable debe o no considerarse en el modelo, es decir,
- No rechazar las hipótesis nula de los beta estimados, indica que su "valor" es **cero**, por lo que no "aportarían" al modelo de regresión construido. En este punto, muchas personas eliminarían la variable utilizada para construir el modelo (el valor cuota) (esto es una de tantas técnicas aplicables, pero que no profundizaremos) o, cambiarían la variable explicativa utilizada (no considerarían el valor cuota, sino que utilizarían otra variable).
- A pesar de que los valores-p puedan no ser significativos (mayores a 0.05), es decir, no rechazar las hipótesis nulas; es posible forzar la permanencia de la variable en el modelo debido al criterio experto del profesional.
Por último, al final de la salida del resumen, encontramos el valor llamado **F-statistic**. Este valor, es un estadístico que prueba de hipótesis llamada **prueba de no nulidad conjunta**,
```{=tex}
\begin{equation}
\notag
\begin{split}
H_0:&\text{ Todos los betas asociados a las covariables valen 0}\\
H_1:&\text{ Almenos uno de los betas asociados a las covariables es distinto de 0}\\
\end{split}
\end{equation}
```
Se rechaza $H_0$ cuando:
```{=tex}
\begin{equation}
F_0 = \frac{\text{SCReg}}{\text{MCE}} \geq F_{1-\alpha, 1, n-2}.
(\#eq:estadistico-F-RLS)
\end{equation}
```
con una significancia $\alpha$. El valor de MCE se especifica en la sección \@ref(metricasRLS).
**Nota**: esta prueba de hipótesis no considera $\beta_0$.
En el ejemplo \@ref(exm:AFPUNO), se observa un valor del estadístico igual a 322.6 con 1 y 57 grados de libertad, además de un valor menor a 0.05. Por lo tanto, existe suficiente evidencia estadística para rechazar $H_0$, es decir, almenos uno de los betas asociados a las covariables es distinto de 0.
::: {.exercise}
Utilizando la base de datos [Pacientes](#Pacientes):
1. Ajuste un modelo para estudiar el nivel de colesterol de los pacientes a partir de su edad. Luego, estudie las pruebas de hipótesis asociadas utilizando una confianza del 95%.
2. Ajuste un modelo para estudiar el tiempo de duración del último ataque al corazón de los pacientes a partir de su edad. Luego, estudie las pruebas de hipótesis asociadas utilizando una confianza del 95%.
:::
### Métricas {#metricasRLS}
La salida de R nos proporciona dos valores que permiten evaluar al modelo de regresión lineal simple:
- **Residual standard error** (error estándar residual): corresponde a la desviación estándar de los residuos, es decir, que mientras menor sea este valor, los puntos se alejarán menos de la recta de regresión. Este valor es una estimación de $\sigma$, que en términos de las expresiones de la ecuación \@ref(eq:descomposicion-sct) se tiene que:
```{=tex}
\begin{equation}
\widehat{\sigma}^2 = \frac{\text{SCE}}{n-2} = \text{MCE},
(\#eq:sigma2-estimador)
\end{equation}
```
donde, MCE se denomina **media cuadrática del error**. El denominador de esta expresión corresponde al total de observaciones ($n$) menos la cantidad de parámetros del modelo ($\beta_1$ y $\beta_2$). Finalmente, el valor del error estándar residual ($\widehat{\sigma}$) es igual a $\sqrt{\text{MCE}}$.
- **Multiple R-squared** o $R^2$: es un métrica de error de la regresión que mide el rendimiento del modelo, corresponde a la proporción de variabilidad explicada por la regresión sobre la variabilidad total de las observaciones. En términos de las expresiones de la ecuación \@ref(eq:descomposicion-sct) se tiene que:
```{=tex}
\begin{equation}
R^2 = \frac{\text{SCReg}}{\text{SCT}}
(\#eq:R2-RLS)
\end{equation}
```
En el ejemplo \@ref(exm:AFPUNO) se obtiene un error estándar residual de 4.2. Sin embargo, **NO EXISTE** un regla que determine cuando un error estándar residual es bueno o malo. En general, este valor se utiliza para comparar don o más modelos que estudian la misma variable respuesta pero con distintas variables predictoras (variables independientes), para saber cual realiza un mejor ajuste.
Por otro lado, se tiene un valor de $R^2$ igual a 0.84, el cual es muy alto, por lo que se logra explicar gran parte de la variable respuesta. Al igual que el error estándar residual, no existe una regla para determinar cuando un valor de $R^2$ es bueno o malo, aunque valores cercanos a cero indican que el poder explicativo del modelo es extremadamente pobre; y a su vez, valores muy cercanos a 1 son muy buenos, aunque extremadamente sospechosos.
Lo anteriormente explicado se puede observar mediante los siguientes comandos, aunque es posible observarlos en salida general del comando `summary()`.
```{r}
# Resumen del modelo
summ = summary(modelo)
print(c("Error estándar residual" = summ$sigma, "R cuadrado" = summ$r.squared))
```
::: {.exercise}
Utilizando la base de datos [Ingreso](#Ingreso):
1. Ajuste un modelo para estudiar la proporción de logro a partir el puntaje NEM.
2. Ajuste un modelo para estudiar la proporción de logro a partir el puntaje PTU de la prueba de Lenguaje.
3. Obtenga de manera manual el estadístico F asociado a la prueba de hipótesis de nulidad conjunta de cada modelo. Interprete, utilizando una confianza del 95%.
4. Compare los ajustes de ambos modelos utilizando el error estándar residual y el $R^2$, obteniendo las métricas de manera manual. Interprete.
:::
### Supuestos
Cuándo se elabora un modelo de regresión lineal, es necesario verificar el cumplimiento de condiciones para la correcta interpretación y utilización del modelo desarrollado. Las condiciones que se deben cumplir se denominan supuestos. A continuación, se detallan los 4 supuestos que se deben estudiar, utilizando como ejemplo el modelo elaborado en el ejemplo \@ref(exm:AFPUNO).
#### Linealidad
La relación entre ambas variables (dependiente e independiente) debe ser lineal. Para observar el comportamiento es posible realizar un gráfico de puntos entre la variable predictora ($X$) y la variable de estudio ($Y$).
```{r fig.width=6, fig.height=3, fig.align='center'}
ggplot(data = datos) +
geom_point(aes(x = Valor.Cuota, y = Valor.Patrimonio)) +
labs(x = "Valor Cuota (pesos)", y = "Valor Patrimonio \n (miles de millones de pesos)")
```
La interpretación del comportamiento queda a discreción del profesional. En este caso, se aprecia una clara tendencia lineal, por lo que se asume que se cumple el supuesto de linealidad.
#### Normalidad
Los residuos \texttt{estandarizados} deben distribuir Normal con media 0 ($\mu$) y varianza 1 ($\sigma^2$). Para ello, se pueden ejecutar varios comandos en R para probar esta hipótesis. El más conocido es el comando `shapiro.test()`. La hipótesis es
```{=tex}
\begin{equation}
\notag
\begin{split}
H_0&: \text{Los residuos estandarizados tienen distribución Normal}\\
H_1&: \text{Los residuos estandarizados NO tienen distribución Normal}\\
\end{split}
\end{equation}
```
Se definen los residuos estandarizados, $r_i$, como los residuos, $e_i$, divididos por su error estándar:
```{=tex}
\begin{equation}
r_i = \frac{e_i}{\widehat{\text{es}}(e_i)}, i = 1,\ldots,n
(\#eq:residuos-estandarizados)