-
Notifications
You must be signed in to change notification settings - Fork 0
/
07-Validacion.Rmd
230 lines (188 loc) · 9.78 KB
/
07-Validacion.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
# Validación de datos {.unlisted .unnumbered}
**Se crea en una lista que contiene el resumen del método DP2 para todos los años**
```{r}
for(i in tablas){
List_DP2 <- mget(paste0("ind_", tablas))
}
```
## Orden de entrada de las variables {-}
**Se crea un data.frame de acuerdo al orden de importancia de las variables para todos los años**
Dependiendo del proceso, el `DP2` adoptará diferentes valores. Por lo tanto, es importante que el método de como resultado un orden de entrada único de los indicadores parciales.
```{r}
Variables_sort <- NULL
for(i in 1:3){
Variables_sort[i] <- as.data.frame(lapply(List_DP2, function(x) get(paste0("ind_", tablas[i]))$variables_sort))
}
Variables_sort <- do.call(cbind.data.frame, Variables_sort)
colnames(Variables_sort) <- c("2010", "2015", "2020")
```
```{r, echo = FALSE}
Variables_sort %>%
gt() %>%
tab_header(title = "Variables sort") %>%
tab_options(heading.title.font.size = 14,
heading.align = "center",
heading.subtitle.font.size = 12,
table.align = "center",
table.font.names = 'Century Gothic',
table.font.size = 10,
data_row.padding = px(1)) %>%
tab_style(style = list(cell_text(align = "center",
weight = 'bold')),
locations = list(cells_title(groups = c("title")))) %>%
cols_label(`2010` = md("**2010**"),
`2015` = md("**2015**"),
`2020` = md("**2020**")) %>%
cols_width(everything() ~ px(80)) %>%
as_raw_html()
```
## Coeficiente de correlación {-}
El coeficiente de correlación es una medida que se utiliza para jerarquizar a los indicadores simples de acuerdo con el grado de correlación absoluta con respecto al indicador sintético resultante, es decir, ayuda a visualizar que variable tiene un mejor o peor apego con el fenómeno.
**Se crea un data.frame de acuerdo a la correlación de cada variable con el indicador sintético (DP2) para todos los años**
```{r}
cor.coeff <- NULL
cor.coeff <- lapply(1:3, function(i) data.frame(rownames(get(paste0("ind_", tablas[i]))[["cor.coeff"]]),
get(paste0("ind_", tablas[i]))$cor.coeff))
cor.coeff <- do.call(cbind.data.frame, cor.coeff)
colnames(cor.coeff) <- c("Ind_2010", "2010", "Ind_2015", "2015", "Ind_2020", "2020")
```
```{r, echo = FALSE}
cor.coeff %>%
gt() %>%
tab_header(title = "Correlation Coefficient") %>%
tab_options(heading.title.font.size = 14,
heading.align = "center",
heading.subtitle.font.size = 12,
table.align = "center",
table.font.names = 'Century Gothic',
table.font.size = 10,
data_row.padding = px(1)) %>%
tab_style(style = list(cell_text(align = "center",
weight = 'bold')),
locations = list(cells_title(groups = c("title")))) %>%
cols_label(`Ind_2010` = md("**Ind**"),
`2010` = md("**2010**"),
`Ind_2015` = md("**Ind**"),
`2015` = md("**2015**"),
`Ind_2020` = md("**Ind**"),
`2020` = md("**2020**")) %>%
fmt_number(columns = c(2 ,4, 6), decimals = 3) %>%
cols_width(everything() ~ px(80)) %>%
as_raw_html()
```
## Factor de corrector {-}
El factor corrector, como se mencionó anteriormente, indica la proporción de información con la que contribuye el indicador simple al nuevo índice sintético, además, evita la duplicidad e incorpora información útil que retiene cada indicador simple.
**Se crea un data.frame de acuerdo al factor corrector de cada indicador parcial para todos los años**
```{r}
correction_factors <- NULL
for(i in 1:3){
correction_factors[i] <- as.data.frame(lapply(List_DP2, function(x) get(paste0("ind_", tablas[i]))$correction_factors))
}
###Nombres de la columna
correction_factors <- do.call(cbind.data.frame, c(Variables_sort, correction_factors)) %>%
subset(., select = c(1, 4, 2, 5, 3, 6))
colnames(correction_factors) <- c("Ind_2010", "2010", "Ind_2015", "2015", "Ind_2020", "2020")
```
```{r, echo = FALSE}
correction_factors %>%
gt() %>%
tab_header(title = "Correction Factors") %>%
tab_options(heading.title.font.size = 14,
heading.align = "center",
heading.subtitle.font.size = 12,
table.align = "center",
table.font.names = 'Century Gothic',
table.font.size = 10,
data_row.padding = px(1)) %>%
tab_style(style = list(cell_text(align = "center",
weight = 'bold')),
locations = list(cells_title(groups = c("title")))) %>%
cols_label(`Ind_2010` = md("**Ind**"),
`2010` = md("**2010**"),
`Ind_2015` = md("**Ind**"),
`2015` = md("**2015**"),
`Ind_2020` = md("**Ind**"),
`2020` = md("**2020**")) %>%
fmt_number(columns = c(2 ,4, 6), decimals = 4) %>%
cols_width(everything() ~ px(80)) %>%
as_raw_html()
```
## Coeficiente de Discriminación {-}
El coeficiente de discriminación de Ivanovic mide el poder discriminante de la variable $j$ en el conjunto de observaciones $i$.
$$CD_{j}=\frac{2}{m\left(m-1\right)}\sum_{i,l>i}^{k_{j}}m_{ij}m_{lj}\left|\frac{x_{ij}-x_{lj}}{{\overline{X}}_{i}}\right|$$
donde:
$\circ\:m_{ij}$: El número de observaciones de la variable $x_{j}$
$\circ\:k_{j}$: El número de diferentes valores que toma $x_{i}$ en el conjunto $j$.
Esta medida está comprendida entre $[0, 2]$. Si una variable toma el mismo valor para todos los estados, el `CD` vale cero, indicando que posee un valor nulo de poder discriminante. Por el contrario, si una variable toma el valor teórico de máximo poder discriminante, el discriminante de la variable es total.
**Se crea un data.frame de acuerdo al Coeficiente de discriminación (CD) de cada indicador parcial para todos los años**
```{r}
discrimination_coefficient <- NULL
discrimination_coefficient <- lapply(1:3, function(i) data.frame(names(get(paste0("ind_", tablas[i]))[["discrimination.coefficient"]]),
get(paste0("ind_", tablas[i]))$discrimination.coefficient))
discrimination_coefficient <- do.call(cbind.data.frame, discrimination_coefficient)
colnames(discrimination_coefficient) <- c("Ind_2010", "2010", "Ind_2015", "2015", "Ind_2020", "2020")
```
```{r, echo = FALSE}
discrimination_coefficient %>%
gt() %>%
tab_header(title = "Discrimination Coefficient") %>%
tab_options(heading.title.font.size = 14,
heading.align = "center",
heading.subtitle.font.size = 12,
table.align = "center",
table.font.names = 'Century Gothic',
table.font.size = 10,
data_row.padding = px(1)) %>%
tab_style(style = list(cell_text(align = "center",
weight = 'bold')),
locations = list(cells_title(groups = c("title")))) %>%
cols_label(`Ind_2010` = md("**Ind**"),
`2010` = md("**2010**"),
`Ind_2015` = md("**Ind**"),
`2015` = md("**2015**"),
`Ind_2020` = md("**Ind**"),
`2020` = md("**2020**")) %>%
fmt_number(columns = c(2 ,4, 6), decimals = 3) %>%
cols_width(everything() ~ px(80)) %>%
as_raw_html()
```
## “Cantidad de Información Global de Ivanovic Pena Relativa Individual” {-}
$$\alpha_{i}=\frac{CD_{i}\left(1-R^{2}_{i,i-1,...,1} \right)}{\sum_{i=1}^{n}CD_{i} \left(1-R^{2}_{i,i-1,...,1} \right)}$$
Esta medida, comprendida entre 0 y 1, combina la información útil y el poder discriminante de cada indicador simple y mide la cantidad de información (combinada) relativa que aporta individualmente cada indicador simple, cuando entra de forma ordenada a formar parte del indicador sintético DP2. La suma de todos los valores de $\alpha_{i}$ es la unidad. [Zarsosa 1996, págs 158-174]
```{r}
## son 9 indicadores simples
alpha <- NULL
for(i in 1:3){
alpha[[i]] <- sapply(1:length(Indicadores), function(x)(get(paste0("ind_", tablas[i]))[["correction_factors"]][x] * get(paste0("ind_", tablas[i]))[["discrimination.coefficient"]][x]) / sum(get(paste0("ind_", tablas[i]))[["correction_factors"]] * get(paste0("ind_", tablas[i]))[["discrimination.coefficient"]]))
}
```
```{r, echo = FALSE}
tabla <- NULL
for(i in 1:3){
tabla[[i]] <- data.frame(Variables = names(alpha[[i]]), alpha[[i]])
}
alpha<- do.call(cbind.data.frame, tabla)
colnames(alpha) <- c("Ind_2010", "2010", "Ind_2015", "2015", "Ind_2020", "2020")
alpha %>%
gt() %>%
tab_header(title = md("Cantidad de Información Global de Ivanovic Pena Relativa Individual")) %>%
tab_options(heading.title.font.size = 14,
heading.align = "center",
heading.subtitle.font.size = 12,
table.align = "center",
table.font.names = 'Century Gothic',
table.font.size = 10,
data_row.padding = px(1)) %>%
tab_style(style = list(cell_text(align = "center",
weight = 'bold')),
locations = list(cells_title(groups = c("title")))) %>%
cols_label(`Ind_2010` = md("**Ind**"),
`2010` = md("**2010**"),
`Ind_2015` = md("**Ind**"),
`2015` = md("**2015**"),
`Ind_2020` = md("**Ind**"),
`2020` = md("**2020**")) %>%
fmt_number(columns = c(2 ,4, 6), decimals = 3) %>%
cols_width(everything() ~ px(80)) %>%
as_raw_html()
```