scieee AI-readable full text Open interactive document viewer

Anàlisi de dades de panell de la Covid-19 a la Unió Europea

Roig Rodríguez, Ivette

Abstract

En aquest treball de fi de grau, s’estudia el comportament tendència de les dades de Covid-19 de la Unió Europea utilitzant eines economètriques existents que poden ser útils per entendre el seguiment d’aquesta pandèmia que ha afectat globalment. Amb l’ús de dades de panell i l’aplicació de models estadístics, l’objectiu principal d’aquest treball final és comprendre l’evolució de les morts degudes a la Covid-19 i quines han estat les variables amb més influencia durant aquests darrers anys.

Full text

Títol: Anàlisi de dades de panell de la Covid-19 a la Unió Europea Autor: Ivette Roig Rodriguez Director: Lluís Bermudez Morata Departament: Matemática Económica, Financera i Actuarial Convocatòria: Setembre 2022 : Grau en Estadística Resum En aquest treball de fi de grau, s’estudia el comportament tendència de les dades de Covid19 de la Unió Europea utilitzant eines economètriques existents que poden ser útils per entendre el seguiment d’aquesta pandèmia que ha afectat globalment. Amb l’ús de dades de panell i l’aplicació de models estadístics, l’objectiu principal d’aquest treball final és comprendre l’evolució de les morts degudes a la Covid-19 i quines han estat les variables amb més influencia durant aquests darrers anys. Resumen En este trabajo de fin de grado, se estudia el comportamiento tendencia de los datos de Covid19 de la Unión Europea utilizando herramientas econométricas existentes que pueden ser útiles para entender el seguimiento de esta pandemia que ha afectado globalmente. Con el uso de datos de panel y la aplicación de modelos estadísticos, el objetivo principal de este trabajo final es comprender la evolución de las muertes debidas a la Covid-19 y cuáles han sido las variables con mayor influencia durante estos últimos años. Summary This paper studies the trend behaviour of Covid-19 data at the European Union level using econometric tools that may be useful for understanding the behaviour of this pandemic and its effects globally. The main objective is to understand the behaviour of deaths by Covid-19 and which have been the variables with the greatest influence in recent years. The method used combines panel data and the application of statistical models. Paraules clau: Panel Data, OLS, Fixed Effect Model, Random Effects Model, heterogeneïtat, homocedasticitat, Covid-19, SARS-Cov-2, taxa exponencial i Pooling. Classificació AMS El codi principal de la Societat Americana de Matemàtiques (AMS) per a aquest treball de fi de grau és "62-07 Data analytics" degut a que es tracta principalment d’un anàlisi de dades. També, a causa de l’ús d'eines estadístiques com les regressions lineals, aquest treball de fi de grau es classificaria com a “62-J05 Linear regression”. Índex 1. Introducció 1 2. Metodologia 2 3. Marc teòric 3 3.1. Introducció al Panel Data 3 3.2. Panel data i heterogeneïtat 3 3.3. Models estadístics de Panel Data 4 4. Estudi de la base de dades 7 4.1. Captura i obtenció de les dades 7 5. Modelització 24 5.1. OLS i Pooled OLS 24 5.2. (One-Way) Fixed Effect Model 28 5.3. Two-Way Individual Effects Models 31 5.4. (One-Way) Random Effects Model 36 5.5. Selecció dels models 38 5.6. Modelització tenint en compte les vacunes contra la Covid-19 40 6. Conclusions 47 7. Bibliografia 49 8. Annex 52 8.1. Representacions gràfiques 52 8.2. Representacions gràfiques en el temps de les variables per setmana i país 56 8.3. Codi 61 1 1. Introducció Paraules com "taxa exponencial", “onada” i "aplanar la corba" han estat àmpliament citades per tot tipus de persones a les xarxes socials des de l'esclat de la pandèmia causada pel COVID-19. Aquest esdeveniment històric comença al desembre del 2019 quan nombrosos casos de pneumònia d’origen desconegut van sortir a la ciutat de Wuhan, China. Més tard, al gener del 2020 es va identificar que aquest síndrome respiratori era causat pel nou coronavirus o també conegut com a SARS-Cov-2 (COVID-19, s.f.). Des de principis del 2020, el que va començar com a un virus llunyà i que només afectava a la gent gran, va passar a convertir-se en una nova ordre mundial on els governs de tot el món han estat actualitzant amb freqüència les seves polítiques per gestionar la propagació d’aquest virus i reduir la taxa de mortalitat amb els recursos mèdics dels que es disposa. Per tant, entendre el comportament i la tendència de la pandèmia és crucial des de la perspectiva de l'elaboració de polítiques, ja que no només ha anat deixant un llarg camí de víctimes pel camí, si no que també ha comportat un impacte negatiu econòmic molt gran. La finalitat principal d’aquest treball és investigar el comportament tendència de les dades de COVID-19 a nivell dels països de la Unió Europea i dibuixar atenció a algunes eines economètriques existents que poden ser útils per a treballs futurs. Respecte a la modelització de les dades de la COVID-19, és tot un repte ja que ens enfrontem a l’anàlisis de dades massiu canviant en el temps. El principal objectiu d’aplicar i estudiar les dades de panell és capturar l’heterogeneïtat no observable, donat que aquesta, no es pot detectar ni amb estudis de sèries temporals ni tampoc amb estudis de tall transversal. Es busca explicar l’heterogeneïtat de les morts entre països atenent a unes variables de control, és a dir, les variables explicatives, i, segons alguns models, a la tendència temporal. 2 2. Metodologia La metodologia d’aquest treball s’ha organitzat, com es pot observar en el diagrama de Gantt, de la següent manera: Taula 2.1. Representació de la metodologia en Diagrama de Gantt En primer lloc, es fa el recull de les dades de panell sobre la informació de la Covid-19 als diferents països de la Unió Europea. Es recullen les dades diàriament i setmanalment publicades a través del lloc web oficial European Centre for Disease Prevention and Control (COVID-19, s. f.). D’aquesta àmplia web, se’n fa una extracció de les bases de dades que interessen per realitzar aquest treball, i es tria el període de dos anys d’entre la setmana 12 de l'any 2020 fins a la setmana 12 de l'any 2022. Un cop feta l’extracció d’aquestes, amb l’eina de programació R, es procedeix a realitzar un primer anàlisi amb el qual s’obtindrà un primer contacte amb les dades i es procedirà a fer tots els canvis que es necessiten, així com possibles correccions per obtenir la base de dades final amb la qual es treballarà. En el cas de les dades amb les quals es treballa, són dades referents a la Covid-19 i tots els països de la Unió Europea. Per últim, s’utilitzen models de regressió de dades de panell per estudiar el comportament d’aquestes dades mencionades. L’objectiu principal és intentar explicar amb aquests models de regressió per panel data les morts que s’han produït degut a aquesta pandèmia que ha afectat mundialment. Com es pot veure en el diagrama de Gantt, l'organització d’aquest treball s’ha realitzat per setmanes, d’aquesta manera seguim un ordre i encara que sempre surten imprevistos, és una bona manera d’organitzar la feina i les tasques a fer durant la realització d’aquest treball de fi de grau. 3 3. Marc teòric 3.1. Introducció al Panel Data Les dades de panell, més conegudes com panel data, en anglès, són conjunts de dades que contenen observacions sobre diferents seccions transversals al llarg del temps. Els grups que es poden formar són molt amplis, des de països, empreses, grups demogràfics… Les dades són en format diari, setmanal, semestral i anual ja que estan recopilades de manera cronològica i amb una freqüència regular. Per una variable 𝑦𝑖𝑡 , se suposa que tenim 𝑖 = 1,...𝑁 observacions de tall transversal i 𝑡 = 1,...𝑇 observacions temporals, on 𝑖 i 𝑡 fan referència als individus i al període de temps, respectivament. Les observacions de tall transversal són tipus de dades recopilades mitjançant l’observació de molts subjectes alhora, o sense tenir en compte les diferències en el temps. Els individus poden ser: persones, empreses, regions, països, etc. Amb aquest tipus de dades es poden modelar tant comportaments comuns com individuals del grup que sigui adequat. També poden contenir molta variabilitat i es poden detectar i mesurar efectes estadístics que amb altres sèries temporals pures o dades transversals no es podria (E., 3 marzo, 2020). Dins del panel data les dades poden ser ● Balancejades: cada individu 𝑖 es observat en 𝑇 períodes (𝑇𝑖 = 𝑇 𝑝𝑒𝑟 𝑡𝑜𝑡 𝑇) ● No balancejades: cada individu 𝑖 es observat en 𝑇𝑖 períodes (𝑇𝑖 ≠ 𝑇 𝑝𝑒𝑟 𝑡𝑜𝑡 𝑇), Una altra forma de classificar els panells és depenent del número d’observacions en els talls transversals i temporals, amb els quals es pot diferenciar entre tres tipus de panel data: ● Micropanel: si es té un nombre reduït d’observacions temporals per cada individu i el nombre d’individus és molt elevat. Normalment els individus són persones o llars. ● Macropanel: si hi ha un gran nombre d'observacions temporals i pocs individus. ● Camp aleatori o random: si hi ha un gran nombre d’observacions temporals i d’individus. En conclusió, les panel data són un conjunt de dades obtingudes de diferents individus, que es recullen en intervals regulars de temps i s’ordenen cronològicament. 3.2. Panel data i heterogeneïtat Modelar dades de panell es centra en abordar probablement dependència entre les observacions de dades del mateix grup. La principal diferència entre els models amb dades de panell i els de sèries temporals és que els de dades de panell permeten l’heterogeneïtat entre grups i a més a més, introdueixen efectes individuals, com veurem més endavant. Entenem per heterogeneïtat, que els grups són diferents entre ells, és a dir, que hi ha 4 variabilitat en les dades. El contrari a l’heterogeneïtat és l’homoscedasticitat, que significa que tots els estudis mostren el mateix efecte (Siebert, M., 2019). És important destacar que hi ha tres tipus d’heterogeneïtat: • Clínica: on es diferencia entre participants, intervencions o resultats • Metodològica: on es diferencia en els dissenys d’estudi • Estadística: on varien els efectes o els resultats dels anàlisis Al llarg d’aquest treball, s’observarà l’heterogeneïtat estadística. 3.3. Models estadístics de Panel Data El modelatge d’aquestes sèries de dades de panell és l’única branca del modelatge de sèries temporals composta per metodologies específiques per la seva estructura. Respecte a la modelització d’aquestes dades, referents a la Covid-19, s’exploraran tres models: el model Pooled OLS, Fixed Effect Model i Random Effect Model. Pooled OLS El model Pooled OLS (Ordinary Least Squares) o el model de mínims quadrats ordinaris també es conegut com a model agrupat o com a model d’homogeneïtat total. És un model de regressió lineal simple, el qual ignora l’estructura del panel. Aquest model és eficient quan els termes d’error del model són homocedàstics i no estan autocorrelacionats (E. , 2020). L’homoscedasticitat és una propietat desitjable dels errors d’un model de regressió simple, ja que ens permet fer models més fiables. És el model més senzill de tots, formulat així: 𝑦𝑖𝑡 = 𝛽𝑥𝑖𝑡 + 𝛿𝑧𝑖 + 𝜖𝑖𝑡 En aquest model, s’entén per 𝑋 la representació de les característiques observades i per 𝑍 les característiques no observades. A continuació, una breu descripció de les variables que composen el model: ● 𝑥𝑖𝑡 són les característiques observables, poden ser constants per un individu al llarg del temps o poden variar al llarg de les observacions temporals ● 𝑧𝑖 són les característiques no observables, responsables de la heterogeneïtat del model ● 𝜖𝑖𝑡 és el terme d’error estocàstic Les suposicions del model OLS són gairebé les mateixes de model clàssic: ● Lineal en paràmetres ● 𝐸[𝜀𝑖𝑡|𝑥𝑖𝑡]= 0 ; ∀𝑖,𝑡 ● 𝑉𝑎𝑟(𝜀𝑖𝑡|𝑥𝑖𝑡)= 𝜎2 ; ∀𝑖,𝑡 → Homoscedasticitat 5 ● 𝐶𝑜𝑣(𝜀𝑖𝑡,𝜀𝑗𝑠|𝑥𝑖𝑡,𝑥𝑗𝑠)=0 ; ∀𝑖 = 𝑗,𝑡 ≠ 𝑠 ; ∀𝑖 ≠ 𝑗,𝑡= 𝑠 ; ∀𝑖 ≠ 𝑗,𝑡 ≠ 𝑠 → No autocorrelació ● No multicol·linealitat Aquest model també pot ser conegut com a “mínim quadrats ordinaris agrupats”, pel qual s’entén que no hi ha efectes individuals observables, és a dir, 𝑦𝛿𝑧𝑖 és constant entre els individus. Això implica que les observacions de cada grup són independents entre si. I només en aquests casos, el model es converteix en: 𝑦𝑖𝑦 = 𝛽𝑥𝑖𝑡 + 𝛼 + 𝜖𝑖𝑡 Per tant, les dades de panell es poden tractar com a un gran conjunt de dades agrupades. (One-Way) Fixed Effect Model El Fixed Effect Model o el model d’efecte fix obté diverses variacions d’una secció transversal que poden ser degudes a les característiques del que estiguem fixant. Aquest model inclou efectes no observables específics en el temps o específics de l’individu. S’assumeix que aquests efectes específics de l’individu estan correlacionats amb les característiques observades 𝑥𝑖𝑡. Aquest model es veu així: 𝑦𝑖𝑡 = 𝛽𝑥𝑖𝑡 + 𝛼𝑖 + 𝜖𝑖𝑡 Podem observar el terme 𝛼𝑖 , el qual a diferència del model anterior, aquest varia entre els individus, però és constant al llarg del temps (UPV, 2015). (One-Way) Random Effects Model En els anteriors models vistos, se suposa que 𝛼𝑖 recull els efectes no observables de cada individu que suposem constants en el temps, però el model d’efectes aleatoris o Random Effects Model es caracteritza perquè 𝛼𝑖 passa a formar part del terme error del model. És a dir, partint del model escrit en la seva forma escalar: 𝑌𝑖𝑡 = 𝑥𝑖𝑡𝛽 + 𝛼𝑖 + 𝜀𝑖𝑡 el model d’efectes aleatoris es formularia així, 𝑌𝑖𝑡 = 𝑥𝑖𝑡𝛽 + 𝑢𝑖𝑡 on el terme d’error 𝑢𝑖𝑡 és 𝑢𝑖𝑡 = 𝛼𝑖 + 𝜀𝑖𝑡 . Suposicions del model: ● El model és lineal en 𝛽 𝑌𝑖𝑡 = 𝑥𝑖𝑡𝛽 + 𝛼𝑖 + 𝜀𝑖𝑡 on 𝛼𝑖 + 𝜀𝑖𝑡 = 𝑢𝑖𝑡 𝑥𝑖𝑡 = [1 𝑋2𝑖𝑡 ...𝑋𝑘𝑖𝑡] 𝛽′ = [𝛽1 𝛽2 ... 𝛽𝑘] ● 𝐸[𝜀𝑖𝑡|𝑋𝑖,𝛼𝑖]= 0 ; ∀𝑖,𝑡 → Exogeneïtat estricta, pel que implica que 𝜀𝑖𝑡 no es correlaciona amb valors presents, passats o futurs dels regressors. Tampoc amb 𝛼𝑖. ● 𝑉𝑎𝑟(𝜀𝑖𝑡|𝑋𝑖,𝛼𝑖 )= 𝜎2 ; ∀𝑖,𝑡 → Homoscedasticitat ● 𝐶𝑜𝑣(𝜀𝑖𝑡,𝜀𝑗𝑠|𝑋𝑖,𝑋𝑗,𝛼𝑖)=0 ; ∀𝑖 = 𝑗,𝑡 ≠ 𝑠 ; ∀𝑖 ≠ 𝑗,𝑡= 𝑠 ; ∀𝑖 ≠ 𝑗,𝑡 ≠ 𝑠 → No autocorrelació ● Condicional a 𝑋𝑖 i 𝛼𝑖, s’assumeix 𝜀𝑖𝑡 ~ 𝑖.𝑖.𝑑.𝑁(0,𝜎2) 6 A més a més, totes les regressions de panel data que s’han vist fins ara, han assumit que els coeficients dels regressors són els mateixos en tots els individus. Però el model de coeficients aleatoris o Random Effects Model no té en compte aquesta suposició i introdueix efectes individuals específics a través del coeficient, per tant 𝑦𝑖𝑡 = 𝛽𝑖 𝑥𝑖𝑡 + 𝛼𝑖 +𝜖𝑖 𝑦𝑖𝑡 = (𝑏𝑖 + 𝛽) 𝑥𝑖𝑡 + (𝛼𝑖 + 𝛼) + 𝜖𝑖 𝑏𝑖 ~ 𝑁(0,𝜏2𝑖1) 𝑎𝑖 ~ 𝑁(0,𝜏2𝑖2) Aquest model introdueix efectes de pendent individuals i permet l’heteroscedasticitat a través de la variació específica dels individus 𝜏2𝑖1 i 𝜏2𝑖2 (E., 2021). Two-Way Individual Effects Models Aquest últim model és un model d’efectes fixos bidireccional, és a dir, permet tant veure els efectes específics del temps com dels individus. Amb altres paraules, és el primer model que té en compte la dependència temporal. La dependència temporal és una característica de les dades de sèrie temporal que indica que el passat afecta al futur (Pacheco, J., 2021). Com els anteriors, a partir del model lineal simple 𝑦𝑖𝑡 = 𝛼 + 𝛽𝑥𝑖𝑡+ 𝜖𝑖𝑡 aquest model bidireccional es pot representar de la següent manera 𝑦𝑖𝑡 = 𝛼 + 𝛽𝑥𝑖𝑡 + 𝜇𝑖 + 𝜆𝑡 + 𝜖𝑖𝑡 En aquest model, 𝜇𝑖 captura els efectes específics de l'individu no observables i en canvi, 𝜆𝑡 captura els efectes específics del temps no observables. 13 Tests done Gràfic 4.5. Representació gràfica dels tests realitzats en el grup 1 Gràfic 4.6. Representació gràfica dels tests realitzats en el grup 2 Gràfic 4.7. Representació gràfica dels tests realitzats en el grup 3 14 Respecte als tests realitzats per aquests països, es veu que és una variable bastant variant respecte al país. I és que, destaquen amb diferència Xipre, Liechtenstein, Malta i Eslovènia. És a dir, aquells països que més nous casos tenien, per tant, veiem una relació clara entre tests realitzats i nous casos, gràficament. Testing rate Gràfic 4.8. Representació gràfica del rati de tests realitzats en el grup 1 Gràfic 4.9. Representació gràfica del rati de tests realitzats en el grup 2 15 Gràfic 4.10. Representació gràfica del rati de tests realitzats en el grup 3 Relacionat amb l’anterior variable, es veu el rati d’aquests tests i destaquen els mateixos països, Xipre, Liechtenstein, Malta i Eslovènia. Positivity rate Gràfic 4.11. Representació gràfica del rati de positivitat en el grup 1 16 Gràfic 4.12. Representació gràfica del rati de positivitat en el grup 2 Gràfic 4.13. Representació gràfica del rati de positivitat en el grup 3 Respecte al rati de positivitat, encara es veu que els mateixos països destaquen, ja que Malta i Liechtenstein continuen destacant per la majoria. Malgrat això, s’observa en les primeres setmanes un gran pic respecte a Xipre, el qual es manté constant després i també s’observa un comportament semblant per Estònia. 17 Deaths Gràfic 4.14. Representació gràfica de les morts en el grup 1 Gràfic 4.15. Representació gràfica de les morts en el grup 2 Gràfic 4.16. Representació gràfica de les morts en el grup 3 18 Les morts és una de les variables més observades i analitzades al llarg d’aquesta pandèmia i és que, aquest virus malauradament, n’ha comportat moltes. En aquestes representacions gràfiques es veu més varietat en les dades que del que hem vist fins ara. S’observen més diferències, i es podrien destacar els països que han tingut més morts per Coronavirus, com ara Croàcia, Xipre, Estònia, Bulgària, Liechtenstein, Malta i Eslovènia. Recordar que aquestes dades són totes proporcionals a la variable població, per tant, encara que en alguns països els nombres de morts poden ser superiors que a alguns dels països darrerament esmentats, aquests, han sigut més afectats proporcionalment a la població. Hospitality occupancy Gràfic 4.17. Representació gràfica de l’ocupació en els hospitals del grup 1 Gràfic 4.18. Representació gràfica de l’ocupació en els hospitals del grup 2 19 Gràfic 4.19. Representació gràfica de l’ocupació en els hospitals del grup 3 Respecte a l’ocupació dels hospitals, aquesta variable també presenta més varietat en el temps, com es pot observar en les tres representacions gràfiques. Els països amb major ocupació als hospitals setmanalment han estat Estònia, Xipre, Croàcia, Bulgària, Lituània, Hongria, Malta i Eslovènia. ICU occupancy Gràfic 4.20. Representació gràfica de l’ocupació en les UCIs del grup 1 20 Gràfic 4.21. Representació gràfica de l’ocupació en les UCIs del grup 2 Gràfic 4.22. Representació gràfica de l’ocupació en les UCIs del grup 3 Relacionat amb l’anterior variable, els països com Xipre, Estònia, Lituània, Malta i Eslovènia, han tingut una taxa d’hospitalització a les unitats de cures intensives (UCI) major. 21 Number Doses Recieved Gràfic 4.23. Representació gràfica del nombre de dosis rebudes per país Aquesta variable, Number Doses Recieved, representa el nombre de dosis de vacuna distribuïdes pels fabricants al país durant la setmana d'informe. D’aquesta variable, falta la informació de la majoria dels països i a la representació gràfica es pot veure que Islàndia destaca amb majoria, seguit de Xipre i Estònia. First Dose, Second Dose i Third Dose Gràfic 4.24. Representació gràfica del nombre de primeres dosis rebudes per país 22 Gràfic 4.25. Representació gràfica del nombre de segones dosis rebudes per país Gràfic 4.26. Representació gràfica del nombre de terceres dosis rebudes per país Respecte a la primera, segona i tercera dosi de vacunes, representades respectivament, només disposem d’informació dels països: Àustria, Bèlgica, Bulgària, la República Txeca, Xipre, Dinamarca, Estònia, Finlàndia, França, Islàndia, Irlanda i Espanya. Aquests gràfics comencen a la setmana 50 del 2020, ja que abans no hi havia vacunes. En els tres gràfics destaca Islàndia com al país que més vacunes ha rebut, en proporció a la població, seguit de Xipre. Com s’ha comentat a l’inici de l’anàlisi, les dades estan estandarditzades per la població, és a dir, pel nombre d’habitants de cada país. És aquest el motiu pel qual es veu com països més petits tendeixen a tenir valors més alts en el gràfic. Conseqüentment, això indica que aquests països, a escala poblacional, han estat els més afectats, ja per raons socials o econòmiques o per capacitat de recursos. 29 Es torna a utilitzar el paquet plm de l’R però aquest cop amb indicant que l’efecte individual i el model within. Aquest model l’hem anomenat Country Fixed Effects, amb el qual observarem si la variable country té efectes fixos o no en les dades. La sortida del model és la següent: Taula 5.5. Model Country Fixed Effects El model mostra que totes les variables dependents són significatives, cosa que fins ara, en els anteriors models no s’havia vist. També es veu que el model omet la variable que fa referència a la població, per tant, el model no troba prou significança en aquesta variable. S’observa clarament que el model està explicat en un 79%, ja que el R-squared és 0.79, per tant, es pot assumir que està bastant ben explicat. Però, abans de treure més conclusions, cal assegurar-se de que els països causen efecte en el nostre model. Es fa utilitzant la funció plmtest(). Al realitzar aquest test al R, el p-valor suggereix la presència d’efectes del país, és a dir, de la variable country, el qual en el test és menor que 0.05, per tant, significatiu. A continuació, es calculen els estimadors per país aplicant la funció fixef de R, ja que en aquest model d’efectes fixos, cada país té el seu propi estimador en l’explicació de les dades (Fixed effects, s.f.). La següent taula mostra el canvi de deaths al llarg del temps, per país, cada cop que les variables independents augmenten una unitat. 30 Taula 5.6. Taula amb dels països de la UE i el seu coeficient corresponent Àustria 77.9540 Bèlgica -4.1132 Bulgària -82.8371 Xipre -48.6869 R. Txeca 32.1125 Dinamarca 25.0273 Estònia -35.2720 Finlàndia -5.6620 França -713.2979 Islàndia -35.6290 Irlanda -8.6436 Letònia -32.4902 Luxemburgo -29.3912 Malta -12.5552 P.Baixos 19.3128 Portugal 45.6371 Romania -61.1617 Eslovàquia -8.7905 Eslovènia -25.7625 Espanya -394.6649 Suècia 22.4201 S’observa per tant, que els països amb més afectació de cara a les morts han estat aquells amb un major estimador, és a dir, Àustria, Portugal i la República Txeca. Recordar que en el model s’ha afegit la variable referent a la població del país, doncs, aquest model està explicat en referència a la població del 2020 d’aquests. És sorprenent veure com països que semblaven ser els més afectats per la pandèmia com Espanya i França, tenen coeficients negatius. Això pot ser donat a que en relació a la població, aquests dos països són més grans i per tant, els recursos d’aquests també ho són. Malgrat això, és molt probable que aquests estimadors canviïn a l’introduir les vacunes per a frenar la Covid-19 en els models, ja que d’aquesta manera es veurà si aquestes han estat d’ajuda o no. A més dels efectes fixos per país, una altra sèrie de factors que poden estar afectant la variable dependent deaths són els efectes fixos en el temps, els quals no són específics d’un país en concret, és a dir, no són específics d’un país per individual. Per fer el model fixant el terme del temps, és a dir, year_week, el qual representa les setmanes de l'any, es pot utilitzar el mateix paquet plm, però en aquest cas es fixarà el terme del temps, és a dir, effect = time. Aquest nou model s’anomena Time Fixed Effects. Taula 5.7. Model Time Fixed Effects 31 En primer lloc, s’observa clarament en la sortida que els tests fets, és a dir, tests_done és l’única variable independent no significativa en el model d’efectes fixes del temps. Malgrat això, es pot veure que el coeficient de determinació és major, ja que en aquest cas, el model està explicat un 86,19%. Es realitza també, el plmtest en aquest nou model en l’R, i el p-valor obtingut, el qual és menor que 0.05, indica que es pot rebutjar la hipòtesi nul·la i acceptar que sí hi ha efectes fixos en el temps presents en el nostre model. En aquest model, d’efectes fixos en el temps, s’aplica la funció fixef de 𝑅 de nou, i s’observa que cada setmana té un coeficient diferent, com s’ha vist anteriorment amb els països. D’aquests coeficients, els quals es podrà trobar la sortida del codi a l’annex, s’observa que durant les primeres setmanes aquests coeficients eren majors i positius, en canvi, a les darreres, aquests coeficients van disminuint i fins i tot són negatius. Per tant, es veu una clara evolució en l’afectació de les variables a les morts des del principi d’aquest període de dos anys fins al final. En aquests dos models d’efectes fixos s’està assumint que cada variable explicativa té un sol coeficient per tots els països i un estimador diferent per cada un. Els tests realitzats ens permeten concloure que, encara agregant diferents estimadors, s’explica millor el comportament de la variable depenent quan s’estan estimant diferents coeficients per les variables explicatives. En resum, els models i els tests realitzats, permeten rebutjar la hipòtesi de que les variables explicatives tenen un efecte igual sobre els morts, per tots els països. A més a més, cada país té un coeficient diferent, com hem observat en la Taula 5.6. Ara, per a controlar d'aquests dos efectes, país i temps, es necessita estimar un model TwoWays. Aquest, és el primer model que té en compte la dependència espaciotemporal en els models. 5.3. Two-Way Individual Effects Models Com s’ha explicat anteriorment al marc teòric, aquest model bidireccional es pot representar de la següent manera: 𝑦𝑖𝑡 = 𝛼 + 𝛽𝑥𝑖𝑡 + 𝜇𝑖 + 𝜆𝑡 + 𝜖𝑖𝑡 En aquest model, 𝜇𝑖 captura els efectes específics de l'individu no observables i en canvi, 𝜆𝑡 captura els efectes específics del temps no observables. Per una base de dades com la de la Covid-19, en la qual les dades varien en espai temporal, és un model molt interessant. Veiem també que 𝜇𝑖 no varia en el temps i en canvi 𝜆𝑡 no varia entre els individus, en el nostre cas, els països de la Unió Europea. En aquest cas, es continua utilitzant el paquet plm, indicant l’efecte ‘twoways’. L’anomenem Two-Way Fixed Effects. Es pot observar la sortida del model a continuació: 32 Taula 5.8. Model Two-Way Fixed Effects Aquest model a priori sembla que estigui molt ben explicat. En primer lloc, totes les variables independents són significatives, ja que tots els p-valors són menors que 0.05. també, es veu que els efectes d’aquestes són una mica més grans, i és que al tractar-se de valors molt petits com per exemple, el efecte de la ocupació diària dels hospitals (daily_hosp_occupancy) amb un 0.08182, en l’anterior model, on es fixa només el temps era de 0.074869, per tant, la diferència és mínima, però al tractar-se de dades massives, aquests valors són tots molt propers a 0, i per tant, els canvis també són mínims. De nou, es torna a veure que les variables amb coeficient positiu són positivity_rate, daily_hosp_occupancy i daily_ICU_oocupancy, variables les quals s’han vist amb coeficients positius en altres models vistos fins ara. També, respecte el coeficient de determinació, aquest és de 0.783, per tant, la variable deaths està ben explicada pel model. A continuació, mostrem els resultats dels 3 models Country Fixed Effects, Time Fixed Effects i Two-Way Fixed Effects. Taula 5.9. Resultats d’R dels tres models 33 En primer lloc, s’observa que les variables amb més efecte explicatiu en el model són positivity_rate, daily_hosp_occupancy i daily_ICU_occupancy, ja que les 3 són les que presenten un efecte més gran i positiu en el model. Per tant, quan major sigui la taxa de positiu, i major siguin el nombre d'hospitalitzacions i d‘ingressats en unitats de cures intensives, major serà també el nombre de morts. Per últim, s’observen els coeficients de determinació dels 3 models d’efectes fixes. Es veu que el que presenta un R-squared major és el Time Fixed Effects, i per tant, el que millor està explicat, amb un 86%. També, aquest és l’únic model que no elimina la variable popData2020, la qual fa referència a la població de cada país a l’any 2020. Malgrat això, ambdós models restants també tenen un coeficient de determinació molt bo, amb un 79% i 78% per Country Fixed Effects i Two-Way Fixed Effects, respectivament. Correlació en la sèrie Per les dades de sèries temporals, s’ha d’abordar el potencial de correlació en sèrie en el terme d’error. Per tant, es provarà la correlació en sèrie amb la prova de Breusch-Godfrey (Tok.Wiki, 2020). En estadística, el test Breusch-Godfrey s’utilitza com a mitjà per validar alguns supòsits aplicats a models de regressió de sèrie de dades. Més en concret, per detectar la presència de dependència en la sèrie que no ha estat considerat dins del model proposat. El test de correlació serial de Breusch-Godfrey LM és un test d’autocorrelació en els errors i els residus estadístics en un model de regressió. S’utilitzen els errors generats al model de regressió i un test d’hipòtesis derivat d’aquest. Les hipòtesis nul·les, en aquest cas, és que no hi hagi correlació serial. El procediment d’aquest test comença amb la consideració d’una regressió lineal de qualsevol forma, per exemple: 𝑌𝑡 = 𝛽1 + 𝛽2 𝑋𝑡,1 + 𝛽3 𝑋𝑡,2 + 𝑢𝑡 on els residus poden seguir un esquema autoregressiu 𝐴𝑅(𝑝), 𝑢𝑡 = 𝑝1𝑢𝑡−1 + 𝑝2𝑢𝑡−2 + ...+ 𝑝𝑝𝑢𝑡−𝑝 + 𝜀𝑡 . El model de regressió sempre s’ajusta primer per Mínim Quadrat Ordinari per obtenir els residus mostrals 𝑢𝑡. Per tant, Breusch i Godfrey diuen que, si la següent regressió auxiliar es ajustada: 𝑢𝑡= 𝛼0 + 𝛼1𝑋𝑡,1 + 𝛼2𝑋𝑡,2 + 𝑝1𝑢𝑡−1 + 𝑝2𝑢𝑡−2 + ...+𝑝𝑝𝑢𝑡−𝑝 + 𝜀𝑡 i si el 𝑅2 es calculat per aquest model, llavors la següent distribució pot ser utilitzada per la distribució d’aquest test estadístic: 𝑛𝑅2 ~ 𝑋2𝑝 34 Quan la hipòtesi nul·la 𝐻0 = {𝑝𝑖 = 0 𝑝𝑒𝑟 𝑡𝑜𝑡 𝑖} , llavors es compleix, és a dir, no existeix correlació serial de qualsevol ordre sobre 𝑝. En aquest càlcul, 𝑛 = 𝑇 − 𝑝, on 𝑇 és el nombre d’observacions de la serie original. Per tant, per fer aquest càlcul en l’R, s’utilitza la funció pbgtest() a l’R, on el p-valor és menor que 0.05, per tant, es rebutja la hipòtesi nul·la i es confirma la presencia de correlació serial en el nostre terme d’error. Per a corregir aquesta correlació serial, es pot utilitzar la funció coeftest() i es farà servir la funció vcovHC() de tal manera que s’obtindrà una matriu de covariàncies consistents amb l’heteroscedasticitat, ja que interessa corregir aquesta autocorrelació. Per a fer-ho, s’especificarà que el mètode empleat sigui arellano, el qual corregeix tant l’heteroscedasticitat com l’autocorrelació. La sortida del codi és la següent: Taula 5.10. Taula amb els resultats d’R del coeftest Es pot veure que, amb els errors estàndards d’heteroscedasticitat i d’autocorrelació (HAC), totes les variables continuen essent significatives en el model. Dependència transversal Abans d’acabar amb l’apartat dels models d’efectes fixos, cal tenir en compte que els models també poden tenir dependència transversal. Abans d'introduir aquest concepte, es descriuen les dades transversals com un tipus de dades recopilades mitjançant l’observació de molts subjectes, com en el nostre cas, molts països, al mateix temps o sense tenir en compte les diferències en el temps. L’anàlisi d’aquest tipus de dades normalment solen consistir en comparar les diferències entre els subjectes. S’entén per dependència transversal que les dades de sèries en el temps per diferents unitats de secció transversal estan correlacionades, ja sigui com a resultat de factors no observats o d’efectes espacials o indirectes. 35 Per tant, com en aquest estudi s’analitzen les dades sobre una pandèmia mundial, és possible que es trobi aquesta dependència transversal, ja que un sol canvi podria afectar a tots els països. Es pot verificar la dependència de la secció transversal utilitzant la prova de dependència de la secció transversal de Pesaran (2004). Aquesta, és una prova aplicable als models de panell, que es basa en el promig dels coeficients de correlació de les parelles dels residus OLS de les regressions individuals en el panell (Colonescu, C., 2016). 𝑦𝑖𝑡 = 𝛼𝑖 + 𝑥′𝑖𝑡𝛽𝑖 + 𝜀𝑖𝑡 𝑝𝑖𝑗  = ∑𝑇 𝑡=1 𝑒𝑖𝑡 𝑒𝑗𝑡 √∑𝑇 𝑡=1 𝑒2𝑖𝑡 √∑𝑇 𝑡=1 𝑒2𝑗𝑡 𝑜𝑛 𝑒𝑖𝑡 = 𝑦𝑖𝑡 − 𝛼𝑖 − 𝑥′𝑖𝑡𝛽𝑖 𝐶𝐷 = √2𝑇 𝑛(𝑛−1) (∑ 𝑛−1 𝑖 =1 ∑ 𝑛 𝑗=𝑖+1 𝑝𝑖𝑗) Sota 𝐻0 : 𝐶𝑜𝑣(𝜀𝑖𝑡,𝜀𝑖𝑗) = 0 ∀ 𝑡,𝑖 ≠ 𝑗, √𝑇 𝑝𝑖𝑗 ⇒ 𝑁(0,1) 𝐶𝐷 ⇒𝑁(0,1) Per a la realització d’aquest test de Pesaran al 𝑅, s’utilitza la funció ‘pcdtest()’. Com s’ha vist amb les proves realitzades fins ara, en aquest cas la hipòtesi nul·la és que no hi ha dependència transversal. Malgrat això, el p-valor del test de Pesaran és menor que 0.05, per tant, es rebutja la hipòtesi nul·la i s’accepta que existeix una dependència transversal i que per tant, s’ha de corregir. Per a corregir aquesta dependència transversal, hi ha diferents mètodes, però a l’estar tractant amb grans volums de dades, s’utilitza el mètode Driscoll & Kraay (1998). Driscoll i Kraay, proposen un estimador no paramètric de la matriu de covariància i robust a diverses formes de dependència transversal i temporal. Aquest, calcula els errors estàndards com l’arrel de la diagonal de la matriu de covariància asimptòtica 𝑉(𝛽󰆹) = (𝑋′𝑋)−1 𝑆󰆹𝑇 (𝑋′𝑋)−1 on 𝑆󰆹𝑇 és 𝑆󰆹𝑇 = 𝛺0 + ∑𝑚(𝑇) 𝑗=1 𝜔 (𝑗,𝑚) (𝛺𝑗 +𝛺′𝑗 ),(𝑁𝑒𝑤𝑒𝑦 𝑊𝑒𝑠𝑡,1987) 𝑚(𝑇) és fins a on els errors poden estar correlacionats 𝑤(𝑗,𝑚) = 1 − 𝑗 𝑚(𝑇) + 1,𝛺𝑗 = ∑ 𝑇 𝑡=𝑗+1 ℎ𝑡(𝛽󰆹)ℎ𝑡−1(𝛽󰆹)′ i ℎ𝑡(𝛽󰆹) = ∑𝑁(𝑇) 𝑖=1 𝑥𝑖𝑡 𝜀𝑖𝑡 captura la correlació mitjana del panell 𝑡. 36 S’utilitza a l’𝑅, la funció ‘vcovSCC’, Per últim, s’adjunten tots els resultats en una taula. Taula 5.11. Taula amb els resultats d’R del resum dels models 5.4. (One-Way) Random Effects Model Un cop finalitzat l’estudi dels models amb efectes fixos, queda analitzar els models amb efectes aleatoris. El Random Effects Model es distingeix per la seva estructura especial del terme d’error, ja que els errors tenen mitjana de 0, variància igual a 𝜎2𝑢+ 𝜎2𝑒, sense correlació entre els individus i amb la covariància en el temps igual a 𝜎2𝑢. Una altra característica important d’aquest model és que la correlació temporal dels error no disminueix en el temps. 𝑝 = 𝑐𝑜𝑟𝑟(𝑣𝑖𝑡,𝑣𝑖𝑠) = 𝜎2𝑢 𝜎2𝑢+ 𝜎2𝑒 En primer lloc es realitza una prova, la qual equival a provar la hipòtesi de que no hi ha diferències entre els individus, el que implica que la variable aleatòria específica de l’individu té variància zero, és a dir, 𝐻0 : 𝜎2𝑢 = 0 𝐻1 ∶ 𝜎2𝑢 ≠ 0 Per a realitzar aquesta prova en 𝑅, s’utilitza la funció plmtest i el model analitzat serà el OLS. Imatge 5.1. Sortida codi R del plmtest 37 S’observa que, com s’ha obtingut un p-valor inferior a 0.05, es rebutja la hipòtesi nul·la de variància zero en els errors específics de l’individu, és a dir, l’heterogeneïtat entre els individus pot ser significativa. Per al modelatge d’aquest model d’efectes aleatoris a l’𝑅, cal especificar en aquest cas que l’efecte és ‘random’. Es veu la sortida a continuació, Taula 5.12. Model Random Effects Aquest model inclou la possibilitat de variacions entre països i també assumeix que aquesta variació és de la naturalesa aleatòria o que no està correlacionada amb les variables de l’estudi. A primera vista, es veu que totes les variables independents són significatives, ja que el seu p-valor és menor que 0.05 i veiem que el model està explicat amb un 79%. La raó de l’ús del model d'efectes aleatoris és que, com s’ha indicat anteriorment, a diferència del model d'efectes fixos, s'assumeix que la variació entre les entitats és aleatòria i no està correlacionada amb les variables predictores o independents incloses en el model. S’ha observat que hi ha diferències entre països a l’hora d’explicar les morts, per tant, es té raons per creure que les diferències entre les entitats, és a dir, els països, tenen alguna influència a la vostra variable dependent. És per això, que també es calcula el model d’efectes aleatoris. Els efectes aleatoris suposen que el terme d'error de l'entitat no està correlacionat amb els predictors que permeten que les variables invariants en el temps tinguin un paper explicatiu, com podem veure en la taula, observem que la variable popData2020, queda omesa del model. 38 5.5. Selecció dels models Un cop vistos tots els models, en aquesta secció se’n farà una selecció, d’aquells que siguin millors que els altres, per tal manera de veure el model que millor explica la variable dependent deaths. En primer lloc, es fa una ràpida comparació del model Pooled OLS amb els models vistos en efectes fixos, els quals són Country Effects Model, Time Effects Model i Two-Way Effect Model. Per a fer aquesta comprovació, s’utilitza la funció de l’R, anomenada pFtest. En aquest test, amb el mètode plm, l’argument d’aquesta funció són dos objectes plm, és a dir, els dos models, el primer model és within, per tant, d’efectes fixos, i el segon és pooling, és a dir, OLS. Els efectes provats són individuals, temporals i bidireccionals, depenent dels efectes introduïts en el model d’efectes fixos (RDocumentation, s.f.). S’utilitza per a comprovar quin tipus de model és millor per a les dades de les quals es disposa. En aquesta funció, les hipòtesis són les següents: 𝐻0 = 𝑒𝑙 𝑚𝑜𝑑𝑒𝑙 𝑃𝑜𝑜𝑙𝑒𝑑 𝑂𝐿𝑆 é𝑠 𝑐𝑜ℎ𝑒𝑟𝑒𝑛𝑡 𝐻1 = 𝑒𝑙 𝑚𝑜𝑑𝑒𝑙 𝑑′𝑒𝑓𝑒𝑐𝑡𝑒𝑠 𝑓𝑖𝑥𝑜𝑠 é𝑠 𝑐𝑜ℎ𝑒𝑟𝑒𝑛𝑡 Entenent com a coherent, que aquell és millor que l’altre. Per tant, es procedeix a realitzar les tres comparacions. - Pooled OLS vs Country Effects Model on el p-valor d’aquesta prova és menor que 2.2e-16. - Pooled OLS vs Time Effects Model on el p-valor d’aquesta prova és menor que 2.2e16. - Pooled OLS vs Two-Way Effects Model on el p-valor d’aquesta prova és menor que 2.2e-16. Per tant, com es pot observar, en els tres casos, es veu que el p-valor és menor que 0.05, indicant així que els models d’efectes fixos són una millor opció. Aquests tests no indiquen que el model Pooled OLS no sigui vàlid, però al comparar-los, els models d’efectes fixos expliquen millor la variable deaths. Malgrat això, encara cal comparar els models d’efectes fixos amb els d’efectes aleatoris, i per fer aquesta comparació, s’utilitzarà el Test de Hausman. 45 S’observa en la sortida del codi que, en aquest cas, la variable no significativa és Positivity Rate, és a dir, la mateixa variable que no eren significatives en el model Country Effects Model Vaccine i en el Time Effects Model Vaccine. No obstant això, té un coeficient de determinació de 0.907, bastant semblant als darrers models esmentats, i també és significatiu. Abans de continuar, es mostren els resultats dels 3 models en una taula conjunta. Taula 5.18. Taula amb els resultats d’R dels tres models A simple vista, es veu que els tres models s’expliquen millor que els anteriors, on els quals no s’havien inclòs les vacunes. També es veu que els coeficients són més petits, i s’observa que el coeficient amb més pes és Daily Hospitality Occupancy, el qual ja ho era en els anteriors models acompanyat de les variables Positivity Rate i Daily ICU Occupancy. Per últim, s’observa que el model millor explicat és el Time Effects Model Vaccine, amb un 92,3%. En aquest, es pot observar que els coeficients més elevats són en les variables Daily Hospitality Occupancy i en Daily ICU Occupancy, és a dir, com major siguin les hospitalitzacions i els ingressats en unitats de cures intensives (UCI), major serà la taxa de morts. Aquest, és el model que millor està explicat i és on es veuen els coeficients més coherents per les variables, ja que la primera i la segona dosi tenen coeficient negatiu, pel que ens indica que les morts disminueixen i les hospitalitzacions, tant en hospitals com a les UCIs tenen coeficient positiu, pel que a mesura que aquestes augmenten, el nombre de morts també. Per últim, també s’observa que en aquest model, la variable referent a la població al 2020 és significativa, ja que en els altres dos models executats, aquesta variable quedava eliminada al realitzar el model, és a dir, el model no la trobava significativa. Per a fer una representació de la realitat actual, a mitjans d’any del 2022, a continuació es veu una representació gràfica, dels ingressats en hospitals i en unitats de cures intensives (UCI), dels països de la Unió Europea que s’han estat tractant en aquests darrers models. Aquestes dades són agafades a partir del 27 de desembre del 2020, de la web oficial Our World in Data (Ritchie H, 2020). 46 Gràfic 5.2. Representació gràfica del nombre d’hospitalitzacions per Covid-19 (Ritchie H, 2020) Gràfic 5.3. Representació gràfica del nombre d’hospitalitzacions a les UCI per Covid-19 (Ritchie H, 2020) Detallar que, com en aquest treball s’està treballant amb el període de setmanes 12-2020 i 20-2022, informar que la setmana del 12 del 2020 comença el dia 16 de març i que la setmana 20 del 2022 acaba el 27 de març. Per tant, en la representació gràfica anterior, s’ha respectat aquest període. 47 6. Conclusions Recordar que l’objectiu principal d’aquest treball de fi de grau és explicar el comportament de les dades de la Covid-19, específicament, dels morts deguts a aquesta pandèmia. En concret, l’objectiu és veure si les morts per aquest virus s’han comportat de manera diferent entre països i en el temps. Aquestes conclusions són realitzades sobre les dades d’un període total de 2 anys, d’entre les setmanes 12 del 2020 i la setmana 12 del 2022. Gràcies a les dades de panell i els models estadístics aplicats, s’han pogut extreure algunes conclusions que permeten explicar el comportament dels morts per aquest virus. Amb aquesta petita introducció i els resultats dels models explicats anteriorment, es pot concloure que, a trets generals, s’ha obtingut molt bona explicació de tots els models, i gairebé totes les variables analitzades han estat significatives. Malgrat la bona explicació en general, sí que s’ha vist una millora d’aquests models a l’hora d’afegir les vacunes, i és que, cal destacar que en aquesta modelització, s’ha tractat amb menys dades, ja que no disposàvem d’informació de tots els països de la Unió Europea. Per tant, aquest podria ser un efecte del per què l’explicació pot haver estat millor. No obstant, al realitzar el model amb efectes fixos en el temps, aquest ha estat explicat amb un 92,3%, el qual és molt bon resultat per un model amb tantes dades. També, cal afegir que les variables amb més pes en l’explicació d’aquestes morts han estat les hospitalitzacions i els ingressos en unitats de cures intensives (UCI), ja que s’ha vist que aquests coeficients eren els més alts en els models. I destacar també, que al tractar-se de dades massives, és a dir al tractar-se de molts països i moltes setmanes, aquests coeficients han estat molt baixos i amb molt poca variació entre ells. Respecte als models i a l’heterogeneïtat que es buscaven entre els països, s’ha pogut observar que en tots, aquesta era significativa. Això sí, també s’ha observat que en els models referents als efectes fixos els models estaven millor explicats. No obstant, tant els models d’efectes fixos per país, temps i d’ambdós efectes, s’ha comprovat que els països s’han comportat de manera diferent en el temps, ja que cap d’aquests donava significatiu en homogeneïtat. A més a més, s’ha comprovat que pels estimadors individuals de cada un, els països que han estat més afectats per les morts han estat Irlanda, Islàndia i Finlàndia. No obstant això, sorprèn que països com Espanya i França no s’han vist tant afectats, ja que malgrat hagin tingut un volum major de morts, casos i hospitalitzacions, en proporció a la població del país, aquestes han estat menors. Justament, al tractar-se de països amb un nombre d’habitants superior, també disposa de més recursos mèdics. Per tant, malgrat que s’hagin vist uns nombres molt alts en el nombre de morts i de casos, aquests, en comparació amb països de menor població, no s’han vist tan afectats. 48 En conclusió, respecte als models d’efectes fixos en el temps i tenint en compte ambdós models, un explicat sense vacunes i l’altre explicat amb les vacunes, els models més ben explicats al llarg de tot l’estudi han estat aquests, i és que, les dades de la Covid-19, han estat molt variants en el temps. Això pot estar explicat per les diferents onades de casos que hem estat vivint aquests darrers dos anys, vistes gràficament en el primer anàlisi de les variables. També, s’ha vist certa millora a l’hora d’afegir les vacunes en aquest model, per tant, la conclusió és positiva, ja que aquestes han ajudat a fer caure el nombre de morts afectats pel Coronavirus. Per últim, cal comentar que en aquest treball no ens s’ha volgut fer una predicció de les dades, sinó en entendre el comportament. Malgrat això, seria una bona opció fer-ne una segona part, de tal manera que es pugui ampliar aquesta informació i veure una comparació amb les dades reals. D’aquesta manera, es provaria l’eficàcia de la predicció dels models i podria ser útil de cara a entendre les onades que hem estat patint durant la pandèmia. A més a més, en aquest treball s’ha treballat amb dades no balancejades, una altra possible millor d’aquest seria aplicar mètodes per balancejar les dades o trobar unes dades balancejades. Això permetria veure si un estudi amb les dades balancejades obtindria una millora en els models i en els resultats ja que d’aquesta manera potser els resultats dels models serien més significatius o les dades estarien millor explicades. A nivell personal, ha estat tot un repte utilitzar dades de panell, ja que era un món completament desconegut per a mi, i a la vegada, molt interessant. Gràcies a una profunda recerca, he pogut descobrir un altre nou grup en el món de les dades i que sé segur, que serà molt útil en l’àmbit professional en un futur. El món de les dades no para de créixer i és important saber tractar-les per treure les millors conclusions i entendre el que està passant, sobretot en aspectes tan importants com una pandèmia que ha afectat globalment. 49 7. Bibliografia Colonescu, C. (2016, 1 septiembre). Principles of Econometrics with R. Principles of Econometrics with R. https://bookdown.org/ccolonescu/RPoE4/panel-data-models.html#mjxeqn-eqrandefftest15 COVID-19. (s. f.). European Centre for Disease Prevention and Control. https://www.ecdc.europa.eu/en/covid-19 COVID-19 vaccination. (s. f.). European Centre for Disease Prevention and Control. https://www.ecdc.europa.eu/en/covid-19/prevention-and-control/vaccines Download COVID-19 data sets. (s. f.). European Centre for Disease Prevention and Control. https://www.ecdc.europa.eu/en/covid-19/data E. (2021, 3 marzo). Introduction to the Fundamentals of Panel Data. Aptech. https://www.aptech.com/blog/introduction-to-the-fundamentals-of-panel-data/#modelingpanel-data Econometrics Academy - Panel Data Models. (s. f.). Sites. https://sites.google.com/site/econometricsacademy/econometrics-models/panel-data-models Fixed effects. (s. f.). Recuperado 5 de septiembre de 2022, de https://ds4ps.org/PROG-EVALIII/FixedEffects.html Gómez, R. S. (s. f.). Entorno de programación RStudio: regresión con datos de panel. Entorno de programación RStudio. http://www.ugr.es/%7Eromansg/material/WebEco/04Eco2/Ordenador/R/03_PanelData.html Introducción al análisis econométrico con datos de panel. (s. f.). CORE Reader. https://core.ac.uk/reader/322620370 How ECDC collects and processes COVID-19 data. (s. f.). European Centre for Disease Prevention and Control. https://www.ecdc.europa.eu/en/covid-19/data-collection Modelos econométricos.Datos de panel | | UPV. (2015, 27 julio). YouTube. https://www.youtube.com/watch?v=kjwXXfDeLmA&ab_channel=UniversitatPolit%C3%A8cni cadeVal%C3%A8ncia-UPV Pacheco, J. (2021, 6 octubre). Dependencia temporal: Definición, Qué es y Ejemplos | 2022. Economía360. https://www.economia360.org/dependencia-temporal/ 50 Panel data econometrics in R: (s. f.). Panel data econometrics in R: https://cran.rproject.org/web/packages/plm/vignettes/A_plmPackage.html pFtest function - RDocumentation. (s. f.). RDocumentation. https://www.rdocumentation.org/packages/plm/versions/1.6-5/topics/pFtest Research Gate. (s. f.). Cross Sectional Dependence in Panel Data Analysis. https://www.researchgate.net/publication/41494980_CrossSectional_Dependence_in_Panel_Data_Analysis Ritchie, H. (2020, 5 marzo). Coronavirus (COVID-19) Hospitalizations. Our World in Data. https://ourworldindata.org/covid-hospitalizations Ritchie, H. (2020, 5 marzo). Coronavirus (COVID-19) Vaccinations. Our World in Data. https://ourworldindata.org/covid-vaccinations RPubs - R Tutorial: Panel Data Analysis 1. (2021, 15 enero). Panel Data Analysis 1. https://rpubs.com/phle/r_tutorial_panel_data_analysis Santibáñez, J. (s. f.). Verificación del supuesto de homocedasticidad. Cursos Ciencias. http://sigma.iimas.unam.mx/jsantibanez/Cursos/Ciencias/2018_1/08_homocedasticidad.html Science Direct. (s. f.). Econometrics and Finance. https://www.researchgate.net/publication/41494980_CrossSectional_Dependence_in_Panel_Data_Analysis Siebert, M. (2019, 17 diciembre). Heterogeneity: what is it and why does it matter? Students 4 Best Evidence. https://s4be.cochrane.org/blog/2018/11/29/what-is-heterogeneity/ Staff, A. (2021, 3 agosto). A Timeline of COVID-19 Vaccine Developments in 2021. AJMC. https://www.ajmc.com/view/a-timeline-of-covid-19-vaccine-developments-in-2021 The Fixed Effects Regression Model For Panel Data Sets. (2022, 26 marzo). Time Series Analysis, Regression and Forecasting. https://timeseriesreasoning.com/contents/the-fixedeffects-regression-model-for-panel-data-sets/ tok.wiki. (2020). Prueba de Breusch-Godfrey FondoyProcedimiento. Prueba de BreuschGodfrey FondoyProcedimiento. https://hmong.es/wiki/Breusch%E2%80%93Godfrey_test Wagle, M. (2022, 6 enero). How to deal with Panel Data. Practical Application using R. Medium. https://medium.com/@manilwagle/how-to-deal-with-panel-data-practicalapplication-using-r-18ef95ae99c6 51 Zaghdoudi, T. (2019, 1 mayo). Dynamic Panel Data Models. Dynamic Panel Data Models. https://rdrr.io/cran/dynpanel/man/dynpanel-package.html#heading-1 Bases de dades Vaccine: https://opendata.ecdc.europa.eu/covid19/vaccine_tracker/csv/data.csv Weekcase: https://opendata.ecdc.europa.eu/covid19/subnationalcaseweekly/csv Hospital: https://opendata.ecdc.europa.eu/covid19/hospitalicuadmissionrates/csv/data.csv Test: https://opendata.ecdc.europa.eu/covid19/testing/csv Deaths: https://opendata.ecdc.europa.eu/covid19/nationalcasedeath_eueea_daily_ei/csv 52 8. Annex 8.1. Representacions gràfiques Gràfic 8.1.1 Representació gràfica del nombre de nous casos Gràfic 8.1.2 Representació gràfica del nombre de test fets 53 Gràfic 8.1.3 Representació gràfica de la taxa de tests realitzats Gràfic 8.1.4 Representació gràfica del nombre de la taxa de població positiva 54 Gràfic 8.1.5 Representació gràfica del nombre de morts Gràfic 8.1.6. Representació gràfica de l’hospitalització 61 8.3. Codi Dades ## Script amb les BBDD amb dades setmanals que utilitzarem - Vaccine (sumatori de vacunes) - Weekcase --> sumar-los per setmanes - Hospital - Test - deaths **Base de dades VACINNE** ```{r} vacinne <- read.csv("https://opendata.ecdc.europa.eu/covid19/vaccine_tracker/cs v/data.csv", na.strings = "", fileEncoding = "UTF-8-BOM") summary(vacinne) vacinne$YearWeekISO <- gsub("W", "", vacinne$YearWeekISO, ignore.case = TRUE) vacinne <- subset.data.frame(vacinne, vacinne$TargetGroup == 'ALL', drop = FALSE) library(sqldf) vacinne <- sqldf(" SELECT YearWeekISO, ReportingCountry, SUM(NumberDosesReceived) as NumberDosesReceived, SUM(FirstDose) as FirstDose, SUM(SUM(FirstDose)) OVER (ORDER BY ReportingCountry, YearWeekISO) AS FirstDoseAcc, SUM(SecondDose) as SecondDose, SUM(SUM(SecondDose)) OVER (ORDER BY ReportingCountry, YearWeekISO) AS SecondDoseAcc, SUM(DoseAdditional1) as ThirdDose, SUM(SUM(DoseAdditional1)) OVER (ORDER BY ReportingCountry, YearWeekISO) AS ThirdDoseAcc, Population FROM vacinne GROUP BY YearWeekISO, ReportingCountry, Population") vacinne library(sqldf) vacinne_prova <- sqldf("SELECT YearWeekISO, ReportingCountry, FirstDose, SUM(SUM(FirstDose)) OVER (ORDER BY ReportingCountry, YearWeekISO) AS FirstDoseAcc, SecondDose, 62 SUM(SUM(SecondDose)) OVER (ORDER BY ReportingCountry, YearWeekISO) AS SecondDoseAcc, ThirdDose, SUM(SUM(ThirdDose)) OVER (ORDER BY ReportingCountry, YearWeekISO) AS ThirdDoseAcc FROM vacinne GROUP BY YearWeekISO, ReportingCountry") vacinne_prova ``` **Base de dades WEEKCASE** ```{r} weekcase<- read.csv("https://opendata.ecdc.europa.eu/covid19/subnationalcasewee kly/csv", stringsAsFactors=T, na.strings = "", fileEncoding = "UTF8-BOM") weekcase$country <- gsub("Austria", "AT", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Belgium", "BE", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Bulgaria", "BG", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Cyprus", "CY", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Czechia", "CZ", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Germany", "DE", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Denmark", "DK", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Estonia", "EE", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Greece", "EL", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Spain", "ES", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Finland", "FI", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("France", "FR", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Croatia", "HR", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Hungary", "HU", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Ireland", "IE", weekcase$country, ignore.case = TRUE) 63 weekcase$country <- gsub("Iceland", "IS", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Italy", "IT", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Liechtenstein", "LI", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Lithuania", "LT", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Luxembourg", "LU", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Latvia", "LV", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Malta", "MT", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Netherlands", "NL", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Norway", "NO", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Poland", "PL", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Portugal", "PT", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Romania", "RO", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Sweden", "SE", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Slovenia", "SI", weekcase$country, ignore.case = TRUE) weekcase$country <- gsub("Slovakia", "SK", weekcase$country, ignore.case = TRUE) weekcase <- sqldf("SELECT year_week, country, SUM(weekly_count) as weekly_count, SUM(population) as population FROM weekcase GROUP BY year_week, country") weekcase ``` **Base de dades HOSPITAL** ```{r} hospital<- read.csv("https://opendata.ecdc.europa.eu/covid19/hospitalicuadmissi onrates/csv/data.csv", stringsAsFactors=T, na.strings = "", fileEncoding = "UTF-8-BOM") summary(hospital) 64 hospital$year_week <- gsub("W", "", hospital$year_week, ignore.case = TRUE) hospital$country <- gsub("Austria", "AT", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Belgium", "BE", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Bulgaria", "BG", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Cyprus", "CY", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Czechia", "CZ", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Germany", "DE", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Denmark", "DK", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Estonia", "EE", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Greece", "EL", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Spain", "ES", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Finland", "FI", hospital$country, ignore.case = TRUE) hospital$country <- gsub("France", "FR", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Croatia", "HR", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Hungary", "HU", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Ireland", "IE", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Iceland", "IS", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Italy", "IT", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Liechtenstein", "LI", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Lithuania", "LT", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Luxembourg", "LU", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Latvia", "LV", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Malta", "MT", hospital$country, ignore.case = TRUE) 65 hospital$country <- gsub("Netherlands", "NL", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Norway", "NO", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Poland", "PL", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Portugal", "PT", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Romania", "RO", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Sweden", "SE", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Slovenia", "SI", hospital$country, ignore.case = TRUE) hospital$country <- gsub("Slovakia", "SK", hospital$country, ignore.case = TRUE) hospital$date2 <- as.Date(hospital$date) hospital <- hospital[hospital$date2 >= "2020-04-01" & hospital$date2 <= "2022-03-27", ] hospital_1 <- subset.data.frame(hospital, hospital$indicator == "Daily hospital occupancy", drop = FALSE) hospital_2 <- subset.data.frame(hospital, hospital$indicator == "Daily ICU occupancy", drop = FALSE) library(sqldf) hospital_1 <- sqldf(" SELECT country, year_week, AVG(value) as daily_hosp_occupancy FROM hospital_1 GROUP BY country, year_week") hospital_1 hospital_2 <- sqldf(" SELECT country, year_week, AVG(value) as daily_ICU_occupancy FROM hospital_2 GROUP BY country, year_week") hospital_2 ``` **Base de dades TEST** ```{r} test<- read.csv("https://opendata.ecdc.europa.eu/covid19/testing/csv", stringsAsFactors=T, na.strings = "", fileEncoding = "UTF-8-BOM") 66 test$year_week <- gsub("W", "", test$year_week, ignore.case = TRUE) test <- subset.data.frame(test, test$level == 'national', drop = FALSE) test <- sqldf("SELECT country, country_code, year_week, new_cases, tests_done, population, testing_rate, positivity_rate FROM test") test ``` **Base de dades DEATHS** ```{r} deaths <- read.csv("https://opendata.ecdc.europa.eu/covid19/nationalcasedeath_ eueea_daily_ei/csv", na.strings = "", stringsAsFactors=T,fileEncoding = "UTF-8-BOM") deaths$countriesAndTerritories <- gsub("Austria", "AT", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Belgium", "BE", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Bulgaria", "BG", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Cyprus", "CY", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Czechia", "CZ", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Germany", "DE", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Denmark", "DK", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Estonia", "EE", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Greece", "EL", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Spain", "ES", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Finland", "FI", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("France", "FR", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Croatia", "HR", deaths$countriesAndTerritories, ignore.case = TRUE) 67 deaths$countriesAndTerritories <- gsub("Hungary", "HU", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Ireland", "IE", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Iceland", "IS", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Italy", "IT", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Liechtenstein", "LI", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Lithuania", "LT", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Luxembourg", "LU", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Latvia", "LV", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Malta", "MT", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Netherlands", "NL", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Norway", "NO", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Poland", "PL", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Portugal", "PT", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Romania", "RO", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Sweden", "SE", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Slovenia", "SI", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$countriesAndTerritories <- gsub("Slovakia", "SK", deaths$countriesAndTerritories, ignore.case = TRUE) deaths$date2 <- as.Date(deaths$dateRep, format = "%d/%m/%Y") deaths <- deaths[deaths$date2 >= "2020/03/16" & deaths$date2 <= "2022/03/27", ] deaths$dateRep <- factor(c(deaths$dateRep)) deaths$dateRep <- as.Date(deaths$dateRep, format = "%d/%m/%Y") deaths$dateRep <- strftime(c(deaths$dateRep), format = "%Y-%V") deaths <- sqldf("SELECT dateRep, SUM(cases) as cases, SUM(deaths) as deaths, countriesAndTerritories, popData2020 FROM deaths 68 GROUP BY dateRep, countriesAndTerritories, popData2020") deaths ``` # Modificacions # Corespondències de country_code amb country "AT" Austria "BE" Belgium "BG" Bulgaria "CY" Cyprus "CZ" Czechia "DE" Germany "DK" Denmark "EE" Estonia "EL" Greece "ES" Spain "FI" Finland "FR" France "HR" Croatia "HU" Hungary "IE" Ireland "IS" Iceland "IT" Italy "LI" Liechtenstein "LT" Lithuania "LU" Luxembourg "LV" Latvia "MT" Malta "NL" Netherlands "NO" Norway "PL" Poland "PT" Portugal "RO" Romania "SE" Sweden "SI" Slovenia "SK" Slovakia #subset amb els que coincideixen weekdead2 <- subset.data.frame(weekdead2, weekdead2$country == c("AT", "BE", "BG", "CY", "CZ", "DE", "DK", "EE", "EL", "ES", "FI", "FR", "HR", "HU", "IE", "IS", "IT", "LI", "LT", "LU", "LV", "MT", "NL", "NO", "PL", "PT", "RO", "SE", "SI", "SK"), drop = FALSE) 69 ```{r} # table(vacinne$YearWeekISO) # table(weekcase$year_week) # table(hospital$year_week) # table(test$year_week) # table(deaths$dateRep) ``` Tots els països coincideixen ```{r} # table(vacinne$ReportingCountry) # table(weekcase$country) # table(hospital$country) # table(test$country) # table(deaths$countriesAndTerritories) ``` # Merge de les dades Merge de totes les bbdd anteriors ```{r} library(sqldf) dd <- sqldf("SELECT test.country_code, test.year_week, test.country, new_cases, tests_done, test.population, testing_rate, positivity_rate, deaths.cases, deaths.deaths, popData2020, hospital_1.daily_hosp_occupancy, hospital_2.daily_ICU_occupancy, NumberDosesReceived, FirstDose, FirstDoseAcc, SecondDose, SecondDoseAcc, ThirdDose, ThirdDoseAcc, vacinne.Population weekly_count, weekcase.population FROM test LEFT JOIN deaths ON test.country_code = deaths.countriesAndTerritories AND test.year_week = deaths.dateRep LEFT JOIN hospital_1 ON test.country_code = hospital_1.country AND test.year_week = hospital_1.year_week LEFT JOIN hospital_2 ON test.country_code = hospital_2.country AND test.year_week = hospital_2.year_week LEFT JOIN vacinne ON test.country_code = vacinne.ReportingCountry AND test.year_week = vacinne.YearWeekISO 70 LEFT JOIN weekcase ON test.country_code = weekcase.country AND test.year_week = weekcase.year_week") dd head(dd) ``` **DADES** ```{r} dades <- dd #install.packages("openxlsx") library(openxlsx) write.xlsx(dades, "dades.xlsx") library(readxl) dades <- read_excel("dades.xlsx") View(dades) write.csv(dades, "dades_def_2.csv") table(dades_def_2$country) ``` 77 color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Tests Done', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(covid_pop_3, aes(x = year_week, y = tests_done, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Tests Done', color = '') + theme(axis.text = element_text(angle = 90)) ``` ```{r} ggplot(covid_pop_1, aes(x = year_week, y = testing_rate, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Testing Rate', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(covid_pop_4, aes(x = year_week, y = testing_rate, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Testing Rate', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(covid_pop_3, aes(x = year_week, y = testing_rate, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Testing Rate', color = '') + theme(axis.text = element_text(angle = 90)) ``` ```{r} ggplot(covid_pop_1, aes(x = year_week, y = positivity_rate, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Positivity Rate', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(covid_pop_4, aes(x = year_week, y = positivity_rate, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Positivity Rate', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(covid_pop_3, aes(x = year_week, y = positivity_rate, color = country, group = country)) + 78 geom_line() + labs(x = 'Year Week', y = 'Positivity Rate', color = '') + theme(axis.text = element_text(angle = 90)) ``` ```{r} ggplot(covid_pop_1, aes(x = year_week, y = deaths, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Deaths', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(covid_pop_4, aes(x = year_week, y = deaths, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Deaths', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(covid_pop_3, aes(x = year_week, y = deaths, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Deaths', color = '') + theme(axis.text = element_text(angle = 90)) ``` ```{r, warning=FALSE} ggplot(covid_pop_1, aes(x = year_week, y = daily_hosp_occupancy, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Hospitality Occupancy', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(covid_pop_4, aes(x = year_week, y = daily_hosp_occupancy, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Hospitality Occupancy', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(covid_pop_3, aes(x = year_week, y = daily_hosp_occupancy, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Hospitality Occupancy', color = '') + theme(axis.text = element_text(angle = 90)) ``` ```{r, warning=FALSE} ggplot(covid_pop_1, aes(x = year_week, y = daily_ICU_occupancy, color = country, group = country)) + 79 geom_line() + labs(x = 'Year Week', y = 'ICU Occupancy', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(covid_pop_4, aes(x = year_week, y = daily_ICU_occupancy, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'ICU Occupancy', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(covid_pop_3, aes(x = year_week, y = daily_ICU_occupancy, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'ICU Occupancy', color = '') + theme(axis.text = element_text(angle = 90)) ``` ```{r, warning=FALSE} ggplot(na.omit(covid_pop), aes(x = year_week, y = NumberDosesReceived, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Number Doses Received', color = '') + theme(axis.text = element_text(angle = 90)) ``` Primera segona i tecera dosi ```{r, warning=FALSE} ggplot(na.omit(covid_pop), aes(x = year_week, y = FirstDose, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'First Dose', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(na.omit(covid_pop), aes(x = year_week, y = SecondDose, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Second Dose', color = '') + theme(axis.text = element_text(angle = 90)) ggplot(na.omit(covid_pop), aes(x = year_week, y = ThirdDose, color = country, group = country)) + geom_line() + labs(x = 'Year Week', y = 'Third Dose', color = '') + theme(axis.text = element_text(angle = 90)) ``` 80 Guardem bbdd ```{r} write.csv(covid, "covid.csv") write.csv(covid_pop, "covid_pop.csv") write.csv(covid_pop_1, "covid_pop_1.csv") write.csv(covid_pop_2, "covid_pop_2.csv") write.csv(covid_pop_3, "covid_pop_3.csv") write.csv(covid_pop_4, "covid_pop_4.csv") write.csv(covid_pop_litu, "covid_pop_litu.csv") ``` ```{r} barplot(table(covid$year_week), main = 'Nº observacions per setmanes', col = 'lightblue', ylim=c(0,30), xlab = 'Setmanes', ylab = 'Observacions') ``` 81 Models *MODELITZACIÓ* Bases de dades ```{r} setwd("D:/4t/TFG") # dd2 <- read.csv("covid_pop.csv") library(knitr) library(kableExtra) library(sjPlot) library(sjmisc) library(sjlabelled) library(stargazer) ``` ```{r} if(!require('plm')){ install.packages("plm") library(somepackage) } if(!require('foreign')){ install.packages("foreign") } library("foreign") library(plm) library(knitr) library(broom) library(tidyverse) library(stargazer) library(lmtest) library(gplots) library(wooldridge) library(ggplot2) library(dplyr) library(plm) library(lfe) library(lmtest) library(car) library(geepack) ``` 82 *Models* - Pooled Cross Sections - Fixed Effects Model - Random Effects Model - Including the Time Dimension *OLS / Regresión lineal múltiple* deaths ```{r} ols = lm(deaths~tests_done+testing_rate+positivity_rate+new_cases+daily_ho sp_occupancy+daily_ICU_occupancy + popData2020, data = covid) summary(ols) tab_model(ols, show.se = TRUE, digits = 5, title = 'OLS') stargazer(ols, title = 'OLS', align=TRUE,header = FALSE, out="table1.txt") ``` deaths by covid_pop ```{r} ols_pop = lm(deaths~tests_done+testing_rate+positivity_rate+new_cases+daily_ho sp_occupancy+daily_ICU_occupancy, data = covid_pop) summary(ols_pop) tab_model(ols_pop, show.se = TRUE, digits = 5, title = 'OLS Population') ``` deaths pooled ```{r} library(plm) ols_2 = plm(deaths~tests_done+testing_rate+positivity_rate+new_cases+daily_h osp_occupancy+daily_ICU_occupancy + popData2020, data = covid, model = 'pooling', index = c("country", "index")) summary(ols_2) tab_model(ols_2, show.se = TRUE, digits = 5, title = 'Pooled OLS') ``` 83 deaths_pop pooled ```{r} ols_pop_2 = plm(deaths~tests_done+testing_rate+positivity_rate+new_cases+daily_h osp_occupancy+daily_ICU_occupancy, data = covid_pop, model ='pooling', index = c("country", "year_week")) summary(ols_pop_2) tab_model(ols_pop_2, show.se = TRUE, digits = 5, title = 'Pooled OLS Population') ``` <!-- daily_hosp --> <!-- ```{r} --> <!-- ols_hosp = lm(daily_hosp_occupancy~deaths+tests_done+testing_rate+positivity_ra te+new_cases+daily_ICU_occupancy + popData2020, data = covid) --> <!-- summary(ols_hosp) --> <!-- ``` --> *Fixed effects ONE WAY* deaths effect individual ```{r} library(plm) country_effects <- plm(deaths~ tests_done+testing_rate+positivity_rate+new_cases+daily_hosp_occupan cy+daily_ICU_occupancy + popData2020, data = covid, index = c("country", "year_week"), model = "within", effect = "individual") summary(country_effects) tab_model(country_effects, show.se = TRUE, digits = 5, title = 'Country Fixed Effects') ``` ```{r} plmtest(country_effects, effect="individual") ``` ```{r} 84 fixef(country_effects) ``` El coeficiente de x1 indica cuánto cambia Y a lo largo del tiempo, en promedio por país, cuando X aumenta en una unidad. deaths time effect ```{r} time_effects <- plm(deaths~ tests_done+testing_rate+positivity_rate+new_cases+daily_hosp_occupan cy+daily_ICU_occupancy + popData2020, data = covid, index = c("country", "year_week"), model = "within", effect = "time") summary(time_effects) tab_model(time_effects, show.se = TRUE, digits = 5, title = 'Time Fixed Effects') ``` ```{r} plmtest(time_effects, effect="time") ``` ```{r} fixef(time_effects) ``` El coeficiente de x1 indica cuánto cambia Y a lo largo del tiempo, en promedio por país, cuando X aumenta en una unidad. *Fixed effects TWO WAYS* deaths by two ways ```{r} twoway_effects <- plm(deaths~ tests_done+testing_rate+positivity_rate+new_cases+daily_hosp_occupan cy+daily_ICU_occupancy + popData2020, data = covid, index = c("country", "year_week"), model = "within", 85 effect = "twoways") summary(twoway_effects) tab_model(twoway_effects, show.se = TRUE, digits = 5, title = 'TwoWay Fixed Effects') ``` ```{r} library(lmtest) library(texreg) screenreg(list(country_effects, time_effects, twoway_effects), custom.model.names = c("Country Fixed Effects", "Time Fixed Effects", "Two-Way Fixed Effects")) tab_model(country_effects, time_effects, twoway_effects, show.se = TRUE, digits = 5, title = 'Country Fixed Effects, Time Fixef Effects and Two-Way Fixed Effects') ``` Correlació en la serie ```{r} pbgtest(twoway_effects) ``` ```{r} twoway_effects_hac <- coeftest(twoway_effects, vcov = vcovHC(twoway_effects, method = "arellano", type = "HC3")) screenreg(list(twoway_effects, twoway_effects_hac), custom.model.names = c("Twoway Fixed Effects", "Twoway Fixed Effects (HAC)")) #tab_model(twoway_effects, twoway_effects_hac, show.se = TRUE, title = 'Two-Way Fixed Effects and Two-Way Fixed Effects (HAC)') ``` Dependencia transversal ```{r} pcdtest(twoway_effects) ``` 86 Driscoll i Kraay (1998) ```{r} twoway_effects_scc <- coeftest(twoway_effects, vcov = vcovSCC(twoway_effects, type="HC3", cluster = "group")) twoway_effects_scc as.table(twoway_effects_scc) ``` ```{r} screenreg(list(country_effects, time_effects, twoway_effects, twoway_effects_scc), custom.model.names = c("Country Effects", "Time Effects", "Two-Way Fixed Effects", "SCC")) ``` *Regresión con efectos aleatorios / Random Effects Model* ```{r} library(plm) library(knitr) library(broom) wageReTest <- plmtest(ols_2, effect="individual") kable(tidy(wageReTest), caption= "Random effects test") ``` ```{r} library(Ecdat) library(plm) random <- plm(deaths ~ tests_done+testing_rate+positivity_rate+new_cases+daily_hosp_occupan cy+daily_ICU_occupancy, index=c("country", "year_week"), model="random", data=covid)