Magyarországi panel adatok

Elméleti megfontolás

A tanulmány ezen részében a teljes termékenységi arányszám, az egy főre GDP és a munkanélküliség magyarországi megyei szintű adatain folytatom az elemzést. TTA és GDP/fő adatok 2005-től 2018-ig, munkanélküliségi ráta 2006-tól 2019-ig volt elérhető számomra megyei bontásban, így panelökonometriai eszközök alkalmazására nyílik lehetőség. A fő motiváció ezen elemzés mögött, hogy a fentebb idősoros eszközökkel kinyert következtetések nagyobb mintaelemszámmal is megerősítést (vagy cáfolást) nyerjenek, illetve további ismeretek nyerhetők ki a hatások terület koncentrációja mentén.

Módszertan bemutatása

A lehetséges panelmodellek közül az alábbiakat vetem össze: ömlesztett modell, fixhatás-modell, véletlenhatás-modell. Az ömlesztett modell esetében minden megfigyelés ugyanazon konstanssal és magyarázóváltozókhoz tartozó paraméterekkel kerül meghatározásra. A fixhatás-modellnél az egyes megyékhez tartozó konstansok már eltérőek, mindegyik egyéni tengelymetszettel rendelkezik, de a magyarázóváltozókhoz tartozó paraméterek mindnél ugyanazok (a hatások fixálva vannak). A véletlenhatás-modell az előbbitől abban különbözik, hogy az egyéni konstansokat egy normális eloszlású véletlen folyamat által generált realizációknak tekintjük, így a becslés matematikája változik. A három modell közötti választás statisztikai tesztek alapján történik. Elsőként a Chow-tesztet végzem el, melynek nullhipotézise, hogy az ömlesztett modellt érdemes alkalmazni, majd elutasítás esetén a Hausman-tesztet, melynek nullhipotézise, hogy a véletlenhatás-modell felhasználása szükséges. Mindkét teszt nullhipotézisének elutasítása esetén a fixhatás-modell becslésére kerül sor. A magyarázóváltozók halmazának kiválasztását bonyolítja, hogy a fentebb bemutatott VAR modellek eredményei alapján a GDP/fő és a munkanélküliség késletetett változóit érdemes felhasználni. Ezzel ugyanis már nem választható ki modell egy információs kritérium minimalizálási céllal, mert a legnagyobb késleltetésű magyarázóváltozó megváltozásával az eredményváltozó is megváltozik, így az összehasonlítás nem lenne megfelelő. A változószelekció során ezért a paraméterek szignifikanciájára és a korrigált \(R^2\)-re fordítok figyelmet.

Modellbecslés és hipotézisvizsgálat

Mivel információs kritérium alapú modellszelekció a késleltetett magyarázó változók miatt nem kivitelezhető, így a fentebb leírtaknak megfelelően több modell is megbecslésre kerül. Mindegyik modell esetében a felhasznált magyarázóváltozók körének meghatározása után elvégzem a Chow- és Hausman-tesztet. A becsült négy modell esetében kivétel nélkül elutasításra kerül mindkét teszt nullhipotézise, így a fixhatású-modell alkalmazása indokolt. A 2. táblázat ismerteti az egyes fixhatású-modellek becsült paramétereit, illetve modell jellemzőket, köztük a két modellválasztási teszt p-értékét és a fixhatású-modell korrigált \(R^2\) értékét.

c.panel.extended <- c.panel %>%
  transmute(
    county, year, tfr, GDPcap,
    GDPcap2 = GDPcap^2,
    GDPcap_l = ifelse(year == 2005, NA, dplyr::lag(GDPcap)),
    GDPcap_l2 = ifelse(year == 2005, NA, dplyr::lag(GDPcap2)),
    GDPcap_ll = ifelse(year == 2005, NA, dplyr::lag(GDPcap_l)),
    GDPcap_ll2 = ifelse(year == 2005, NA, dplyr::lag(GDPcap_l2)),
    GDPcap_lll = ifelse(year == 2005, NA, dplyr::lag(GDPcap_ll)),
    GDPcap_lll2 = ifelse(year == 2005, NA, dplyr::lag(GDPcap_ll2)),
    unr,
    unr2 = unr^2,
    unr_l = ifelse(year == 2005, NA, dplyr::lag(unr)),
    unr_l2 = ifelse(year == 2005, NA, dplyr::lag(unr2)),
    unr_ll = ifelse(year == 2005, NA, dplyr::lag(unr_l)),
    unr_ll2 = ifelse(year == 2005, NA, dplyr::lag(unr_l2)),
    unr_lll = ifelse(year == 2005, NA, dplyr::lag(unr_ll)),
    unr_lll2 = ifelse(year == 2005, NA, dplyr::lag(unr_ll2)),
  )

