Problema
Una regresión logística que modela las log-odds de ser liberado tras una detención por porte de pequeñas cantidades de marihuana indica que ni la raza, ni el género ni la edad tienen efectos significativos. Sin embargo, para asegurarnos, calculamos la diferencia en las probabilidades predichas de ser liberado entre un hombre blanco de 20 años y una mujer negra de 50 años, dos perfiles que, intuitivamente, podrían mostrar diferencias importantes en sus probabilidades predichas de liberación.
# Cargar las librerías necesarias
library (tidyverse)
library (carData)
library (modelr)
# Cargar el conjunto de datos
data_arrest <- carData:: Arrests
# Ajustamos un modelo de regresión logística
model <- glm (released ~ factor (colour)* factor (sex) + age, family = "binomial" , data = data_arrest)
summary (model)
Call:
glm(formula = released ~ factor(colour) * factor(sex) + age,
family = "binomial", data = data_arrest)
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.771263 0.324456 5.459 4.78e-08 ***
factor(colour)White 0.338268 0.342260 0.988 0.3230
factor(sex)Male -0.477203 0.313439 -1.522 0.1279
age -0.010561 0.004293 -2.460 0.0139 *
factor(colour)White:factor(sex)Male 0.412023 0.351676 1.172 0.2414
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
(Dispersion parameter for binomial family taken to be 1)
Null deviance: 4776.3 on 5225 degrees of freedom
Residual deviance: 4680.8 on 5221 degrees of freedom
AIC: 4690.8
Number of Fisher Scoring iterations: 4
Dado que la distribución muestral de esta diferencia es compleja, utilizaremos el método de Bootstrap para hacer inferencia estadística y estimar un intervalo de confianza para la diferencia en las probabilidades predichas.
Código
# Inicializar el vector para almacenar resultados de Bootstrap
results <- NULL
# Iterar 1000 veces para realizar el Bootstrap
for (i in 1 : 1000 ) {
# Cargar el conjunto de datos
data_arrest <- carData:: Arrests
# Realizar una muestra aleatoria con reemplazo del mismo tamaño que el conjunto original
data_bs <- sample_n (data_arrest, size= nrow (data_arrest), replace = T)
# Ajustar un modelo de regresión logística con las variables deseadas
model <- glm (released ~ factor (colour)* factor (sex) + age, family = "binomial" , data = data_bs)
# Crear nuevos puntos de datos para la predicción
newx_mnv <- data_grid (colour= "Black" , sex= "Female" , age= 50 , data= data_arrest)
pred_mnv <- predict (model, newdata = newx_mnv, type = "response" )
newx_hbj <- data_grid (colour= "White" , sex= "Male" , age= 20 , data= data_arrest)
pred_hbj <- predict (model, newdata = newx_hbj, type = "response" )
# Calcular la diferencia entre las probabilidades predichas
diff_p <- pred_hbj - pred_mnv
# Imprimir la iteración actual para seguimiento
cat ("iter=" ,i," \n " )
# Almacenar el resultado
results[i] <- diff_p
}
iter= 1
iter= 2
iter= 3
iter= 4
iter= 5
iter= 6
iter= 7
iter= 8
iter= 9
iter= 10
iter= 11
iter= 12
iter= 13
iter= 14
iter= 15
iter= 16
iter= 17
iter= 18
iter= 19
iter= 20
iter= 21
iter= 22
iter= 23
iter= 24
iter= 25
iter= 26
iter= 27
iter= 28
iter= 29
iter= 30
iter= 31
iter= 32
iter= 33
iter= 34
iter= 35
iter= 36
iter= 37
iter= 38
iter= 39
iter= 40
iter= 41
iter= 42
iter= 43
iter= 44
iter= 45
iter= 46
iter= 47
iter= 48
iter= 49
iter= 50
iter= 51
iter= 52
iter= 53
iter= 54
iter= 55
iter= 56
iter= 57
iter= 58
iter= 59
iter= 60
iter= 61
iter= 62
iter= 63
iter= 64
iter= 65
iter= 66
iter= 67
iter= 68
iter= 69
iter= 70
iter= 71
iter= 72
iter= 73
iter= 74
iter= 75
iter= 76
iter= 77
iter= 78
iter= 79
iter= 80
iter= 81
iter= 82
iter= 83
iter= 84
iter= 85
iter= 86
iter= 87
iter= 88
iter= 89
iter= 90
iter= 91
iter= 92
iter= 93
iter= 94
iter= 95
iter= 96
iter= 97
iter= 98
iter= 99
iter= 100
iter= 101
iter= 102
iter= 103
iter= 104
iter= 105
iter= 106
iter= 107
iter= 108
iter= 109
iter= 110
iter= 111
iter= 112
iter= 113
iter= 114
iter= 115
iter= 116
iter= 117
iter= 118
iter= 119
iter= 120
iter= 121
iter= 122
iter= 123
iter= 124
iter= 125
iter= 126
iter= 127
iter= 128
iter= 129
iter= 130
iter= 131
iter= 132
iter= 133
iter= 134
iter= 135
iter= 136
iter= 137
iter= 138
iter= 139
iter= 140
iter= 141
iter= 142
iter= 143
iter= 144
iter= 145
iter= 146
iter= 147
iter= 148
iter= 149
iter= 150
iter= 151
iter= 152
iter= 153
iter= 154
iter= 155
iter= 156
iter= 157
iter= 158
iter= 159
iter= 160
iter= 161
iter= 162
iter= 163
iter= 164
iter= 165
iter= 166
iter= 167
iter= 168
iter= 169
iter= 170
iter= 171
iter= 172
iter= 173
iter= 174
iter= 175
iter= 176
iter= 177
iter= 178
iter= 179
iter= 180
iter= 181
iter= 182
iter= 183
iter= 184
iter= 185
iter= 186
iter= 187
iter= 188
iter= 189
iter= 190
iter= 191
iter= 192
iter= 193
iter= 194
iter= 195
iter= 196
iter= 197
iter= 198
iter= 199
iter= 200
iter= 201
iter= 202
iter= 203
iter= 204
iter= 205
iter= 206
iter= 207
iter= 208
iter= 209
iter= 210
iter= 211
iter= 212
iter= 213
iter= 214
iter= 215
iter= 216
iter= 217
iter= 218
iter= 219
iter= 220
iter= 221
iter= 222
iter= 223
iter= 224
iter= 225
iter= 226
iter= 227
iter= 228
iter= 229
iter= 230
iter= 231
iter= 232
iter= 233
iter= 234
iter= 235
iter= 236
iter= 237
iter= 238
iter= 239
iter= 240
iter= 241
iter= 242
iter= 243
iter= 244
iter= 245
iter= 246
iter= 247
iter= 248
iter= 249
iter= 250
iter= 251
iter= 252
iter= 253
iter= 254
iter= 255
iter= 256
iter= 257
iter= 258
iter= 259
iter= 260
iter= 261
iter= 262
iter= 263
iter= 264
iter= 265
iter= 266
iter= 267
iter= 268
iter= 269
iter= 270
iter= 271
iter= 272
iter= 273
iter= 274
iter= 275
iter= 276
iter= 277
iter= 278
iter= 279
iter= 280
iter= 281
iter= 282
iter= 283
iter= 284
iter= 285
iter= 286
iter= 287
iter= 288
iter= 289
iter= 290
iter= 291
iter= 292
iter= 293
iter= 294
iter= 295
iter= 296
iter= 297
iter= 298
iter= 299
iter= 300
iter= 301
iter= 302
iter= 303
iter= 304
iter= 305
iter= 306
iter= 307
iter= 308
iter= 309
iter= 310
iter= 311
iter= 312
iter= 313
iter= 314
iter= 315
iter= 316
iter= 317
iter= 318
iter= 319
iter= 320
iter= 321
iter= 322
iter= 323
iter= 324
iter= 325
iter= 326
iter= 327
iter= 328
iter= 329
iter= 330
iter= 331
iter= 332
iter= 333
iter= 334
iter= 335
iter= 336
iter= 337
iter= 338
iter= 339
iter= 340
iter= 341
iter= 342
iter= 343
iter= 344
iter= 345
iter= 346
iter= 347
iter= 348
iter= 349
iter= 350
iter= 351
iter= 352
iter= 353
iter= 354
iter= 355
iter= 356
iter= 357
iter= 358
iter= 359
iter= 360
iter= 361
iter= 362
iter= 363
iter= 364
iter= 365
iter= 366
iter= 367
iter= 368
iter= 369
iter= 370
iter= 371
iter= 372
iter= 373
iter= 374
iter= 375
iter= 376
iter= 377
iter= 378
iter= 379
iter= 380
iter= 381
iter= 382
iter= 383
iter= 384
iter= 385
iter= 386
iter= 387
iter= 388
iter= 389
iter= 390
iter= 391
iter= 392
iter= 393
iter= 394
iter= 395
iter= 396
iter= 397
iter= 398
iter= 399
iter= 400
iter= 401
iter= 402
iter= 403
iter= 404
iter= 405
iter= 406
iter= 407
iter= 408
iter= 409
iter= 410
iter= 411
iter= 412
iter= 413
iter= 414
iter= 415
iter= 416
iter= 417
iter= 418
iter= 419
iter= 420
iter= 421
iter= 422
iter= 423
iter= 424
iter= 425
iter= 426
iter= 427
iter= 428
iter= 429
iter= 430
iter= 431
iter= 432
iter= 433
iter= 434
iter= 435
iter= 436
iter= 437
iter= 438
iter= 439
iter= 440
iter= 441
iter= 442
iter= 443
iter= 444
iter= 445
iter= 446
iter= 447
iter= 448
iter= 449
iter= 450
iter= 451
iter= 452
iter= 453
iter= 454
iter= 455
iter= 456
iter= 457
iter= 458
iter= 459
iter= 460
iter= 461
iter= 462
iter= 463
iter= 464
iter= 465
iter= 466
iter= 467
iter= 468
iter= 469
iter= 470
iter= 471
iter= 472
iter= 473
iter= 474
iter= 475
iter= 476
iter= 477
iter= 478
iter= 479
iter= 480
iter= 481
iter= 482
iter= 483
iter= 484
iter= 485
iter= 486
iter= 487
iter= 488
iter= 489
iter= 490
iter= 491
iter= 492
iter= 493
iter= 494
iter= 495
iter= 496
iter= 497
iter= 498
iter= 499
iter= 500
iter= 501
iter= 502
iter= 503
iter= 504
iter= 505
iter= 506
iter= 507
iter= 508
iter= 509
iter= 510
iter= 511
iter= 512
iter= 513
iter= 514
iter= 515
iter= 516
iter= 517
iter= 518
iter= 519
iter= 520
iter= 521
iter= 522
iter= 523
iter= 524
iter= 525
iter= 526
iter= 527
iter= 528
iter= 529
iter= 530
iter= 531
iter= 532
iter= 533
iter= 534
iter= 535
iter= 536
iter= 537
iter= 538
iter= 539
iter= 540
iter= 541
iter= 542
iter= 543
iter= 544
iter= 545
iter= 546
iter= 547
iter= 548
iter= 549
iter= 550
iter= 551
iter= 552
iter= 553
iter= 554
iter= 555
iter= 556
iter= 557
iter= 558
iter= 559
iter= 560
iter= 561
iter= 562
iter= 563
iter= 564
iter= 565
iter= 566
iter= 567
iter= 568
iter= 569
iter= 570
iter= 571
iter= 572
iter= 573
iter= 574
iter= 575
iter= 576
iter= 577
iter= 578
iter= 579
iter= 580
iter= 581
iter= 582
iter= 583
iter= 584
iter= 585
iter= 586
iter= 587
iter= 588
iter= 589
iter= 590
iter= 591
iter= 592
iter= 593
iter= 594
iter= 595
iter= 596
iter= 597
iter= 598
iter= 599
iter= 600
iter= 601
iter= 602
iter= 603
iter= 604
iter= 605
iter= 606
iter= 607
iter= 608
iter= 609
iter= 610
iter= 611
iter= 612
iter= 613
iter= 614
iter= 615
iter= 616
iter= 617
iter= 618
iter= 619
iter= 620
iter= 621
iter= 622
iter= 623
iter= 624
iter= 625
iter= 626
iter= 627
iter= 628
iter= 629
iter= 630
iter= 631
iter= 632
iter= 633
iter= 634
iter= 635
iter= 636
iter= 637
iter= 638
iter= 639
iter= 640
iter= 641
iter= 642
iter= 643
iter= 644
iter= 645
iter= 646
iter= 647
iter= 648
iter= 649
iter= 650
iter= 651
iter= 652
iter= 653
iter= 654
iter= 655
iter= 656
iter= 657
iter= 658
iter= 659
iter= 660
iter= 661
iter= 662
iter= 663
iter= 664
iter= 665
iter= 666
iter= 667
iter= 668
iter= 669
iter= 670
iter= 671
iter= 672
iter= 673
iter= 674
iter= 675
iter= 676
iter= 677
iter= 678
iter= 679
iter= 680
iter= 681
iter= 682
iter= 683
iter= 684
iter= 685
iter= 686
iter= 687
iter= 688
iter= 689
iter= 690
iter= 691
iter= 692
iter= 693
iter= 694
iter= 695
iter= 696
iter= 697
iter= 698
iter= 699
iter= 700
iter= 701
iter= 702
iter= 703
iter= 704
iter= 705
iter= 706
iter= 707
iter= 708
iter= 709
iter= 710
iter= 711
iter= 712
iter= 713
iter= 714
iter= 715
iter= 716
iter= 717
iter= 718
iter= 719
iter= 720
iter= 721
iter= 722
iter= 723
iter= 724
iter= 725
iter= 726
iter= 727
iter= 728
iter= 729
iter= 730
iter= 731
iter= 732
iter= 733
iter= 734
iter= 735
iter= 736
iter= 737
iter= 738
iter= 739
iter= 740
iter= 741
iter= 742
iter= 743
iter= 744
iter= 745
iter= 746
iter= 747
iter= 748
iter= 749
iter= 750
iter= 751
iter= 752
iter= 753
iter= 754
iter= 755
iter= 756
iter= 757
iter= 758
iter= 759
iter= 760
iter= 761
iter= 762
iter= 763
iter= 764
iter= 765
iter= 766
iter= 767
iter= 768
iter= 769
iter= 770
iter= 771
iter= 772
iter= 773
iter= 774
iter= 775
iter= 776
iter= 777
iter= 778
iter= 779
iter= 780
iter= 781
iter= 782
iter= 783
iter= 784
iter= 785
iter= 786
iter= 787
iter= 788
iter= 789
iter= 790
iter= 791
iter= 792
iter= 793
iter= 794
iter= 795
iter= 796
iter= 797
iter= 798
iter= 799
iter= 800
iter= 801
iter= 802
iter= 803
iter= 804
iter= 805
iter= 806
iter= 807
iter= 808
iter= 809
iter= 810
iter= 811
iter= 812
iter= 813
iter= 814
iter= 815
iter= 816
iter= 817
iter= 818
iter= 819
iter= 820
iter= 821
iter= 822
iter= 823
iter= 824
iter= 825
iter= 826
iter= 827
iter= 828
iter= 829
iter= 830
iter= 831
iter= 832
iter= 833
iter= 834
iter= 835
iter= 836
iter= 837
iter= 838
iter= 839
iter= 840
iter= 841
iter= 842
iter= 843
iter= 844
iter= 845
iter= 846
iter= 847
iter= 848
iter= 849
iter= 850
iter= 851
iter= 852
iter= 853
iter= 854
iter= 855
iter= 856
iter= 857
iter= 858
iter= 859
iter= 860
iter= 861
iter= 862
iter= 863
iter= 864
iter= 865
iter= 866
iter= 867
iter= 868
iter= 869
iter= 870
iter= 871
iter= 872
iter= 873
iter= 874
iter= 875
iter= 876
iter= 877
iter= 878
iter= 879
iter= 880
iter= 881
iter= 882
iter= 883
iter= 884
iter= 885
iter= 886
iter= 887
iter= 888
iter= 889
iter= 890
iter= 891
iter= 892
iter= 893
iter= 894
iter= 895
iter= 896
iter= 897
iter= 898
iter= 899
iter= 900
iter= 901
iter= 902
iter= 903
iter= 904
iter= 905
iter= 906
iter= 907
iter= 908
iter= 909
iter= 910
iter= 911
iter= 912
iter= 913
iter= 914
iter= 915
iter= 916
iter= 917
iter= 918
iter= 919
iter= 920
iter= 921
iter= 922
iter= 923
iter= 924
iter= 925
iter= 926
iter= 927
iter= 928
iter= 929
iter= 930
iter= 931
iter= 932
iter= 933
iter= 934
iter= 935
iter= 936
iter= 937
iter= 938
iter= 939
iter= 940
iter= 941
iter= 942
iter= 943
iter= 944
iter= 945
iter= 946
iter= 947
iter= 948
iter= 949
iter= 950
iter= 951
iter= 952
iter= 953
iter= 954
iter= 955
iter= 956
iter= 957
iter= 958
iter= 959
iter= 960
iter= 961
iter= 962
iter= 963
iter= 964
iter= 965
iter= 966
iter= 967
iter= 968
iter= 969
iter= 970
iter= 971
iter= 972
iter= 973
iter= 974
iter= 975
iter= 976
iter= 977
iter= 978
iter= 979
iter= 980
iter= 981
iter= 982
iter= 983
iter= 984
iter= 985
iter= 986
iter= 987
iter= 988
iter= 989
iter= 990
iter= 991
iter= 992
iter= 993
iter= 994
iter= 995
iter= 996
iter= 997
iter= 998
iter= 999
iter= 1000
# Visualizar la distribución de las diferencias en probabilidad
hist (results, main= "Distribución de la diferencia en probabilidades predichas" , xlab= "Diferencia en probabilidades" )
# Calcular el intervalo de confianza al 95% para la diferencia en probabilidades
quantile (results, p= c (0.025 , 0.975 ))
2.5% 97.5%
-0.02481977 0.20492533
El resultados indica que, al 95% de confianza, no existe una diferencia significativa entre la probabilidad de ser liberada entre una mujer negra de 50 años y un hombre blanco de 20 años.