Professional Documents
Culture Documents
Lliurament 5 Econometria 2022-2023 Resolt
Lliurament 5 Econometria 2022-2023 Resolt
Assignatura: Econometria
Estudis: Economia
Curs 2022-2023
Març 2023
2
Ara be, a diferència del primer quadrimestre, on utilitzàvem dades ecològiques (a nivell de
les àrees bàsiques de salut de Catalunya), en aquest quadrimestre utilitzarem dades
individuals. Utilitzarem una base de dades que conté informació de 11.447 subjectes
residents a una ciutat de Colòmbia, entre el 13 de març de 2020 i el 11 de maig de 2022.
setwd("C/Cursos/Econometria 2022-2023")
library(haven)
datos=read_sav("Data_vaccination_individual.sav")
Per a conservar les etiquetes dels valors de les variables qualitatives, utilitzarem les
següents instruccions
library(rio)
datos= factorize(datos)
attach(datos)
Expo
Explorarem les dades.
class(datos)
[1] "tbl_df" "tbl" "data.frame"
names(datos)
Expo
Veiem que datos es un objecte tipus data.frame que conté les següents variables:
• id: identificador del subjecte
• vacunado: Si el subjecte té alguna dosi de vacuna contra la COVID-19 (0 No, 1 Sí)
• pauta_completa: Si el subjecte té pauta completa (dos dosis o dosis única) de la
vacuna contra la COVID-19 (0 No, 1 Sí)
• ultima_dosis: Última dosis de vacuna contra la COVID-19 (0 no vacunat; 1 una dosi;
2 dos dosis o dosis única; 3 tres dosis – una de reforç-; 4 quatre dosis – dues de reforç-)
• refuerzo: Si el subjecte ha rebut la 3era o 4 dosi de reforç (1 sí, 0 no)
• nombre_vacuna: Nom de la vacuna – darrera dosi (0 no vacunado: 1 Astra
Zeneca; 2 Janssen; 3 Moderna; 4 Pfizer; 5 Sinovac)
• Sexo: 0 Home, 1 Dona
• edad: Edat del subjecte al maig de 2022
• edad_cat: Grups d’edat (0 75 anys o més; 1 65 a 74 anys; 2 55 a 64 anys; 3 45 a 54
anys; 4 35 a 44 anys; 5 25 a 34 anys; 6 15 a 24 anys; 7 menys de 15 anys)
• etnia: 1 Blanc; 2 Afrocolombià; 3 gitano-rom; 4 Altres (Palenquer, Raizal, indígena)
4
Per estimar aquesta probabilitat utilitzarem dos models: el model lineal de probabilitat i el
model de regressió logística.
Començarem estimant el model lineal de probabilitat i veurem les limitacions que aquest
presenta. Per tal de superar aquestes limitacions, es poden utilitzar diversos models d’elecció
binària. El que veurem en aquest lliurament es coneix com a model de regressió logística.
Utilitzarem com a variable dependent, una variable dicotòmica que prendrà el valor 1 si el
subjecte va prendre la pauta completa i 0 en cas contrari. Com a variables explicatives
utilitzarem el sexe de l’individu, sexoi; el grup d’edat de l’individu, edat_cati; la seva ètnia,
etniai; la seva ocupació, Ocupacioni; el tipus d’assegurança, Tipo_seguroi; la seva classe
social, estratoi; i les comorbiditats, Comorbilidadesi.
setwd("C/Cursos/Econometria 2021-2022")
Importarem les dades. Fixeu-vos que el fitxer (base de dades Dades_cohort.sav) està en
format SPSS.
library(haven)
datos=read_sav("Data_vaccination_individual.sav")
attach(datos)
library(descr)
library(RcmdrMisc)
library(rio)
Per a conservar les etiquetes dels valors de les variables qualitatives, utilitzarem la següent
instrucció.
datos=factorize(datos)
options(contrasts=c("contr.treatment","contr.poly"))
6
mlp=lm(pauta_completa~Sexo+factor(edad_cat)+factor(etnia)+
factor(Ocupacion)+factor(Tipo_seguro)+ factor(estrato)+Comorbilidades,
na.action=na.exclude)
summary(mlp)
Residuals:
Min 1Q Median 3Q Max
-1.00002 0.07382 0.12692 0.17317 0.46419
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.7488516 0.0539566 13.879 < 2e-16 ***
Sexo 0.0045806 0.0111091 0.412 0.68012
factor(edad_cat)1 0.0909174 0.0324996 2.797 0.00517 **
factor(edad_cat)2 0.0616998 0.0298145 2.069 0.03857 *
factor(edad_cat)3 0.0397346 0.0297949 1.334 0.18241
factor(edad_cat)4 0.0273423 0.0295262 0.926 0.35448
factor(edad_cat)5 -0.0006454 0.0294624 -0.022 0.98252
factor(edad_cat)6 -0.0168908 0.0307868 -0.549 0.58328
factor(edad_cat)7 -0.1078432 0.0392354 -2.749 0.00601 **
factor(etnia)2 -0.0185746 0.0619434 -0.300 0.76430
factor(etnia)3 -0.0613555 0.0764547 -0.803 0.42231
factor(etnia)4 0.1473308 0.1429446 1.031 0.30275
factor(etnia)5 -0.3343275 0.2468764 -1.354 0.17574
factor(Ocupacion)1 -0.0181309 0.0442728 -0.410 0.68217
factor(Ocupacion)2 0.0842219 0.0194952 4.320 1.6e-05 ***
factor(Ocupacion)3 0.0574137 0.0270350 2.124 0.03376 *
factor(Ocupacion)4 0.0251715 0.0222012 1.134 0.25695
factor(Ocupacion)5 0.0585824 0.0273613 2.141 0.03233 *
factor(Ocupacion)6 0.1564143 0.1561257 1.002 0.31648
factor(Ocupacion)7 0.1426369 0.0732365 1.948 0.05153 .
factor(Ocupacion)9 -0.0267738 0.0688135 -0.389 0.69724
factor(Ocupacion)10 -0.0611804 0.0547715 -1.117 0.26405
factor(Ocupacion)11 0.0003393 0.0150850 0.022 0.98205
factor(Ocupacion)12 0.0567765 0.0633171 0.897 0.36993
factor(Ocupacion)13 -0.3796698 0.2462064 -1.542 0.12313
factor(Ocupacion)14 -0.2790229 0.2463941 -1.132 0.25752
factor(Ocupacion)16 0.1923616 0.2011106 0.956 0.33888
factor(Tipo_seguro)1 0.0528615 0.0599454 0.882 0.37792
factor(Tipo_seguro)2 0.0445122 0.0449873 0.989 0.32251
factor(estrato)2 -0.0157864 0.0190136 -0.830 0.40644
factor(estrato)3 0.0295314 0.0179662 1.644 0.10031
factor(estrato)4 0.0492435 0.0222343 2.215 0.02683 *
factor(estrato)5 0.0411141 0.0228441 1.800 0.07197 .
factor(estrato)6 0.0314806 0.0366705 0.858 0.39068
Comorbilidades 0.0266200 0.0142668 1.866 0.06213 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
2) Feu l’anàlisi residual del model anterior i expliqueu quines són les limitacions que
observeu.
El MLP presenta algunes limitacions.
qqnorm(rstandard(mlp))
qqline(rstandard(mlp))
plot(fitted(mlp),(residuals(mlp)/0.3475)^2)
8
Sabem que la variància no és constant, sinó que val 𝜋! (1 − 𝜋! ). Això fa innecessari fer cap
contrast d’homoscedasticitat.
No obstant, el problema més important és que res assegura que la probabilitat (el valor
ajustat pel model, (𝑦'! = 𝜋'! ) es trobi en l’interval [0,1]). Això ho podem veure en el següent
gràfic dels valors ajustats on hem afegit dues línies horitzontals per als valors 0 (h=0) i 1
(h=1).
plot(fitted(mlp),xlab="",ylab="Probabilitat", col=4)
abline(h=0,col=3)
abline(h=1,col=3)
9
3) Per tal de superar les limitacions del MLP, estimeu un nou model, és a dir, estimeu
un model de regressió logística, que tindrà com a variables explicatives les que hem
introduït en el model anterior.
logit=glm(pauta_completa~Sexo+factor(edad_cat)+factor(etnia)+
factor(Ocupacion)+ factor(Tipo_seguro)+ factor(estrato)+Comorbilidades
, family=binomial, na.action=na.exclude)
summary(logit)
glm indica una família de models lineals generalitzats de la qual el model lògit forma part i
family=binomial indica que volem específicament el model lògit.
10
Deviance Residuals:
Min 1Q Median 3Q Max
-2.5575 0.3915 0.5039 0.6162 1.0324
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 0.941955 0.415708 2.266 0.02346 *
Sexo 0.033414 0.092053 0.363 0.71661
factor(edad_cat)1 0.900222 0.295161 3.050 0.00229 **
factor(edad_cat)2 0.562579 0.247860 2.270 0.02322 *
factor(edad_cat)3 0.350500 0.241909 1.449 0.14737
factor(edad_cat)4 0.242595 0.237530 1.021 0.30710
factor(edad_cat)5 0.016322 0.233766 0.070 0.94434
factor(edad_cat)6 -0.084310 0.240942 -0.350 0.72640
factor(edad_cat)7 -0.574009 0.279403 -2.054 0.03994 *
factor(etnia)2 -0.157960 0.498025 -0.317 0.75111
factor(etnia)3 -0.511799 0.571572 -0.895 0.37056
factor(etnia)4 13.777627 585.245412 0.024 0.98122
factor(etnia)5 -1.634890 1.452536 -1.126 0.26036
factor(Ocupacion)1 -0.138842 0.343018 -0.405 0.68565
factor(Ocupacion)2 0.878894 0.204955 4.288 1.8e-05 ***
factor(Ocupacion)3 0.511936 0.249481 2.052 0.04017 *
factor(Ocupacion)4 0.202653 0.183953 1.102 0.27061
factor(Ocupacion)5 0.558178 0.266236 2.097 0.03603 *
factor(Ocupacion)6 13.878213 644.165136 0.022 0.98281
factor(Ocupacion)7 13.769389 298.306159 0.046 0.96318
factor(Ocupacion)9 -0.172056 0.507835 -0.339 0.73476
factor(Ocupacion)10 -0.426760 0.390166 -1.094 0.27405
factor(Ocupacion)11 0.001294 0.120624 0.011 0.99144
factor(Ocupacion)12 0.474118 0.558820 0.848 0.39620
factor(Ocupacion)13 -2.103893 1.443971 -1.457 0.14511
factor(Ocupacion)14 -1.314563 1.442470 -0.911 0.36212
factor(Ocupacion)16 14.138912 837.106021 0.017 0.98652
factor(Tipo_seguro)1 0.391345 0.483526 0.809 0.41831
factor(Tipo_seguro)2 0.327358 0.344186 0.951 0.34155
factor(estrato)2 -0.112997 0.147144 -0.768 0.44253
factor(estrato)3 0.234846 0.144401 1.626 0.10388
factor(estrato)4 0.428882 0.190917 2.246 0.02468 *
factor(estrato)5 0.346512 0.193280 1.793 0.07300 .
factor(estrato)6 0.265259 0.309459 0.857 0.39135
Comorbilidades 0.252527 0.129680 1.947 0.05150 .
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Validarem el model mitjançant l’anàlisi dels residus amb la instrucció plot(logit). Per
més comoditat, la instrucció par(mfrow=c(2,2)) fa que en una mateixa finestra
apareguin dues fileres i dues columnes de gràfics. Quan la variable dependent és dicotòmica,
el gràfic dels residus mostra una forma característica: els punts s’agrupen al voltant de dues
corbes corresponents a les categories 0 i 1.
11
El primer gràfic conté els residus deviance contra els valors ajustats. Si en aquest gràfic
no observéssim dues línies paral·leles i/o aquestes tinguessin una curvatura sistemàtica, el
model podria presentar importants errors d’especificació.
par(mfrow=c(2,2))
plot(logit)
par(mfrow=c(1,1))
En el nostre cas, el model sembla que presenta errors d’especificació. El gràfic inferior
esquerra presenta dues línies que no es creuen, evidenciant que aquests errors
d’especificació es manifesten com heteroscedasticitat. El gràfic probabilístic normal del
residus sol presentar curvatures sense que això representi cap problema. Tanmateix, permet
apreciar la presència de valors atípics, quan n’hi ha, cosa que no succeeix en el nostre cas.
El darrer gràfic mostra els valors influents. El que són més prop de les cantonades superior
dreta e inferior esquerra de la frontera que marquen unes línies discontínues són les que
tenen la distància de Cook preocupant, més gran que 0,5 o que 1. En el nostre cas, no
sembla que hi hagi valors preocupants influents.
5) Calculeu el pseudo R2 del model anterior i comenteu-lo.
1-(logit$deviance/logit$null.deviance)
12
Els pseudo-R2, malgrat no tenir una cota superior, sí que tenen una inferior (el zero). En
aquest cas, com que està molt proper d’aquesta es podria interpretar com que faltarien
variables explicatives, segurament rellevants (veure exercici 4).
G=logit$null.deviance-logit$deviance
G
131.1611
1-pchisq(G,34)
4.851675e-13
Com esperàvem, doncs aquest contrast té molt poca potència, es rebutja la hipòtesi nul·la i
el model és conjuntament significatiu.
OR.table<-exp(cbind(coef(logit),confint(logit)))
colnames(OR.table)<-c("OR","limit_inf","limit_sup")
OR.table
13
OR limit_inf limit_sup
(Intercept) 2.564991e+00 1.168575e+00 6.0160501
Sexo 1.033979e+00 8.627954e-01 1.2378885
factor(edad_cat)1 2.460150e+00 1.383005e+00 4.4219600
factor(edad_cat)2 1.755193e+00 1.069424e+00 2.8339720
factor(edad_cat)3 1.419778e+00 8.738208e-01 2.2617055
factor(edad_cat)4 1.274552e+00 7.902469e-01 2.0102784
factor(edad_cat)5 1.016456e+00 6.343957e-01 1.5901265
factor(edad_cat)6 9.191467e-01 5.663828e-01 1.4601953
factor(edad_cat)7 5.632628e-01 3.237347e-01 0.9707525
factor(etnia)2 8.538836e-01 3.490475e-01 2.5627211
factor(etnia)3 5.994160e-01 2.135592e-01 2.1318970
factor(etnia)4 9.628249e+05 4.211637e-19 NA
factor(etnia)5 1.949739e-01 7.355446e-03 5.2043101
factor(Ocupacion)1 8.703657e-01 4.611469e-01 1.7919226
factor(Ocupacion)2 2.408234e+00 1.636502e+00 3.6642891
factor(Ocupacion)3 1.668518e+00 1.047060e+00 2.7979141
factor(Ocupacion)4 1.224647e+00 8.624903e-01 1.7768343
factor(Ocupacion)5 1.747486e+00 1.066362e+00 3.0471305
factor(Ocupacion)6 1.064710e+06 9.498774e-24 NA
factor(Ocupacion)7 9.549263e+05 7.076386e-02 NA
factor(Ocupacion)9 8.419316e-01 3.353651e-01 2.5622502
factor(Ocupacion)10 6.526203e-01 3.161258e-01 1.4852674
factor(Ocupacion)11 1.001295e+00 7.921349e-01 1.2714478
factor(Ocupacion)12 1.606597e+00 5.718018e-01 5.3066072
factor(Ocupacion)13 1.219806e-01 4.632002e-03 3.2024719
factor(Ocupacion)14 2.685917e-01 1.023884e-02 7.0494307
factor(Ocupacion)16 1.381820e+06 5.154009e-42 NA
factor(Tipo_seguro)1 1.478969e+00 5.686865e-01 3.8455339
factor(Tipo_seguro)2 1.387299e+00 6.725814e-01 2.6258997
factor(estrato)2 8.931537e-01 6.669298e-01 1.1880818
factor(estrato)3 1.264714e+00 9.492224e-01 1.6728808
factor(estrato)4 1.535540e+00 1.058999e+00 2.2412281
factor(estrato)5 1.414127e+00 9.711116e-01 2.0744806
factor(estrato)6 1.303769e+00 7.286795e-01 2.4695958
Comorbilidades 1.287274e+00 1.002586e+00 1.6676710
logit=glm(y~numero_malalties_croniques+sexe+factor(edat_quartils)+log(
Renda_mitjana_per_persona_secció_censal)+factor(copagament_farmacia)+f
actor(rural), family=binomial,na.action=na.exclude)
logitr=glm(pauta_completa~factor(edad_cat)+factor(Ocupacion)+
factor(estrato)+Comorbilidades, family=binomial, na.action=na.exclude)
summary(logitr)
Call:
glm(formula = pauta_completa ~ factor(edad_cat) + factor(Ocupacion) +
factor(estrato) + Comorbilidades, family = binomial, na.action = na.exclude)
Deviance Residuals:
Min 1Q Median 3Q Max
-2.5286 0.3956 0.4956 0.5924 1.0297
Coefficients:
Estimate Std. Error z value Pr(>|z|)
(Intercept) 1.56982 0.23529 6.672 2.53e-11 ***
factor(edad_cat)1 0.72334 0.28811 2.511 0.01205 *
factor(edad_cat)2 0.29437 0.23881 1.233 0.21771
factor(edad_cat)3 0.13587 0.23340 0.582 0.56046
factor(edad_cat)4 0.01513 0.22807 0.066 0.94712
factor(edad_cat)5 -0.21508 0.22479 -0.957 0.33865
factor(edad_cat)6 -0.32411 0.23205 -1.397 0.16249
factor(edad_cat)7 -0.84458 0.26436 -3.195 0.00140 **
factor(Ocupacion)1 -0.21665 0.34101 -0.635 0.52522
factor(Ocupacion)2 0.77351 0.19475 3.972 7.13e-05 ***
factor(Ocupacion)3 0.41378 0.23694 1.746 0.08075 .
factor(Ocupacion)4 0.19728 0.18134 1.088 0.27664
factor(Ocupacion)5 0.59485 0.26312 2.261 0.02378 *
factor(Ocupacion)6 13.79118 642.22260 0.021 0.98287
factor(Ocupacion)7 13.68396 293.61073 0.047 0.96283
factor(Ocupacion)9 -0.24501 0.50605 -0.484 0.62827
factor(Ocupacion)10 -0.61325 0.35465 -1.729 0.08378 .
factor(Ocupacion)11 -0.03814 0.11518 -0.331 0.74056
factor(Ocupacion)12 0.54292 0.48142 1.128 0.25943
factor(Ocupacion)13 -2.10466 1.44379 -1.458 0.14491
factor(Ocupacion)14 -1.38196 1.45480 -0.950 0.34215
factor(Ocupacion)16 13.96156 722.46119 0.019 0.98458
factor(estrato)2 -0.11733 0.14172 -0.828 0.40774
factor(estrato)3 0.20904 0.13828 1.512 0.13061
factor(estrato)4 0.51757 0.18227 2.840 0.00452 **
factor(estrato)5 0.47489 0.18722 2.537 0.01120 *
factor(estrato)6 0.33087 0.29738 1.113 0.26587
Comorbilidades 0.16931 0.12515 1.353 0.17611
---
15
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Ara contrastarem quin del dos models és millor mitjançant un contrast de models ennierats:
G<-logitr$deviance-logit$deviance
G
1-pchisq(G,3)
> G
[1] 351.9932
> 1-pchisq(G,3)
[1] 0
És a dir, amb un 95% de confiança, podríem dir que és millor el model general.