terms <- list(
  c("GDPcap", "unr"),
  c("GDPcap", "unr", "unr2", "GDPcap2", "unr_l", "unr_l2", "GDPcap_l",
    "GDPcap_l2", "unr_ll", "unr_ll2", "GDPcap_ll", "GDPcap_ll2", "unr_lll",  
    "unr_lll2", "GDPcap_lll", "GDPcap_lll2"),
  c("GDPcap", "GDPcap2", "GDPcap_l", "GDPcap_l2", "GDPcap_ll", "GDPcap_ll2"),
  c("GDPcap_l", "GDPcap_l2", "GDPcap_ll")
)
panel.tbl <- data.frame(term = c(names(c.panel.extended)[-c(1, 2, 3)],
                          "Chow-teszt", "Hausman-teszt", "Korrigált R^2"))

for (i in 1:length(terms)) {
  formula <- as.expression(paste("formula = tfr ~", paste(terms[[i]],
                                                      collapse = " + ")))

  c.panel.pooling.extended <- plm(eval(formula), 
                                  data = c.panel.extended, model = "pooling")
  c.panel.within.extended <- plm(eval(formula),
                                 data = c.panel.extended, model = "within")
  c.panel.random.extended <- plm(eval(formula),
                                 data = c.panel.extended, model = "random")

  panel.tbl <- panel.tbl %>%
    merge(c.panel.within.extended %>%
            broom::tidy() %>% 
            transmute(
              term,
              estimate = paste0(as.character(format(
                estimate, digits = 3, nsmall = 3, decimal.mark = ",")),
                case_when(
                  p.value < .01 ~ "***",
                  p.value < .05 ~ "**",
                  p.value < .1 ~ "*",
                  T ~ ""
                  ))
              ) %>% rbind(
                data.frame(
                  term = c("Chow-teszt", "Hausman-teszt", "Korrigált R^2"),
                           estimate = c(
        pooltest(c.panel.pooling.extended, c.panel.within.extended)$p.value %>%
          scales::percent(accuracy = .01, decimal.mark = ","),
        phtest(c.panel.within.extended, c.panel.random.extended)$p.value %>%
          scales::percent(accuracy = .01, decimal.mark = ","),
        c.panel.within.extended %>% plm::r.squared(dfcor = T) %>%
          scales::percent(accuracy = .01, decimal.mark = ",")
      )
    )
  ) %>% set_names(c("term", i)),
  all = T
  )
}

panel.tbl %>%
  setNames(c("variable", as.roman(1:(ncol(.) - 1)))) %>%
  mutate(variable = factor(variable, levels = c(names(c.panel.extended),
                      "Chow-teszt", "Hausman-teszt", "Korrigált R^2"))) %>%
  arrange(variable) %>%
  mutate(
    variable = as.character(variable),
    variable = str_replace(variable, "2", "^2"),
    variable = ifelse(variable == "Korrigált R^^2", "Korrigált R^2", variable),
    variable = str_replace(variable, "GDPcap", "GDP/fő"),
    variable = str_replace(variable, "unr", "Munkanélküliségi ráta"),
    variable = str_replace(variable, "_lll", " (l=3)"),
    variable = str_replace(variable, "_ll", " (l=2)"),
    variable = str_replace(variable, "_l", " (l=1)")
  ) %>% mutate_all(function(x) ifelse(is.na(x), "", x)) %>%
  knitr::kable(
    col.names = c("változó", "I.", "II.", "III.", "IV."),
    align = c("l", rep("c", ncol(.) - 1)),
    caption = "Becsült longitudinális modellek a TTA-ra"
  )
Táblázat 2: Becsült longitudinális modellek a TTA-ra
változó I. II. III. IV.
GDP/fő 6,34e-05*** -9,61e-05 8,53e-05
GDP/fő^2 1,15e-08 -1,33e-09
GDP/fő (l=1) 3,54e-04*** 4,23e-04*** 4,63e-04***
GDP/fő (l=1)^2 -3,24e-08* -3,77e-08** -3,15e-08***
GDP/fő (l=2) 2,00e-04* -1,48e-04* -8,16e-05**
GDP/fő (l=2)^2 -2,06e-08 9,40e-09
GDP/fő (l=3) -7,65e-05
GDP/fő (l=3)^2 8,49e-09
Munkanélküliségi ráta -2,05e-02*** -2,39e-03
Munkanélküliségi ráta^2 -2,66e-04
Munkanélküliségi ráta (l=1) 9,95e-04
Munkanélküliségi ráta (l=1)^2 -2,73e-04
Munkanélküliségi ráta (l=2) 3,21e-03
Munkanélküliségi ráta (l=2)^2 -2,29e-04
Munkanélküliségi ráta (l=3) 1,23e-02
Munkanélküliségi ráta (l=3)^2 -1,44e-04
Chow-teszt 0,00% 0,00% 0,00% 0,00%
Hausman-teszt 0,00% 0,07% 0,00% 0,00%
Korrigált R^2 68,07% 82,75% 71,41% 71,02%

