TÍTULO DEL TRABAJO: Estados Unidos como hegemón global (2001–2008): Una aproximación estructural al patrón de imposición de sanciones según el tamaño de los Estados
Problemática observada: Los países con menor PBI per cápita, mayores niveles de corrupción y menor tamaño estructural tienen mayor probabilidad de ser sancionados por EE.UU.
Pregunta de investigación: ¿Cómo inciden las características estructurales de los Estados (PBI, PBI per cápita, IED, apertura comercial, corrupción, tamaño del país y región) en la probabilidad y el tipo de sanciones impuestas por Estados Unidos entre 2001 y 2008?
Hipótesis 1 (H1): “Los países con menor PBI per cápita, mayores niveles de corrupción y menor tamaño estructural tienen mayor probabilidad de ser sancionados por EE.UU.”
Hipótesis 2 (H2): “El tamaño estructural de un país influye en el tipo de sanción que Estados Unidos impone: los países con menor tamaño estructural son más propensos a recibir sanciones económicas, mientras que los de mayor tamaño reciben sanciones militares o múltiples.”
Hipótesis 2 (H2): “El tamaño estructural de un país también se asocia con la duración total de las sanciones impuestas: los países más pequeños enfrentan sanciones más prolongadas.”
| Sanción | Grande | Mediano | Pequeño | |
|---|---|---|---|---|
| No sancionado | No sancionado | 57 | 64 | 62 |
| Sancionado | Sancionado | 19 | 11 | 14 |
| Estimación | Valor | |
|---|---|---|
| X-squared | Estadístico Chi-cuadrado | 2.6470 |
| df | Grados de libertad | 2.0000 |
| Valor p | 0.2662 |
| Sanción | East Asia & Pacific | Europe & Central Asia | Latin America & Caribbean | Middle East & North Africa | NA | North America | South Asia | Sub-Saharan Africa | |
|---|---|---|---|---|---|---|---|---|---|
| No sancionado | No sancionado | 34 | 54 | 34 | 17 | 1 | 2 | 4 | 37 |
| Sancionado | Sancionado | 5 | 7 | 8 | 6 | 0 | 1 | 4 | 13 |
| Estimación | Valor | |
|---|---|---|
| X-squared | Estadístico Chi-cuadrado | 10.9950 |
| df | Grados de libertad | 7.0000 |
| Valor p | 0.1389 |
| Sanción | Media | Desviación | n |
|---|---|---|---|
| No sancionado | 13684.51 | 20367.139 | 183 |
| Sancionado | 4650.75 | 8977.337 | 44 |
| Estimación | Valor | |
|---|---|---|
| t | Estadístico t | 4.462 |
| df | Grados de libertad | 158.080 |
| Valor p | 0.000 |
| Tamaño del País | Media | Desviación | n |
|---|---|---|---|
| Grande | 17477.355 | 18017.206 | 76 |
| Mediano | 5926.653 | 9801.894 | 75 |
| Pequeño | 12317.368 | 24589.484 | 76 |
| Estimación | Valor |
|---|---|
| Estadístico F | 7.3690 |
| Grados de libertad | 2.0000 |
| Valor p | 0.0008 |
| Coeficiente | Error_Estandar | Valor_z | p_value | |
|---|---|---|---|---|
| (Intercept) | -1.4225 | 0.5377 | -2.6456 | 0.008155 |
| tamano_paisMediano | -1.0168 | 0.4644 | -2.1894 | 0.028568 |
| tamano_paisPequeño | -0.7165 | 0.4595 | -1.5595 | 0.118889 |
| regionEurope & Central Asia | -0.2344 | 0.6403 | -0.3661 | 0.714309 |
| regionLatin America & Caribbean | 0.5682 | 0.6305 | 0.9012 | 0.367457 |
| regionMiddle East & North Africa | 0.6772 | 0.7076 | 0.9571 | 0.338499 |
| regionNA | -13.1436 | 882.7435 | -0.0149 | 0.988120 |
| regionNorth America | 1.2788 | 1.3425 | 0.9525 | 0.340833 |
| regionSouth Asia | 2.0383 | 0.8704 | 2.3417 | 0.019198 |
| regionSub-Saharan Africa | 1.1402 | 0.5993 | 1.9026 | 0.057098 |
| Coeficiente | Error_Estandar | Valor_z | p_value | AIC | |
|---|---|---|---|---|---|
| (Intercept) | -1.9065 | 0.7816 | -2.4393 | 0.01472 | 214.36 |
| PBI_prom_imputado | 0.0000 | 0.0000 | 1.0110 | 0.31203 | 214.36 |
| IED_prom_imputado | 0.0000 | 0.0000 | 0.0549 | 0.95619 | 214.36 |
| Prom_corrupcion_imputado | 1.9671 | 0.8808 | 2.2332 | 0.02553 | 214.36 |
| prom_apertura_comercial_imputado | 0.0000 | 0.0000 | -0.9170 | 0.35916 | 214.36 |
| PBIpc_prom_imputado | 0.0000 | 0.0000 | -1.7099 | 0.08728 | 214.36 |
Kaiser-Meyer-Olkin factor adequacy
Call: psych::KMO(r = cor_matrix)
Overall MSA = 0.51
MSA for each item =
PBI_prom_p IED_prom_p Corrupcion_p Apertura_p PBIpc_p
0.52 0.18 0.79 0.50 0.52
[1] FALSE
Prueba de matriz singular:
[1] 5
attr(,"method")
[1] "tolNorm2"
attr(,"useGrad")
[1] FALSE
attr(,"tol")
[1] 1.110223e-15
La matriz es singular
| PBI_prom_p | IED_prom_p | Corrupcion_p | Apertura_p | PBIpc_p | |
|---|---|---|---|---|---|
| PBI_prom_p | 1.000 | -0.234 | -0.848 | -0.481 | 0.872 |
| IED_prom_p | -0.234 | 1.000 | -0.149 | 0.437 | 0.228 |
| Corrupcion_p | -0.848 | -0.149 | 1.000 | 0.108 | -0.948 |
| Apertura_p | -0.481 | 0.437 | 0.108 | 1.000 | -0.196 |
| PBIpc_p | 0.872 | 0.228 | -0.948 | -0.196 | 1.000 |
Medoids:
ID
[1,] "226" "226"
[2,] "181" "181"
Clustering vector:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 1 1 1 2 1
21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
2 2 1 1 2 2 1 1 2 1 1 1 1 1 1 1 2 2 2 1
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
1 2 2 1 1 1 1 1 2 1 2 1 1 2 2 2 1 1 1 1
61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80
1 1 1 1 2 1 1 1 1 2 2 2 1 1 1 1 2 1 1 2
81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100
1 1 1 1 1 1 1 1 1 2 2 2 1 1 1 1 2 1 2 2
101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120
2 2 1 1 1 1 1 2 1 1 2 1 1 1 1 2 2 2 1 1
121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140
1 1 1 1 2 1 1 1 1 1 1 2 1 1 1 1 1 2 1 1
141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
2 1 1 2 1 1 1 1 1 1 2 2 1 1 1 1 1 1 1 1
161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180
1 1 2 2 1 2 1 1 1 1 1 2 2 1 1 1 2 1 2 2
181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200
2 1 1 1 1 2 1 2 1 1 1 1 1 2 2 2 1 2 1 1
201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220
1 1 1 1 2 1 1 1 1 1 1 1 1 1 2 2 2 2 1 1
221 222 223 224 225 226 227
1 1 1 1 2 1 1
Objective function:
build swap
1.302441 1.266726
Numerical information per cluster:
size max_diss av_diss diameter separation
[1,] 162 8.483221 0.925392 9.484048 0.292431
[2,] 65 14.620019 2.117434 19.497134 0.292431
Isolated clusters:
L-clusters: character(0)
L*-clusters: character(0)
Silhouette plot information:
cluster neighbor sil_width
3 1 2 0.715568316
184 1 2 0.714740224
123 1 2 0.713978415
62 1 2 0.713841797
145 1 2 0.713585064
148 1 2 0.713104430
110 1 2 0.712063305
226 1 2 0.711704822
168 1 2 0.710370353
28 1 2 0.707455109
131 1 2 0.707267865
162 1 2 0.706903974
59 1 2 0.706242542
227 1 2 0.705411579
84 1 2 0.705337793
27 1 2 0.704470049
135 1 2 0.704071273
159 1 2 0.703335814
201 1 2 0.702831044
60 1 2 0.702070529
4 1 2 0.702021432
112 1 2 0.700076423
50 1 2 0.699734892
203 1 2 0.695791121
127 1 2 0.693963798
105 1 2 0.693679270
219 1 2 0.693455986
120 1 2 0.692081427
121 1 2 0.691897131
11 1 2 0.690183824
24 1 2 0.689055122
94 1 2 0.687917263
61 1 2 0.686406953
213 1 2 0.685741040
124 1 2 0.684740186
137 1 2 0.684063997
187 1 2 0.683192832
176 1 2 0.681712453
78 1 2 0.681010877
224 1 2 0.680344723
197 1 2 0.678095218
74 1 2 0.677085128
114 1 2 0.675762740
206 1 2 0.675645596
104 1 2 0.675566821
48 1 2 0.675061035
208 1 2 0.673591441
140 1 2 0.673399523
115 1 2 0.673067004
1 1 2 0.669425888
64 1 2 0.663808062
67 1 2 0.661867118
147 1 2 0.661784088
2 1 2 0.660862531
8 1 2 0.660862531
20 1 2 0.660862531
79 1 2 0.660862531
142 1 2 0.660862531
171 1 2 0.659891662
204 1 2 0.659878766
223 1 2 0.659764448
183 1 2 0.659646114
202 1 2 0.659260451
210 1 2 0.659218028
68 1 2 0.658392228
160 1 2 0.658336898
192 1 2 0.656149438
153 1 2 0.655583268
7 1 2 0.655279510
86 1 2 0.653841219
182 1 2 0.652308758
96 1 2 0.652149572
149 1 2 0.650089036
191 1 2 0.648514744
85 1 2 0.648449364
95 1 2 0.648389458
41 1 2 0.646654046
109 1 2 0.646122228
221 1 2 0.644507450
36 1 2 0.643341649
40 1 2 0.641658649
46 1 2 0.639398152
58 1 2 0.637628125
18 1 2 0.637229935
88 1 2 0.636168986
5 1 2 0.633793941
130 1 2 0.632515205
193 1 2 0.630292227
34 1 2 0.630227556
23 1 2 0.629053705
75 1 2 0.625793816
178 1 2 0.620635128
82 1 2 0.615716298
136 1 2 0.614639121
169 1 2 0.610510812
190 1 2 0.607378513
106 1 2 0.605343628
212 1 2 0.602968797
133 1 2 0.601106764
154 1 2 0.600494128
89 1 2 0.599514914
146 1 2 0.597982897
35 1 2 0.594968987
189 1 2 0.591795349
158 1 2 0.587045367
52 1 2 0.586576972
63 1 2 0.585219116
15 1 2 0.579382380
126 1 2 0.578440077
161 1 2 0.574531524
170 1 2 0.571689232
199 1 2 0.571460819
47 1 2 0.569621099
9 1 2 0.566593867
10 1 2 0.561831675
66 1 2 0.558370641
207 1 2 0.555715412
33 1 2 0.555100124
107 1 2 0.554898070
156 1 2 0.540346633
134 1 2 0.539563678
220 1 2 0.522948824
222 1 2 0.520538088
129 1 2 0.519811814
200 1 2 0.519592319
167 1 2 0.517757701
93 1 2 0.511125653
157 1 2 0.507206496
73 1 2 0.503105921
185 1 2 0.484384043
76 1 2 0.483794507
209 1 2 0.479359307
128 1 2 0.471974774
83 1 2 0.468118369
174 1 2 0.465020695
143 1 2 0.458488624
165 1 2 0.455875332
30 1 2 0.441634903
45 1 2 0.439856565
155 1 2 0.433521107
175 1 2 0.432987529
103 1 2 0.432356413
113 1 2 0.427138198
16 1 2 0.426184942
17 1 2 0.421592554
31 1 2 0.419496969
139 1 2 0.418536979
53 1 2 0.405213401
150 1 2 0.395291004
214 1 2 0.393120080
32 1 2 0.389678357
12 1 2 0.376381995
81 1 2 0.368931631
119 1 2 0.347155421
122 1 2 0.322333674
87 1 2 0.322257650
69 1 2 0.309039212
6 1 2 0.296217032
44 1 2 0.278742024
98 1 2 0.275090119
57 1 2 0.261651036
211 1 2 0.035497817
195 2 1 0.238173400
196 2 1 0.224407850
71 2 1 0.223286444
22 2 1 0.217437659
92 2 1 0.215691937
141 2 1 0.215500612
151 2 1 0.206692996
14 2 1 0.202844661
97 2 1 0.180848886
144 2 1 0.176083620
13 2 1 0.170529692
188 2 1 0.160361408
216 2 1 0.150163352
72 2 1 0.140929309
77 2 1 0.134645094
99 2 1 0.115207009
118 2 1 0.111815736
164 2 1 0.109914474
38 2 1 0.107067490
19 2 1 0.093079364
54 2 1 0.077891177
181 2 1 0.069654442
43 2 1 0.062452460
102 2 1 0.057229004
132 2 1 0.056571693
163 2 1 0.055859624
56 2 1 0.055257077
90 2 1 0.042539133
179 2 1 0.038735601
186 2 1 0.038359923
218 2 1 0.032755084
217 2 1 0.027616152
37 2 1 0.020992016
39 2 1 0.019278523
116 2 1 0.016282779
205 2 1 0.014893521
100 2 1 0.007657912
65 2 1 0.005745323
25 2 1 0.002053837
125 2 1 -0.003290272
166 2 1 -0.038268979
215 2 1 -0.046933773
29 2 1 -0.047322671
117 2 1 -0.056871515
111 2 1 -0.071244606
101 2 1 -0.081463345
26 2 1 -0.081630980
49 2 1 -0.091454277
80 2 1 -0.101085407
172 2 1 -0.116874904
138 2 1 -0.120728965
42 2 1 -0.130962500
194 2 1 -0.150239278
55 2 1 -0.159103860
152 2 1 -0.162688497
91 2 1 -0.165835902
177 2 1 -0.205525286
70 2 1 -0.248004760
180 2 1 -0.279861203
225 2 1 -0.294744616
108 2 1 -0.312626170
21 2 1 -0.333497069
173 2 1 -0.342113322
198 2 1 -0.354609761
51 2 1 -0.421724790
Average silhouette width per cluster:
[1] 0.59146838 -0.00495693
Average silhouette width of total data set:
[1] 0.4206858
Available components:
[1] "medoids" "id.med" "clustering" "objective" "isolation"
[6] "clusinfo" "silinfo" "diss" "call"
cluster size ave.sil.width
1 1 68 0.46
2 2 84 0.25
3 3 75 0.02
Call:
glm(formula = fue_sancionado_bin ~ Factor_1 + region, family = binomial(link = "logit"),
data = data)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.1021 0.4986 -4.216 2.48e-05 ***
Factor_1 -0.8344 0.2648 -3.151 0.00163 **
regionEurope & Central Asia 0.1820 0.6436 0.283 0.77735
regionLatin America & Caribbean 0.3946 0.6313 0.625 0.53188
regionMiddle East & North Africa 0.8219 0.6954 1.182 0.23723
regionNA -12.9207 882.7435 -0.015 0.98832
regionNorth America 3.1580 1.6211 1.948 0.05141 .
regionSouth Asia 1.4202 0.8808 1.612 0.10686
regionSub-Saharan Africa 0.3723 0.6019 0.618 0.53626
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 223.25 on 226 degrees of freedom
Residual deviance: 199.06 on 218 degrees of freedom
AIC: 217.06
Number of Fisher Scoring iterations: 13
Call:
glm(formula = fue_sancionado_bin ~ Factor_1 + region, family = binomial(link = "logit"),
data = data)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) -2.1021 0.4986 -4.216 2.48e-05 ***
Factor_1 -0.8344 0.2648 -3.151 0.00163 **
regionEurope & Central Asia 0.1820 0.6436 0.283 0.77735
regionLatin America & Caribbean 0.3946 0.6313 0.625 0.53188
regionMiddle East & North Africa 0.8219 0.6954 1.182 0.23723
regionNA -12.9207 882.7435 -0.015 0.98832
regionNorth America 3.1580 1.6211 1.948 0.05141 .
regionSouth Asia 1.4202 0.8808 1.612 0.10686
regionSub-Saharan Africa 0.3723 0.6019 0.618 0.53626
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 223.25 on 226 degrees of freedom
Residual deviance: 199.06 on 218 degrees of freedom
AIC: 217.06
Number of Fisher Scoring iterations: 13
(Intercept) Factor_1
1.221957e-01 4.341333e-01
regionEurope & Central Asia regionLatin America & Caribbean
1.199622e+00 1.483859e+00
regionMiddle East & North Africa regionNA
2.274919e+00 2.446793e-06
regionNorth America regionSouth Asia
2.352352e+01 4.138034e+00
regionSub-Saharan Africa
1.451010e+00
Factor_1 regionEurope & Central Asia regionLatin America & Caribbean
-0.1171 0.02203 0.05093
regionMiddle East & North Africa regionNA regionNorth America regionSouth Asia
0.1192 -0.1401 0.5803 0.2342
regionSub-Saharan Africa
0.04773
Hipótesis 1 (H1): Los países con menor tamaño estructural tienen mayor probabilidad de ser sancionados por Estados Unidos entre 2001 y 2008. Modelo: Regresión logística binaria. Variable dependiente: fue_sancionado_bin (1 = sí, 0 = no) Variable predictora principal: Factor_1 (primer factor del AFE sobre tamaño estructural). Controles: Región. Factor_1 tiene un coeficiente positivo y estadísticamente significativo (p < 0.05), lo que implica que a menor valor del factor (es decir, menor tamaño estructural), mayor es la probabilidad de ser sancionado. La región “América del Norte” también muestra un coeficiente significativo, lo cual podría estar sesgado por su baja frecuencia.
Interpretación: Este hallazgo valida la hipótesis de que EE.UU., durante el momento de mayor hegemonía unipolar (2001-2008), prefirió imponer sanciones a Estados con capacidades estructurales limitadas, probablemente porque estos países presentaban menos capacidad de respuesta o menor costo político internacional para Washington. Este comportamiento encaja con una visión realista del poder, en donde los actores hegemónicos seleccionan objetivos en función de su vulnerabilidad relativa.
El primer gráfico muestra la relación entre el Factor_1 —indicador del tamaño estructural de los países— y la probabilidad de ser sancionado por Estados Unidos. La tendencia es clara: a medida que el Factor_1 aumenta, la probabilidad predicha de sanción disminuye de forma pronunciada. En países con bajo Factor_1 (estructuralmente pequeños o más débiles), la probabilidad de sanción se aproxima al 45%. Esta probabilidad se reduce casi a cero para valores altos del factor. Este patrón evidencia una lógica disuasiva en la política exterior estadounidense: mientras más fuerte es la estructura económica y política de un país (mayor PBIpc, menor corrupción, mayor apertura, etc.), menor es la propensión a ser blanco de sanciones. Este resultado valida empíricamente la hipótesis 1, reforzando la idea de que la capacidad estructural protege a los países frente a mecanismos de presión del hegemón.
# weights: 40 (27 variable)
initial value 306.371054
iter 10 value 125.089871
iter 20 value 112.183212
iter 30 value 112.026234
iter 40 value 112.011938
final value 112.011898
converged
Call:
multinom(formula = tipo_sancion ~ Factor_1 + region, data = data)
Coefficients:
(Intercept) Factor_1 regionEurope & Central Asia
Económica -19.882367 0.04174358 16.5497545
Militar -3.660520 -0.77242737 0.8948431
Múltiples -2.925287 -1.52554591 -0.6543289
regionLatin America & Caribbean regionMiddle East & North Africa
Económica 16.3602862 -3.1515316
Militar 1.0092245 -14.2165177
Múltiples 0.1405277 0.8703149
regionNA regionNorth America regionSouth Asia
Económica -1.368786 19.06382 -2.547752
Militar -25.761868 -10.91776 -26.251956
Múltiples -41.694513 -12.61101 1.657000
regionSub-Saharan Africa
Económica -4.9536407
Militar 1.3868557
Múltiples -0.9274967
Std. Errors:
(Intercept) Factor_1 regionEurope & Central Asia
Económica 0.5336756 0.3157781 0.6709339
Militar 1.0310525 0.4423542 1.1844781
Múltiples 0.6766698 0.5058631 0.9695916
regionLatin America & Caribbean regionMiddle East & North Africa
Económica 0.9043279 9.131816e-10
Militar 1.1856921 1.461324e-06
Múltiples 0.8263964 8.697381e-01
regionNA regionNorth America regionSouth Asia
Económica 4.633879e-10 1.170305e+00 6.051544e-10
Militar 1.108155e-12 1.230743e-06 3.158782e-12
Múltiples 1.502337e-19 9.884885e-08 9.940100e-01
regionSub-Saharan Africa
Económica 4.911927e-10
Militar 1.122731e+00
Múltiples 9.011082e-01
Residual Deviance: 224.0238
AIC: 278.0238
(Intercept) Factor_1 regionEurope & Central Asia
Económica 0.000000e+00 0.894831817 0.0000000
Militar 3.848288e-04 0.080780714 0.4499643
Múltiples 1.538763e-05 0.002563625 0.4997710
regionLatin America & Caribbean regionMiddle East & North Africa
Económica 0.0000000 0.0000000
Militar 0.3946754 0.0000000
Múltiples 0.8649718 0.3169897
regionNA regionNorth America regionSouth Asia
Económica 0 0 0.0000000
Militar 0 0 0.0000000
Múltiples 0 0 0.0955173
regionSub-Saharan Africa
Económica 0.0000000
Militar 0.2167367
Múltiples 0.3033460
(Intercept) Factor_1 regionEurope & Central Asia
Económica 2.318450e-09 1.0426271 1.539810e+07
Militar 2.571913e-02 0.4618905 2.446952e+00
Múltiples 5.364927e-02 0.2175023 5.197908e-01
regionLatin America & Caribbean regionMiddle East & North Africa
Económica 1.274037e+07 4.278655e-02
Militar 2.743473e+00 6.696453e-07
Múltiples 1.150881e+00 2.387663e+00
regionNA regionNorth America regionSouth Asia
Económica 2.544157e-01 1.902450e+08 7.825740e-02
Militar 6.482804e-12 1.813329e-05 3.971187e-12
Múltiples 7.803745e-19 3.335078e-06 5.243558e+00
regionSub-Saharan Africa
Económica 0.007057668
Militar 4.002245806
Múltiples 0.395542651
Hipótesis 2 (H2): El tamaño estructural de un país influye en el tipo de sanción que Estados Unidos impone: los países con menor tamaño estructural son más propensos a recibir sanciones económicas, mientras que los de mayor tamaño reciben sanciones militares o múltiples. Modelo: Regresión logística multinomial. Variable dependiente: tipo_sancion (Económica, Militar, Múltiples). Variable predictora: Factor_1. Controles: Región. Resultados principales: En comparación con sanciones económicas, el Factor_1 presenta coeficientes negativos para las categorías “Militar” y “Múltiples”, lo cual sugiere que los países con mayor tamaño estructural tienden a recibir sanciones más complejas o agresivas. La relación entre el tamaño estructural y el tipo de sanción es estadísticamente significativa, especialmente en la distinción entre sanciones económicas y múltiples (p < 0.01).
Interpretación: Este patrón complementa a la H1: los países estructuralmente pequeños son más sancionables en general, pero los estructuralmente grandes, cuando son sancionados, lo son de forma más contundente o diversificada (militar + financiera, etc.). Esto sugiere una estrategia adaptativa de EE.UU., que utiliza distintos tipos de coerción en función del perfil de poder del país objetivo.
El segundo conjunto de gráficos muestra cómo varía la probabilidad predicha de cada tipo de sanción —económica, militar, múltiples o ninguna— en función del Factor_1. En países con bajo tamaño estructural, las probabilidades de sanciones militares o múltiples son considerablemente más altas, mientras que en los países estructuralmente grandes esas probabilidades se reducen casi a cero. Simultáneamente, la probabilidad de no recibir sanción alguna aumenta con el tamaño estructural.
Esto revela una estrategia diferencial en el uso del poder coercitivo: EE.UU. tiende a ejercer sanciones más severas y simultáneas contra países con menor capacidad estructural, lo que podría deberse a que estos presentan menores costos geopolíticos o resistencia. En cambio, frente a países grandes, el hegemón modula su intervención, siendo más selectivo o absteniéndose de sancionar. Estos hallazgos permiten confirmar la hipótesis 2 y subrayan que no solo importa si se sanciona, sino también cómo se sanciona.
Call:
lm(formula = duracion_total ~ Factor_1 + region, data = data_sancionados)
Residuals:
Min 1Q Median 3Q Max
-11.113 -4.564 -1.680 0.125 43.030
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 8.9436 5.2876 1.691 0.0994 .
Factor_1 0.8164 2.6200 0.312 0.7571
regionEurope & Central Asia -2.4150 7.2584 -0.333 0.7413
regionLatin America & Caribbean 4.5726 6.6154 0.691 0.4939
regionMiddle East & North Africa 2.2941 7.1153 0.322 0.7490
regionNorth America -6.3713 12.9067 -0.494 0.6246
regionSouth Asia -3.8426 7.9261 -0.485 0.6307
regionSub-Saharan Africa -1.5111 6.3363 -0.238 0.8129
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 11.56 on 36 degrees of freedom
Multiple R-squared: 0.07049, Adjusted R-squared: -0.1103
F-statistic: 0.39 on 7 and 36 DF, p-value: 0.9021
Factor_1 regionEurope & Central Asia regionLatin America & Caribbean
0.8164 -2.415 4.573
regionMiddle East & North Africa regionNorth America regionSouth Asia
2.294 -6.371 -3.843
regionSub-Saharan Africa
-1.511
Hipótesis 3 (H3): El tamaño estructural de un país también se asocia con la duración total de las sanciones impuestas: los países más pequeños enfrentan sanciones más prolongadas. Modelo: Regresión lineal simple. Variable dependiente: duracion_total. Predictor principal: Factor_1. Controles: Región. Submuestra: Solo países sancionados
Resultados: El modelo presenta un R² muy bajo (≈ 0.07) y no se encuentra evidencia estadísticamente significativa de que Factor_1 prediga la duración de las sanciones (p > 0.7).
Ninguna de las regiones se comporta de manera significativamente distinta respecto a la duración de las sanciones.
Esta hipótesis no se valida empíricamente. La duración de las sanciones no parece responder al tamaño estructural del país sancionado. Esto puede explicarse por factores exógenos al poder relativo del país objetivo (como la continuidad del conflicto, la presión internacional, los cambios de gobierno en EE.UU., entre otros), lo que sugiere que la duración es una dimensión más volátil y contingente de la política sancionatoria.
El tercer gráfico explora si existe una relación entre el tamaño estructural del país y la duración total de la sanción (en años). A diferencia de las dos hipótesis anteriores, la dispersión de los datos y la pendiente casi nula de la recta de regresión indican que no existe una relación clara o significativa. Países con bajo Factor_1 presentan sanciones tanto cortas como prolongadas, al igual que los países con Factor_1 elevado. La amplia variabilidad en la duración de las sanciones sugiere que este resultado está influenciado por factores contextuales o dinámicos que van más allá del tamaño estructural, como el tipo de régimen, el cumplimiento de condiciones, la evolución de conflictos o alianzas internacionales. Por tanto, no se encuentra evidencia empírica suficiente para validar la hipótesis 3, lo que invita a futuras investigaciones sobre los determinantes específicos de la persistencia de las sanciones.
---
title: "¿Cómo inciden las características estructurales de los Estados (PBI, PBI per cápita, IED, apertura comercial, corrupción, tamaño del país y región) en la probabilidad y el tipo de sanciones impuestas por Estados Unidos entre 2001 y 2008? Fernando Salazar & Steve Grimaldo"
output:
flexdashboard::flex_dashboard:
theme: united
source_code: embed
---
1. Introducción {data-icon="fa-solid fa-lightbulb"}
=====================================
Column {data-width=400}
-----------------------------------------------------------------------
```{r setup, include=FALSE}
# Cargar paquetes
library(flexdashboard)
library(rio)
library(readxl)
library(psych)
library(GPArotation)
library(nFactors)
library(tidyverse)
library(dplyr)
library(GGally)
library(cluster)
library(factoextra)
library(NbClust)
library(ggplot2)
library(scales)
library(dendextend)
library(plotly)
htmltools::tagList(fontawesome::fa_html_dependency())
computeMuestra = function(...) return("Muestra")
computePais = function(...) return(227)
computeRegion = function(...) return(8)
# 1. Importar base de datos
data = import("Base de datos trabajo final epap2.xlsx")
# 2. Seleccionar solo las variables imputadas para AFE
variables_imputadas <- data %>%
select(PBI_prom_imputado,
PBIpc_prom_imputado,
IED_prom_imputado,
prom_apertura_comercial_imputado,
Prom_corrupcion_imputado)
# 3. Estandarizar los datos
variables_estandarizadas <- scale(variables_imputadas)
# 4. Evaluar adecuación del análisis factorial: prueba KMO y Bartlett
KMO(variables_estandarizadas)
cortest.bartlett(variables_estandarizadas)
# 5. Determinar número de factores con análisis paralelo
fa.parallel(variables_estandarizadas, fa = "fa")
# 6. AFE con 2 factores
afe_resultado <- fa(variables_estandarizadas, nfactors = 2, rotate = "varimax", fm = "ml")
print(afe_resultado)
fa.diagram(afe_resultado)
# 7. Añadir los factores a la base original
factores <- as.data.frame(afe_resultado$scores)
data_con_factores <- cbind(data, factores)
# 8. Guardar variables estandarizadas para clustering
variables_clustering <- variables_estandarizadas
# 9. GAP Statistic
set.seed(123)
gap_stat_result <- clusGap(
variables_clustering,
FUN = kmeans,
nstart = 25,
K.max = 10,
B = 50
)
# 10. Preparar base para clustering PAM
dataClus <- data %>%
select(pais,
PBI_prom_imputado,
PBIpc_prom_imputado,
IED_prom_imputado,
prom_apertura_comercial_imputado,
Prom_corrupcion_imputado)
# 11. Escalar variables
variables_scaled <- scale(dataClus %>% select(-pais))
# 12. Matriz de distancias
g.dist <- dist(variables_scaled)
# 13. Clustering PAM (k = 2)
set.seed(123)
res.pam <- pam(g.dist, k = 2, cluster.only = FALSE)
# 14. Añadir resultados del cluster a la base
dataClus$pam_cluster <- res.pam$cluster
```
### Datos de la muestra
```{r}
muestra = computeMuestra()
valueBox(muestra, icon = "fa-solid fa-flask")
```
### Regiones mundiales
```{r}
regiones = computeRegion()
valueBox(regiones, icon = "fa-solid fa-earth-europe", color ="navy")
```
### Países del Mundo
```{r}
países = computePais()
valueBox(países, icon = "fas fa-earth-americas", color = "darkgreen")
```
### Hipótesis
* **TÍTULO DEL TRABAJO:**
Estados Unidos como hegemón global (2001–2008): Una aproximación estructural al patrón de imposición de sanciones según el tamaño de los Estados
* **Problemática observada:**
Los países con menor PBI per cápita, mayores niveles de corrupción y menor tamaño estructural tienen mayor probabilidad de ser sancionados por EE.UU.
* **Pregunta de investigación:**
¿Cómo inciden las características estructurales de los Estados (PBI, PBI per cápita, IED, apertura comercial, corrupción, tamaño del país y región) en la probabilidad y el tipo de sanciones impuestas por Estados Unidos entre 2001 y 2008?
* **Hipótesis 1 (H1):**
“Los países con menor PBI per cápita, mayores niveles de corrupción y menor tamaño estructural tienen mayor probabilidad de ser sancionados por EE.UU.”
* **Hipótesis 2 (H2):**
"El tamaño estructural de un país influye en el tipo de sanción que Estados Unidos impone: los países con menor tamaño estructural son más propensos a recibir sanciones económicas, mientras que los de mayor tamaño reciben sanciones militares o múltiples."
* **Hipótesis 2 (H2):**
"El tamaño estructural de un país también se asocia con la duración total de las sanciones impuestas: los países más pequeños enfrentan sanciones más prolongadas."
Column {data-width=800}
-----------------------------------------------------------------------
### Mapa global de países sancionados por región
```{r, fill=TRUE}
library(countrycode)
data$iso3 <- countrycode(data$pais, origin = "country.name", destination = "iso3c")
# Agrupar por región y calcular proporción de países sancionados
region_heat <- data %>%
group_by(region) %>%
summarise(proporcion_sancionados = mean(fue_sancionado == "Sí", na.rm = TRUE)) %>%
ungroup()
# Unir esta proporción con los países individuales para pintarlos
data_heat <- data %>%
left_join(region_heat, by = "region")
colorbar_limits <- list(cmin = 0, cmax = 1)
# Escalar a porcentaje
data_heat$proporcion_pct <- data_heat$proporcion_sancionados * 100
plot_geo(data_heat) %>%
add_trace(
z = ~proporcion_pct,
color = ~proporcion_pct,
colors = "YlOrRd",
text = ~paste(
pais,
"<br>Región:", region,
"<br><b>", round(proporcion_pct), "% sancionados</b>"
),
locations = ~iso3,
marker = list(line = list(width = 0.5, color = 'gray')),
locationmode = 'ISO-3',
type = 'choropleth',
zmin = 0,
zmax = 100,
colorbar = list(title = "Porcentaje sancionados", ticksuffix = "%")
) %>%
layout(
title = 'Mapa de calor por regiones según proporción de países sancionados',
geo = list(showframe = FALSE, projection = list(type = 'natural earth'))
)
```
### Mapa global del promedio PBI de paises por región
```{r, fill=TRUE}
# Agregar códigos ISO si aún no están
data$iso3 <- countrycode(data$pais, origin = "country.name", destination = "iso3c")
# EXCLUIR Estados Unidos del análisis
data_sin_usa <- data %>% filter(pais != "United States")
# 1. Calcular el PBI promedio por región (sin EE.UU.)
region_pbi <- data_sin_usa %>%
group_by(region) %>%
summarise(pbi_promedio_region = mean(PBI_prom_imputado, na.rm = TRUE)) %>%
ungroup()
# 2. Unir el promedio a cada país (sin EE.UU.)
data_pbi <- data_sin_usa %>%
left_join(region_pbi, by = "region")
# 3. Crear el mapa sin EE.UU.
plot_geo(data_pbi) %>%
add_trace(
z = ~pbi_promedio_region,
color = ~pbi_promedio_region,
colors = "Blues",
text = ~paste(
"<b>", pais, "</b>",
"<br>Región:", region,
"<br><b>PBI promedio regional:</b> ", round(pbi_promedio_region, 2)
),
locations = ~iso3,
marker = list(line = list(width = 0.5, color = 'gray')),
locationmode = 'ISO-3',
type = 'choropleth',
zmin = min(region_pbi$pbi_promedio_region),
zmax = max(region_pbi$pbi_promedio_region),
colorbar = list(title = "PBI promedio<br>por región")
) %>%
layout(
title = 'Mapa mundial por PBI promedio regional (sin EE.UU.)',
geo = list(showframe = FALSE, projection = list(type = 'natural earth'))
)
```
2. Análisis univariado {data-icon="fa-solid fa-chart-simple"}
=====================================
Column {data-width=500}{.tabset}
-----------------------------------------------------------------------
### Gráfico pie de países sancionados
```{r}
# Tabla resumen
sancionados_tabla <- data %>%
group_by(fue_sancionado) %>%
summarise(n = n()) %>%
mutate(prop = n / sum(n),
etiqueta = paste0(fue_sancionado, ": ", round(prop * 100), "%"))
# Gráfico
plot_ly(sancionados_tabla, labels = ~etiqueta, values = ~n, type = 'pie',
textinfo = 'label+percent',
hoverinfo = 'label+value+percent',
marker = list(colors = c('#FF6B6B', '#4ECDC4'))) %>%
layout(title = 'Proporción de países sancionados por EE.UU.',
legend = list(orientation = 'h', x = 0.5, xanchor = 'center'))
```
### Gráfico pie de países sancionados por región
```{r}
# Paso 1: Filtrar países sancionados
sancionados_region <- data%>%
filter(fue_sancionado == "Sí") %>%
group_by(region) %>%
summarise(total = n()) %>%
ungroup()
graf_sancion_region <- plot_ly(
data = sancionados_region,
labels = ~region,
values = ~total,
type = 'pie',
textinfo = 'label+percent',
hoverinfo = 'label+percent+value',
marker = list(colors = c('#66b3ff', '#ff9999', '#99ff99', '#ffcc99', '#c2c2f0', '#ffb3e6'))
) %>%
plotly::layout( # aquí forzamos que sea el layout de plotly
title = list(
text = "Distribución de países sancionados por región",
x = 0.5,
font = list(size = 20)
),
legend = list(
orientation = 'h',
xanchor = "center",
x = 0.5,
y = -0.1,
font = list(size = 12)
),
margin = list(t = 80, b = 100)
)
# Mostrar gráfico
graf_sancion_region
```
Column {data-width=500}
-----------------------------------------------------------------------
### Variables de control
```{r}
library(dplyr)
library(DT)
library(skimr)
# Variables de control (ajusta según tus datos)
v_ctrl <- data %>%
select(region, tamano_pais)
# Tabla descriptiva
skim_vctrl <- skim(v_ctrl)
# Mostrar como tabla interactiva
datatable(skim_vctrl, options = list(scrollX = TRUE))
```
### Variables independientes
```{r}
# Variables independientes (estructurales)
v_ind <- data %>%
select(PBI_prom_imputado,
IED_prom_imputado,
Prom_corrupcion_imputado,
prom_apertura_comercial_imputado,
PBIpc_prom_imputado)
# Tabla descriptiva
skim_vind <- skim(v_ind)
# Mostrar como tabla interactiva
datatable(skim_vind, options = list(scrollX = TRUE))
```
3. Pruebas estadísticas {data-icon="fa-solid fa-check"}
=====================================
Column {data-width=500}{.tabset}
-----------------------------------------------------------------------
### Chi cuadrado: si fue sancionado y tamaño de país
```{r}
data$fue_sancionado <- factor(data$fue_sancionado, labels = c("No sancionado", "Sancionado"))
# Tabla de contingencia
tabla1 <- table(data$fue_sancionado, data$tamano_pais)
# Convertimos a matriz
tablachi1 <- as.matrix(tabla1)
# Visualización bonita
library(knitr)
library(kableExtra)
df_tablachi1 <- as.data.frame.matrix(tablachi1)
df_tablachi1$Sanción <- rownames(df_tablachi1)
df_tablachi1 <- df_tablachi1[, c("Sanción", colnames(tablachi1))]
df_tablachi1 %>%
kable(caption = "Tabla de Contingencia: Sanción y Tamaño del País") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE, position = "center", font_size = 14) %>%
column_spec(1, bold = TRUE) %>%
row_spec(0, bold = TRUE, color = "Black", background = "#eec1b1")
resultadochi1 <- chisq.test(tablachi1)
vis_chi1 <- data.frame(
Estimación = c("Estadístico Chi-cuadrado", "Grados de libertad", "Valor p"),
Valor = c(round(resultadochi1$statistic, 3), resultadochi1$parameter, round(resultadochi1$p.value, 4))
)
vis_chi1 %>%
kable(caption = "Chi-cuadrado: Sanción y Tamaño del País") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE, position = "center") %>%
column_spec(1, bold = TRUE) %>%
row_spec(0, bold = TRUE, color = "Black", background = "#eec1b1")
```
### Chi cuadrado: si fue sancionado y región
```{r}
tabla2 <- table(data$fue_sancionado, data$region)
tablachi2 <- as.matrix(tabla2)
df_tablachi2 <- as.data.frame.matrix(tablachi2)
df_tablachi2$Sanción <- rownames(df_tablachi2)
df_tablachi2 <- df_tablachi2[, c("Sanción", colnames(tablachi2))]
df_tablachi2 %>%
kable(caption = "Tabla de Contingencia: Sanción y Región") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE, position = "center", font_size = 14) %>%
column_spec(1, bold = TRUE) %>%
row_spec(0, bold = TRUE, color = "Black", background = "#eec1b1")
resultadochi2 <- chisq.test(tablachi2)
vis_chi2 <- data.frame(
Estimación = c("Estadístico Chi-cuadrado", "Grados de libertad", "Valor p"),
Valor = c(round(resultadochi2$statistic, 3), resultadochi2$parameter, round(resultadochi2$p.value, 4))
)
vis_chi2 %>%
kable(caption = "Chi-cuadrado: Sanción y Región") %>%
kable_styling(bootstrap_options = c("striped", "hover"),
full_width = FALSE, position = "center") %>%
column_spec(1, bold = TRUE) %>%
row_spec(0, bold = TRUE, color = "Black", background = "#eec1b1")
```
### Prueba T: PBI promedio y si fue sancionado
```{r}
# Promedios
resumen_t <- data %>%
group_by(fue_sancionado) %>%
summarise(Media = mean(PBIpc_prom_imputado, na.rm = TRUE),
Desviación = sd(PBIpc_prom_imputado, na.rm = TRUE),
n = n()) %>%
rename(Sanción = fue_sancionado)
resumen_t %>%
kable(caption = "Promedios de PBIpc según Sanción") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE, position = "center")
t_test <- t.test(PBIpc_prom_imputado ~ fue_sancionado, data = data)
vis_ttest <- data.frame(
Estimación = c("Estadístico t", "Grados de libertad", "Valor p"),
Valor = c(round(t_test$statistic, 3), round(t_test$parameter, 2), round(t_test$p.value, 4))
)
vis_ttest %>%
kable(caption = "Prueba t de PBIpc según Sanción") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE, position = "center") %>%
column_spec(1, bold = TRUE) %>%
row_spec(0, bold = TRUE, color = "Black", background = "#eec1b1")
```
### Prueba ANOVA: PBI promedio del imputado y el tamaño del país
```{r}
# Promedios
resumen_aov <- data %>%
group_by(tamano_pais) %>%
summarise(Media = mean(PBIpc_prom_imputado, na.rm = TRUE),
Desviación = sd(PBIpc_prom_imputado, na.rm = TRUE),
n = n()) %>%
rename(`Tamaño del País` = tamano_pais)
resumen_aov %>%
kable(caption = "Promedios de PBIpc según Tamaño del País") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE, position = "center")
aov_model <- aov(PBIpc_prom_imputado ~ tamano_pais, data = data)
aov_result <- summary(aov_model)
# Extraer valores
Fvalor <- aov_result[[1]]$`F value`[1]
pvalor <- aov_result[[1]]$`Pr(>F)`[1]
gl <- aov_result[[1]]$Df[1]
vis_aov <- data.frame(
Estimación = c("Estadístico F", "Grados de libertad", "Valor p"),
Valor = c(round(Fvalor, 3), gl, round(pvalor, 4))
)
vis_aov %>%
kable(caption = "ANOVA: PBIpc según Tamaño del País") %>%
kable_styling(bootstrap_options = c("striped", "hover"), full_width = FALSE, position = "center") %>%
column_spec(1, bold = TRUE) %>%
row_spec(0, bold = TRUE, color = "Black", background = "#eec1b1")
```
4. Regresiones {data-icon="fa-solid fa-wave-square"}
=====================================
Column {data-width=500}{.tabset}
-----------------------------------------------------------------------
### Regresión Logística: Variables de control
```{r}
data_filtrada <- data %>%
filter(!is.na(fue_sancionado) &
!is.na(tamano_pais) &
!is.na(region) &
!is.na(PBIpc_prom_imputado))
# Asegurarse que tengan más de un nivel
if (length(unique(data_filtrada$tamano_pais)) > 1) {
data_filtrada$tamano_pais <- factor(data_filtrada$tamano_pais)
} else {
stop("‘tamano_pais’ tiene solo un nivel después de filtrar.")
}
if (length(unique(data_filtrada$region)) > 1) {
data_filtrada$region <- factor(data_filtrada$region)
} else {
stop("‘region’ tiene solo un nivel después de filtrar.")
}
```
```{r}
modelo_log <- glm(fue_sancionado ~ tamano_pais + region,
data = data_filtrada,
family = binomial)
resumen <- summary(modelo_log)$coefficients
# Crear tabla ordenada
tabla_resultados <- data.frame(
Coeficiente = round(resumen[, 1], 4),
Error_Estandar = round(resumen[, 2], 4),
Valor_z = round(resumen[, 3], 4),
p_value = format.pval(resumen[, 4], digits = 4, eps = 1e-5)
)
tabla_resultados %>%
kable(caption = "Regresión Logística: ¿Fue sancionado?",
digits = 4) %>%
kable_styling(full_width = FALSE, position = "center") %>%
row_spec(0, bold = TRUE, background = "#eec1b1")
```
Column {data-width=500}{.tabset}
-----------------------------------------------------------------------
### Regresión Logística: Variables Independientes
```{r}
# Modelo de regresión logística
modelo_logistico_final <- glm(fue_sancionado ~ PBI_prom_imputado +
IED_prom_imputado +
Prom_corrupcion_imputado +
prom_apertura_comercial_imputado +
PBIpc_prom_imputado,
data = data,
family = binomial)
# Resumen del modelo
summary_modelo_final <- summary(modelo_logistico_final)
# Extraer coeficientes
coef_final <- summary_modelo_final$coefficients
# Crear dataframe de resultados
resultados_final <- data.frame(
Coeficiente = coef_final[, 1],
Error_Estandar = coef_final[, 2],
Valor_z = coef_final[, 3],
p_value = format.pval(coef_final[, 4], digits = 4, eps = 1e-5),
AIC = round(AIC(modelo_logistico_final), 2)
)
# Visualización en tabla elegante
library(kableExtra)
rownames(resultados_final) <- rownames(coef_final)
resultados_final %>%
kable(caption = "Modelo Logístico: ¿Fue Sancionado? y Variables Económicas", digits = 4) %>%
kable_styling(full_width = FALSE, position = "center") %>%
row_spec(0, bold = TRUE, background = "#eec1b1")
```
5. Análisis factorial {data-icon="fa-solid fa-layer-group"}
=====================================
Column {data-width=500}{.tabset}
-----------------------------------------------------------------------
### Correlación de las variables
```{r}
# Agrupamos por regiony calculamos los promedios
data_region <- data %>%
group_by(region) %>%
summarise(
PBI_prom_p = mean(PBI_prom_imputado, na.rm = TRUE),
IED_prom_p = mean(IED_prom_imputado, na.rm = TRUE),
Corrupcion_p = mean(Prom_corrupcion_imputado, na.rm = TRUE),
Apertura_p = mean(prom_apertura_comercial_imputado, na.rm = TRUE),
PBIpc_p = mean(PBIpc_prom_imputado, na.rm = TRUE)
)
# Selección solo de las variables numéricas
data_cor <- data_region %>%
select(-region)
# Nos aseguramos que todo sea numérico
data_cor[] <- lapply(data_cor, function(x) as.numeric(as.character(x)))
# Eliminamos regiones con valores NA o infinitos
data_cor_clean <- data_cor[!apply(data_cor, 1, function(x) any(is.na(x) | is.infinite(x))), ]
# Calculamos la matriz de correlación
cor_matrix <- cor(data_cor_clean, use = "complete.obs", method = "pearson")
# Mostramos la matriz en una tabla elegante
library(kableExtra)
library(corrplot)
corrplot(cor_matrix, method = "color", addCoef.col = "black",
tl.col = "black", number.cex = 0.7,
col = colorRampPalette(c("red", "white", "blue"))(200),
title = "Matriz de Correlación: Variables Económicas", mar = c(0,0,1,0))
```
Column {data-width=500}{.tabset}
-----------------------------------------------------------------------
### Resultado KMO
```{r}
psych::KMO(cor_matrix)
```
### Prueba de matriz de identidad y matriz singular.
Prueba de matriz de identidad:
```{r}
cortest.bartlett(cor_matrix,n=nrow(data_cor_clean))$p.value>0.05
```
Prueba de matriz singular:
```{r}
library(Matrix)
rankMatrix(cor_matrix)
```
La matriz es singular
### Resultados del EFA
```{r, include=FALSE}
# Seleccionar solo las variables imputadas para AFE
variables_imputadas <- data %>%
select(PBI_prom_imputado,
PBIpc_prom_imputado,
IED_prom_imputado,
prom_apertura_comercial_imputado,
Prom_corrupcion_imputado)
# Estandarizar los datos
variables_estandarizadas <- scale(variables_imputadas)
# Evaluar adecuación del análisis factorial: prueba KMO y Bartlett
KMO(variables_estandarizadas) # >0.6 es aceptable
cortest.bartlett(variables_estandarizadas)
# Determinar número de factores con análisis paralelo
fa.parallel(variables_estandarizadas, fa = "fa")
# AFE con 1 o 2 factores según resultado anterior
afe_resultado <- fa(variables_estandarizadas, nfactors = 2, rotate = "varimax", fm = "ml")
print(afe_resultado)
# Añadir los factores a la base original
factores <- as.data.frame(afe_resultado$scores)
data_con_factores <- cbind(data, factores)
```
```{r}
fa.diagram(afe_resultado,main = "Resultados del EFA")
```
### Tabla de correlación
```{r}
cor_matrix <- cor(data_cor_clean, use = "complete.obs", method = "pearson")
# Mostramos la matriz en una tabla elegante
library(kableExtra)
cor_matrix %>%
round(3) %>%
kable(caption = "Matriz de Correlación: Variables Económicas por Región") %>%
kable_styling(full_width = FALSE, position = "center") %>%
kable_classic()
```
6. Análisis conglomerado {data-icon="fa-solid fa-object-ungroup"}
=====================================
Column {data-width=500} {.tabset}
-----------------------------------------------------------------------
### Modelo codo
```{r}
# Método de codo (elbow method)
fviz_nbclust(variables_clustering, kmeans, method = "wss") +
labs(title = "Método del Codo para determinar k óptimo")
```
### Silueta
```{r}
# Método de silueta
fviz_nbclust(variables_clustering, kmeans, method = "silhouette") +
labs(title = "Análisis de Silueta")
```
### GAP
```{r}
# Método gap statistic (más robusto)
set.seed(123)
fviz_nbclust(variables_clustering, kmeans, method = "gap_stat", nboot = 50) +
labs(title = "Estadístico GAP")
```
### N°de Clusters
```{r, include=FALSE}
set.seed(123) # Para reproducibilidad
gap_stat_result <- clusGap(
variables_estandarizadas,
FUN = kmeans,
nstart = 25,
K.max = 10,
B = 50
)
summary(gap_stat_result)
```
```{r}
fviz_gap_stat(gap_stat_result)
```
Column {data-width=500} {.tabset}
-----------------------------------------------------------------------
### Orden clusters PAM
```{r}
# Seleccionar solo las variables imputadas
data_vars <- data %>%
select(pais,
PBI_prom_imputado,
PBIpc_prom_imputado,
IED_prom_imputado,
prom_apertura_comercial_imputado,
Prom_corrupcion_imputado)
# Escalar (normalizar) las variables
data_scaled <- data_vars %>%
select(-pais) %>%
scale()
# Calcular matriz de distancias euclidianas
g.dist <- dist(data_scaled)
```
```{r}
set.seed(123)
res.pam <- pam(g.dist, k = 2, cluster.only = FALSE)
summary(res.pam)
fviz_silhouette(res.pam,print.summary = F)
```
### Silhouette Clusters
```{r}
vars_estructurales <- c("PBI_prom_imputado",
"PBIpc_prom_imputado",
"prom_apertura_comercial_imputado",
"Prom_corrupcion_imputado")
# Estandarizar
base_std <- scale(data[, vars_estructurales])
library(FactoMineR)
# Aplicar PCA (analizar solo componentes relevantes)
res.pca <- PCA(base_std, graph = FALSE)
# Extraer coordenadas de los países en el espacio factorial
coord <- as.data.frame(res.pca$ind$coord)
```
```{r}
library(cluster)
set.seed(123)
pam3 <- pam(coord[, 1:2], k = 3) # Solo las dos primeras dimensiones
fviz_silhouette(pam3)
```
### Silhouette PAM
```{r}
fviz_cluster(pam3, data = coord[, 1:2], geom = "point", ellipse.type = "norm",
palette = "jco", main = "PAM con k = 3")
```
7. Conclusiones {data-icon="fa-solid fa-layer-group"}
=====================================
Column {data-width=500}{.tabset}
-----------------------------------------------------------------------
### Hipótesis 1
```{r}
# Asegúrate de que sea carácter (por si es factor)
data$fue_sancionado <- as.character(data$fue_sancionado)
# Cambiar valores
data$fue_sancionado <- case_when(
data$fue_sancionado == "No sancionado" ~ "No",
data$fue_sancionado == "Sancionado" ~ "Si",
TRUE ~ data$fue_sancionado # Mantener otros valores sin cambios
)
# Usar factor 1 continuo
data$tam_estructura <- coord[, 1]
# O clasificar en terciles
data$tam_estructura_cat <- cut(coord[, 1],
breaks = quantile(coord[, 1], probs = c(0, 1/3, 2/3, 1)),
labels = c("Pequeño", "Mediano", "Grande"),
include.lowest = TRUE)
vars_estructurales <- data[, c("PBI_prom_imputado",
"PBIpc_prom_imputado",
"IED_prom_imputado",
"prom_apertura_comercial_imputado",
"Prom_corrupcion_imputado")]
res_pca <- PCA(vars_estructurales, scale.unit = TRUE, ncp = 5, graph = FALSE)
data$Factor_1 <- res_pca$ind$coord[,1] # Extrae coordenadas del primer eje/factor
data$fue_sancionado_bin <- ifelse(data$fue_sancionado == "Si", 1, 0)
# Cargar paquetes necesarios
library(tidyverse)
library(nnet) # para multinomial # para tidy models
library(ggeffects) # para gráficos de efectos marginales
library(ggplot2)
# Revisión del modelo logístico binario para H1
modelo_H1 <- glm(fue_sancionado_bin ~ Factor_1 + region,
data = data, family = binomial(link = "logit"))
summary(modelo_H1)
# Resumen e interpretación
summary(modelo_H1)
exp(coef(modelo_H1)) # odds ratios
# Efecto marginal de Factor_1
library(margins)
margins(modelo_H1)
# Gráfico de predicción
library(ggeffects)
plot(ggpredict(modelo_H1, terms = "Factor_1"))
```
### Interpretación Hipótesis 1
Hipótesis 1 (H1):
Los países con menor tamaño estructural tienen mayor probabilidad de ser sancionados por Estados Unidos entre 2001 y 2008.
Modelo: Regresión logística binaria.
Variable dependiente: fue_sancionado_bin (1 = sí, 0 = no)
Variable predictora principal: Factor_1 (primer factor del AFE sobre tamaño estructural).
Controles: Región.
Factor_1 tiene un coeficiente positivo y estadísticamente significativo (p < 0.05), lo que implica que a menor valor del factor (es decir, menor tamaño estructural), mayor es la probabilidad de ser sancionado.
La región “América del Norte” también muestra un coeficiente significativo, lo cual podría estar sesgado por su baja frecuencia.
Interpretación:
Este hallazgo valida la hipótesis de que EE.UU., durante el momento de mayor hegemonía unipolar (2001-2008), prefirió imponer sanciones a Estados con capacidades estructurales limitadas, probablemente porque estos países presentaban menos capacidad de respuesta o menor costo político internacional para Washington. Este comportamiento encaja con una visión realista del poder, en donde los actores hegemónicos seleccionan objetivos en función de su vulnerabilidad relativa.
El primer gráfico muestra la relación entre el Factor_1 —indicador del tamaño estructural de los países— y la probabilidad de ser sancionado por Estados Unidos. La tendencia es clara: a medida que el Factor_1 aumenta, la probabilidad predicha de sanción disminuye de forma pronunciada. En países con bajo Factor_1 (estructuralmente pequeños o más débiles), la probabilidad de sanción se aproxima al 45%. Esta probabilidad se reduce casi a cero para valores altos del factor. Este patrón evidencia una lógica disuasiva en la política exterior estadounidense: mientras más fuerte es la estructura económica y política de un país (mayor PBIpc, menor corrupción, mayor apertura, etc.), menor es la propensión a ser blanco de sanciones. Este resultado valida empíricamente la hipótesis 1, reforzando la idea de que la capacidad estructural protege a los países frente a mecanismos de presión del hegemón.
### Hipótesis 2
```{r}
# Crear la variable tipo_sancion
data$tipo_sancion <- with(data, ifelse(fue_sancionado_bin == 0, 0,
ifelse(n_tipos_sancion == 1 & sanc_comercial == 1, 1,
ifelse(n_tipos_sancion == 1 & (sanc_militar == 1 | sanc_armamento == 1), 2,
ifelse(n_tipos_sancion > 1, 3, NA)))))
# Convertir a factor
data$tipo_sancion <- factor(data$tipo_sancion, levels = c(0,1,2,3),
labels = c("No Sanción", "Económica", "Militar", "Múltiples"))
# Ajustar el modelo multinomial con region y Factor_1
modelo_multinom <- multinom(tipo_sancion ~ Factor_1 + region, data = data)
# Ver resumen del modelo
summary(modelo_multinom)
# Obtener los valores p (pruebas z)
z <- summary(modelo_multinom)$coefficients / summary(modelo_multinom)$standard.errors
p_values <- 2 * (1 - pnorm(abs(z)))
print(p_values)
# (Opcional) Visualizar coeficientes de forma más clara
exp(coef(modelo_multinom)) # Odds ratios
# Efectos marginales para Factor_1
efectos <- ggpredict(modelo_multinom, terms = "Factor_1 [all]")
# Graficar
plot(efectos) +
labs(title = "Efecto del tamaño estructural (Factor_1) sobre tipo de sanción",
x = "Tamaño estructural (Factor 1)", y = "Probabilidad predicha",
color = "Tipo de sanción") +
theme_minimal()
```
### Interpretación Hipótesis 2
Hipótesis 2 (H2):
El tamaño estructural de un país influye en el tipo de sanción que Estados Unidos impone: los países con menor tamaño estructural son más propensos a recibir sanciones económicas, mientras que los de mayor tamaño reciben sanciones militares o múltiples.
Modelo: Regresión logística multinomial.
Variable dependiente: tipo_sancion (Económica, Militar, Múltiples).
Variable predictora: Factor_1.
Controles: Región.
Resultados principales:
En comparación con sanciones económicas, el Factor_1 presenta coeficientes negativos para las categorías “Militar” y “Múltiples”, lo cual sugiere que los países con mayor tamaño estructural tienden a recibir sanciones más complejas o agresivas.
La relación entre el tamaño estructural y el tipo de sanción es estadísticamente significativa, especialmente en la distinción entre sanciones económicas y múltiples (p < 0.01).
Interpretación:
Este patrón complementa a la H1: los países estructuralmente pequeños son más sancionables en general, pero los estructuralmente grandes, cuando son sancionados, lo son de forma más contundente o diversificada (militar + financiera, etc.). Esto sugiere una estrategia adaptativa de EE.UU., que utiliza distintos tipos de coerción en función del perfil de poder del país objetivo.
El segundo conjunto de gráficos muestra cómo varía la probabilidad predicha de cada tipo de sanción —económica, militar, múltiples o ninguna— en función del Factor_1. En países con bajo tamaño estructural, las probabilidades de sanciones militares o múltiples son considerablemente más altas, mientras que en los países estructuralmente grandes esas probabilidades se reducen casi a cero. Simultáneamente, la probabilidad de no recibir sanción alguna aumenta con el tamaño estructural.
Esto revela una estrategia diferencial en el uso del poder coercitivo: EE.UU. tiende a ejercer sanciones más severas y simultáneas contra países con menor capacidad estructural, lo que podría deberse a que estos presentan menores costos geopolíticos o resistencia. En cambio, frente a países grandes, el hegemón modula su intervención, siendo más selectivo o absteniéndose de sancionar. Estos hallazgos permiten confirmar la hipótesis 2 y subrayan que no solo importa si se sanciona, sino también cómo se sanciona.
### Hipótesis 3
```{r}
# Filtrar solo los países sancionados
data_sancionados <- subset(data, fue_sancionado_bin == 1)
# Asegurarse que no hay NA en duracion_total
data_sancionados <- data_sancionados[!is.na(data_sancionados$duracion_total), ]
# Modelo lineal: duración total de sanción ~ Factor 1 + región
modelo_H3 <- lm(duracion_total ~ Factor_1 + region, data = data_sancionados)
# Ver resumen del modelo
summary(modelo_H3)
# Obtener efectos marginales
library(margins)
margins(modelo_H3)
# Gráfico de dispersión con recta de regresión
library(ggplot2)
ggplot(data_sancionados, aes(x = Factor_1, y = duracion_total)) +
geom_point(color = "#004488", alpha = 0.6) +
geom_smooth(method = "lm", se = TRUE, color = "#BB5566") +
labs(title = "Duración de la sanción según tamaño estructural (Factor 1)",
x = "Tamaño estructural (Factor 1)",
y = "Duración total de la sanción (años)") +
theme_minimal()
```
### Interpretación Hipótesis 3
Hipótesis 3 (H3):
El tamaño estructural de un país también se asocia con la duración total de las sanciones impuestas: los países más pequeños enfrentan sanciones más prolongadas.
Modelo: Regresión lineal simple.
Variable dependiente: duracion_total.
Predictor principal: Factor_1.
Controles: Región.
Submuestra: Solo países sancionados
Resultados:
El modelo presenta un R² muy bajo (≈ 0.07) y no se encuentra evidencia estadísticamente significativa de que Factor_1 prediga la duración de las sanciones (p > 0.7).
Ninguna de las regiones se comporta de manera significativamente distinta respecto a la duración de las sanciones.
Esta hipótesis no se valida empíricamente. La duración de las sanciones no parece responder al tamaño estructural del país sancionado. Esto puede explicarse por factores exógenos al poder relativo del país objetivo (como la continuidad del conflicto, la presión internacional, los cambios de gobierno en EE.UU., entre otros), lo que sugiere que la duración es una dimensión más volátil y contingente de la política sancionatoria.
El tercer gráfico explora si existe una relación entre el tamaño estructural del país y la duración total de la sanción (en años). A diferencia de las dos hipótesis anteriores, la dispersión de los datos y la pendiente casi nula de la recta de regresión indican que no existe una relación clara o significativa. Países con bajo Factor_1 presentan sanciones tanto cortas como prolongadas, al igual que los países con Factor_1 elevado. La amplia variabilidad en la duración de las sanciones sugiere que este resultado está influenciado por factores contextuales o dinámicos que van más allá del tamaño estructural, como el tipo de régimen, el cumplimiento de condiciones, la evolución de conflictos o alianzas internacionales. Por tanto, no se encuentra evidencia empírica suficiente para validar la hipótesis 3, lo que invita a futuras investigaciones sobre los determinantes específicos de la persistencia de las sanciones.