Jelölések: l=1 \(\rightarrow\) első késleltetett; \(\ast\) \(\rightarrow\) adott változó 10%-os szignifikancia szinten szignifikáns; \(\ast\ast\) \(\rightarrow\) adott változó 5%-os szignifikancia szinten szignifikáns; \(\ast\ast\ast\) \(\rightarrow\) adott változó 1%-os szignifikancia szinten szignifikáns.
A paraméterek mindegyik esetben a fixhatású-modell paramétereit mutatják. A GDP/fő ezer Forintban, míg a munkanélküliségi ráta százalékban került a modellbe.

Az első modell nem tartalmaz késleltetett magyarázó változókat, sem kvadratikus hatást megjelenítő négyzetre emelt tagokat. Ebben az esetben mind a GDP/fő, mind a munkanélküliségi ráta paramétere 1%-on szignifikáns. A második modellben szerepel a GDP/fő és munkanélküliségi ráta, ezeknek négyzetei, és mindezek késleltetett változatai, egészen a harmadik évig (miután mindössze 19 megye és Budapest idősora szerepel a modellben, így több regresszor felvételére nincs lehetőség). A második longitudinális modellben a munkanélküliségi rátának egyetlen transzformáltja sem szignifikáns, a p-értékek eseteként egy közeliek. Ennek megfelelően a harmadik modell már csak a GDP/fő transzformáltjait tartalmazza. Csak úgy, mint a második modellben az egy évvel késeltetett, az egy évvel késleltetett kvadratikus, és a két évvel késleltetett GDP/fő érték mutatkozik szignifikánsnak a modellben. Így a negyedik modell már csak ezt a három regresszort tartalmazza. A IV. modell egyedi konstansait a 8. ábra ismerteti, amelyből kivehető, hogy a TTA GDP/főtől nem függő komponense a fővárosban a legalacsonyabb, míg az észak-keleti megyékben lényegesen magasabb.

A IV. longitudinális modell egyedi konstansai

Ábra 8: A IV. longitudinális modell egyedi konstansai

Eredmények értelmezése, következtetések levonása

A II., III. és IV. longitudinális modell eredménye is arra utal, hogy a GDP/fő egy évvel késeltetett, egy évvel késleltetett kvadratikus, és a két évvel késleltetett értéke meghatározó a termékenységi ráta alakulásában. Látható, hogy a korrigált R2 igen magas, illetve a 9. ábra jeleníti meg a IV. modellel készült becsléseket, amelyeken szintén az látszik, hogy a modell igen jól írja le a TTA alakulását.

TTA becslése megyénként a fix modellel

Ábra 9: TTA becslése megyénként a fix modellel

A szignifikánsnak bizonyult regresszorok köre a fentebb közölt VAR modellek eredményei alapján a vártnak megfelelőek. Ami újonnan kinyert és releváns információ, hogy GDP/fő négyzetének késleltetett értéke is szignifikáns, illetve előjele negatív, tehát a GDP/fő növekedésének hatása a TTA-ra nézve ellaposodó. Ezt a hatást jeleníti meg a 10. ábra. Jól kivehető, hogy a termékenységi rátára való hatása az egy főre eső GDP-nek 7340 ezer Forint után már nem növelő, hanem csökkentő. Az egyetlen területi egység, melynek GDP/fő értéke ezt meghaladja az Budapest. Mindez azt jelenti, hogy a termékenységi ráta emelésében szükséges a szegényebb területek (Nógrád megye, Szabolcs-Szatmár-Bereg megye, Békés megye) bruttó kibocsátásának emelése, mert ott egységnyi GDP/fő emelkedés nagyobb hatást ér el. Ez az eredmény egyenesen szembe megy annak, amit internacionális elemzések korábban a GDP/fő és a TTA közti kapcsolatról leírtak (Kreiszné Hudák 2019:207).

Miután a 2. késleltetés is szignifikáns, negatív előjellel, így arra a következtetésre jutunk, hogy minden változatlanság mellett a GDP/fő növekedését követően a második évben némileg alacsonyabb lesz a TTA, mint az első évben, de ez a hatás nagyságrendekkel kisebb.

A GDP/fő hatása a TTA-ra a IV. panel modell alapján

Ábra 10: A GDP/fő hatása a TTA-ra a IV. panel modell alapján