#import data
eu_panel_data <- read.csv("~/Desktop/dsba/spring semester/econometrics/final project/eu_panel_data.csv")
str(eu_panel_data)
## 'data.frame': 168 obs. of 9 variables:
## $ Country : chr "Belgium" "Belgium" "Belgium" "Belgium" ...
## $ Year : int 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 ...
## $ Total.Unemployment.Rate : num 8.3 7.2 7.6 8.4 8.5 8.5 7.8 7.1 6 5.4 ...
## $ Monthly.Minimum.Wage..euro. : chr "1,388" "1,430" "1,458" "1,502" ...
## $ Real.GDP.Growth.Rate : num 100 102 102 102 104 ...
## $ Inflation.Rate..HICP. : num 92.1 95.2 97.7 98.9 99.4 ...
## $ Education.Expenditure....of.GDP. : num 6 6.2 6.2 6.3 6.3 6.3 6.3 6.2 6.2 6.1 ...
## $ Social.Protection.Expenditure..million.euro.: chr "101,947.70" "107,535.07" "109,573.14" "113,134.35" ...
## $ Labor.Force.Participation.Rate : num 54.1 53.2 53.2 53.6 53.5 ...
#change the data to numerical type
eu_panel_data <- eu_panel_data %>%
mutate(
Monthly.Minimum.Wage..euro. = as.numeric(gsub(",", "", Monthly.Minimum.Wage..euro.)),
Social.Protection.Expenditure..million.euro. = as.numeric(gsub(",", "", Social.Protection.Expenditure..million.euro.))
)
#change names of variable
eu_panel_data <- eu_panel_data %>%rename(Unemployment_Rate=Total.Unemployment.Rate)
eu_panel_data <- eu_panel_data %>%rename(Minimum_wage=Monthly.Minimum.Wage..euro.)
eu_panel_data <- eu_panel_data %>%rename(GDP=Real.GDP.Growth.Rate)
eu_panel_data <- eu_panel_data %>%rename(Inflation=Inflation.Rate..HICP.)
eu_panel_data <- eu_panel_data %>%rename(Edu_exp=Education.Expenditure....of.GDP.)
eu_panel_data <- eu_panel_data %>%rename(Siopo_exp=Social.Protection.Expenditure..million.euro.)
eu_panel_data <- eu_panel_data %>%rename(LF_partic=Labor.Force.Participation.Rate)
#Clean data
model_vars <- c("Unemployment_Rate", "Minimum_wage", "GDP", "Inflation", "Edu_exp", "Siopo_exp","LF_partic")
complete_panel <- eu_panel_data[complete.cases(eu_panel_data[, model_vars]), ]
# Variable explanation
#**Unemployment Rate**: Share of the labor force aged 15–74 that is jobless, actively seeking work, and available to start within two weeks.
#**Minimum Wage**: Statutory minimum remuneration set by law or national agreement, usually expressed monthly.
#**GDP Growth Rate**: Annual percentage change in real GDP.
#**Inflation Rate**: Year-over-year percentage change in the Harmonised Index of Consumer Prices (HICP).
#**Education Expenditure**: Public spending on education as a percentage of GDP, including school operations and support to households.
#**Social Protection Expenditure**: Government expenditure on social welfare programs, such as pensions, healthcare, and unemployment benefits (% of GDP).
#**Labor Force Participation**: Percentage of the population aged 15–64 that is either employed or actively looking for work.
# This is a unbalanced panel
## Germany officially introduced a national wide minimum wage system for the first time in 2015. Therefore, the missing data on Germany's minimum wage for the years prior to 2015 is not a random omission, but a structural absence reflecting historical economic policy.
## Greece has a missing value for social protection expenditure in 2023, possibly due to reporting delays or data unavailability from official sources.
## Thus, instead of 168 datasize, we have 6 missing variables in our dataset. 162 will further proceed in our research.
# Visualize of variables
library(DescTools)
##
## Attaching package: 'DescTools'
## The following object is masked from 'package:car':
##
## Recode
Desc(eu_panel_data)
## ──────────────────────────────────────────────────────────────────────────────
## Describe eu_panel_data (data.frame):
##
## data frame: 168 obs. of 9 variables
## 162 complete cases (96.4%)
##
## Nr Class ColName NAs Levels
## 1 chr Country .
## 2 int Year .
## 3 num Unemployment_Rate .
## 4 num Minimum_wage 5 (3.0%)
## 5 num GDP .
## 6 num Inflation .
## 7 num Edu_exp .
## 8 num Siopo_exp 1 (0.6%)
## 9 num LF_partic .
##
##
## ──────────────────────────────────────────────────────────────────────────────
## 1 - Country (character)
##
## length n NAs unique levels dupes
## 168 168 0 12 12 y
## 100.0% 0.0%
##
## level freq perc cumfreq cumperc
## 1 Belgium 14 8.3% 14 8.3%
## 2 Croatia 14 8.3% 28 16.7%
## 3 Czechia 14 8.3% 42 25.0%
## 4 France 14 8.3% 56 33.3%
## 5 Germany 14 8.3% 70 41.7%
## 6 Greece 14 8.3% 84 50.0%
## 7 Hungary 14 8.3% 98 58.3%
## 8 Netherlands 14 8.3% 112 66.7%
## 9 Poland 14 8.3% 126 75.0%
## 10 Portugal 14 8.3% 140 83.3%
## 11 Slovakia 14 8.3% 154 91.7%
## 12 Spain 14 8.3% 168 100.0%
## ──────────────────────────────────────────────────────────────────────────────
## 2 - Year (integer)
##
## length n NAs unique 0s mean meanCI'
## 168 168 0 14 0 2'016.50 2'015.88
## 100.0% 0.0% 0.0% 2'017.12
##
## .05 .10 .25 median .75 .90 .95
## 2'010.00 2'011.00 2'013.00 2'016.50 2'020.00 2'022.00 2'023.00
##
## range sd vcoef mad IQR skew kurt
## 13.00 4.04 0.00 5.19 7.00 0.00 -1.23
##
## lowest : 2'010 (12), 2'011 (12), 2'012 (12), 2'013 (12), 2'014 (12)
## highest: 2'019 (12), 2'020 (12), 2'021 (12), 2'022 (12), 2'023 (12)
##
## ' 95%-CI (classic)
## ──────────────────────────────────────────────────────────────────────────────
## 3 - Unemployment_Rate (numeric)
##
## length n NAs unique 0s mean meanCI'
## 168 168 0 102 0 9.296 8.414
## 100.0% 0.0% 0.0% 10.178
##
## .05 .10 .25 median .75 .90 .95
## 2.970 3.400 5.100 7.400 12.275 17.300 21.890
##
## range sd vcoef mad IQR skew kurt
## 25.500 5.788 0.623 4.818 7.175 1.207 0.933
##
## lowest : 2.0, 2.2 (2), 2.6 (2), 2.8 (2), 2.9 (2)
## highest: 24.8, 24.9, 26.1, 26.5, 27.5
##
## ' 95%-CI (classic)
## ──────────────────────────────────────────────────────────────────────────────
## 4 - Minimum_wage (numeric)
##
## length n NAs unique 0s mean meanCI'
## 168 163 5 133 0 878.15 801.62
## 97.0% 3.0% 0.0% 954.69
##
## .05 .10 .25 median .75 .90 .95
## 317.30 339.40 461.00 700.00 1'444.50 1'562.60 1'662.90
##
## range sd vcoef mad IQR skew kurt
## 1'732.00 494.83 0.56 472.95 983.50 0.56 -1.21
##
## lowest : 265.0, 287.0, 307.0, 308.0, 310.0 (2)
## highest: 1'741.0, 1'750.0, 1'955.0, 1'965.0, 1'997.0
##
## ' 95%-CI (classic)
## ──────────────────────────────────────────────────────────────────────────────
## 5 - GDP (numeric)
##
## length n NAs unique 0s mean meanCI'
## 168 168 0 157 0 108.8113 106.7237
## 100.0% 0.0% 0.0% 110.8989
##
## .05 .10 .25 median .75 .90 .95
## 85.2285 95.4363 100.3780 106.6860 115.6348 126.0570 134.1301
##
## range sd vcoef mad IQR skew kurt
## 77.2730 13.7055 0.1260 9.9127 15.2568 0.6302 1.0739
##
## lowest : 78.07, 80.738, 81.166, 81.192, 81.377
## highest: 140.463, 140.542, 147.219, 154.956, 155.343
##
## ' 95%-CI (classic)
## ──────────────────────────────────────────────────────────────────────────────
## 6 - Inflation (numeric)
##
## length n NAs unique 0s mean meanCI'
## 168 168 0 147 0 104.8731 103.2179
## 100.0% 0.0% 0.0% 106.5283
##
## .05 .10 .25 median .75 .90 .95
## 93.0640 95.3550 99.5150 101.2850 106.5700 118.9980 126.6355
##
## range sd vcoef mad IQR skew kurt
## 71.1200 10.8669 0.1036 4.2254 7.0550 2.1521 5.8222
##
## lowest : 89.47, 91.69, 92.05, 92.09, 92.55
## highest: 137.22, 138.79, 143.5, 147.9, 160.59
##
## ' 95%-CI (classic)
## ──────────────────────────────────────────────────────────────────────────────
## 7 - Edu_exp (numeric)
##
## length n NAs unique 0s mean meanCI'
## 168 168 0 27 0 4.857 4.755
## 100.0% 0.0% 0.0% 4.958
##
## .05 .10 .25 median .75 .90 .95
## 3.935 4.100 4.300 4.800 5.300 5.630 6.200
##
## range sd vcoef mad IQR skew kurt
## 3.000 0.665 0.137 0.741 1.000 0.577 -0.268
##
## lowest : 3.7, 3.8, 3.9 (7), 4.0 (6), 4.1 (10)
## highest: 6.1 (2), 6.2 (6), 6.3 (5), 6.5, 6.7
##
## heap(?): remarkable frequency (9.5%) for the mode(s) (= 5)
##
## ' 95%-CI (classic)
## ──────────────────────────────────────────────────────────────────────────────
## 8 - Siopo_exp (numeric)
##
## length n NAs unique 0s mean'
## 168 167 1 = n 0 215'625.83
## 99.4% 0.6% 0.0%
##
## .05 .10 .25 median .75 .90
## 11'189.35 13'806.52 30'106.00 69'336.31 259'208.64 748'134.89
##
## range sd vcoef mad IQR skew
## 1'188'340.62 296'062.73 1.37 82'050.78 229'102.65 1.68
##
## meanCI
## 170'393.25
## 260'858.41
##
## .95
## 873'700.03
##
## kurt
## 1.58
##
## lowest : 9'158.79, 9'222.77, 9'296.36, 9'300.86, 9'375.08
## highest: 1'001'380.08, 1'071'830.54, 1'108'092.13, 1'137'580.91, 1'197'499.41
##
## ' 95%-CI (classic)
## ──────────────────────────────────────────────────────────────────────────────
## 9 - LF_partic (numeric)
##
## length n NAs unique 0s mean meanCI'
## 168 168 0 167 0 57.37587 56.76996
## 100.0% 0.0% 0.0% 57.98179
##
## .05 .10 .25 median .75 .90 .95
## 51.33455 51.66350 54.15550 57.92200 59.87475 61.48880 64.47730
##
## range sd vcoef mad IQR skew kurt
## 18.20200 3.97794 0.06933 3.40701 5.71925 0.17414 -0.39621
##
## lowest : 50.344, 50.489, 50.677, 50.771, 50.841
## highest: 64.963, 65.006, 66.987, 67.899, 68.546
##
## ' 95%-CI (classic)
# correlation matrix
num_data <- eu_panel_data[, c("Unemployment_Rate", "Minimum_wage", "GDP",
"Inflation", "Edu_exp", "Siopo_exp", "LF_partic")]
corr_matrix <- cor(num_data, use = "complete.obs")
corrplot(corr_matrix, method = "color", type = "upper",
addCoef.col = "black", tl.cex = 0.8, number.cex = 0.7)
#Panel Model- Base model
re_base<-plm(Unemployment_Rate~Minimum_wage+GDP+Inflation+Edu_exp+Siopo_exp+LF_partic, data=complete_panel, index=c("Country", "Year"), model="random")
summary(re_base)
## Oneway (individual) effect Random Effect Model
## (Swamy-Arora's transformation)
##
## Call:
## plm(formula = Unemployment_Rate ~ Minimum_wage + GDP + Inflation +
## Edu_exp + Siopo_exp + LF_partic, data = complete_panel, model = "random",
## index = c("Country", "Year"))
##
## Unbalanced Panel: n = 12, T = 9-14, N = 162
##
## Effects:
## var std.dev share
## idiosyncratic 3.450 1.858 0.293
## individual 8.336 2.887 0.707
## theta:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.7903 0.8305 0.8305 0.8278 0.8305 0.8305
##
## Residuals:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -5.7206 -1.2474 -0.2280 0.0083 1.0124 6.7696
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 16.1602854388 7.0512711382 2.2918 0.02192 *
## Minimum_wage -0.0087569729 0.0019481442 -4.4950 0.000006956 ***
## GDP -0.2854710161 0.0287128966 -9.9423 < 0.00000000000000022 ***
## Inflation 0.1144802426 0.0266515718 4.2954 0.000017435 ***
## Edu_exp 0.2091720188 0.5081880033 0.4116 0.68063
## Siopo_exp 0.0000057978 0.0000032427 1.7880 0.07378 .
## LF_partic 0.3100815537 0.1364887896 2.2718 0.02310 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 1668.7
## Residual Sum of Squares: 608.49
## R-Squared: 0.63537
## Adj. R-Squared: 0.62125
## Chisq: 271.11 on 6 DF, p-value: < 0.000000000000000222
#Panel Model- Interact model+macro interaction
complete_panel <- complete_panel %>%
mutate(
MW_GDP = Minimum_wage * GDP,
MW_Inflation = Minimum_wage * Inflation)
re_macro_interact<-plm(Unemployment_Rate~Minimum_wage+GDP+Inflation+Edu_exp+Siopo_exp+LF_partic+MW_GDP+MW_Inflation, data=complete_panel, index=c("Country", "Year"), model="random")
summary(re_macro_interact)
## Oneway (individual) effect Random Effect Model
## (Swamy-Arora's transformation)
##
## Call:
## plm(formula = Unemployment_Rate ~ Minimum_wage + GDP + Inflation +
## Edu_exp + Siopo_exp + LF_partic + MW_GDP + MW_Inflation,
## data = complete_panel, model = "random", index = c("Country",
## "Year"))
##
## Unbalanced Panel: n = 12, T = 9-14, N = 162
##
## Effects:
## var std.dev share
## idiosyncratic 3.076 1.754 0.254
## individual 9.029 3.005 0.746
## theta:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.8090 0.8459 0.8459 0.8434 0.8459 0.8459
##
## Residuals:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -5.1737 -1.1826 -0.1559 0.0072 0.8907 6.5791
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 26.2981457431 7.6465281002 3.4392 0.0005834 ***
## Minimum_wage -0.0271606590 0.0056603034 -4.7984 0.000001599016033 ***
## GDP -0.4210319181 0.0606689280 -6.9398 0.000000000003926 ***
## Inflation 0.1478052684 0.0491084466 3.0098 0.0026144 **
## Edu_exp 0.4693989562 0.4976556459 0.9432 0.3455682
## Siopo_exp 0.0000053150 0.0000033177 1.6020 0.1091448
## LF_partic 0.3210388192 0.1348249162 2.3812 0.0172585 *
## MW_GDP 0.0002425235 0.0000836708 2.8985 0.0037490 **
## MW_Inflation -0.0000833362 0.0000605175 -1.3771 0.1684940
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 1648.5
## Residual Sum of Squares: 550.29
## R-Squared: 0.66619
## Adj. R-Squared: 0.64873
## Chisq: 306.27 on 8 DF, p-value: < 0.000000000000000222
# OLS Model
ols<- lm(Unemployment_Rate~Minimum_wage+GDP+Inflation+Edu_exp+Siopo_exp+LF_partic, data=complete_panel)
#Panel Data-Fixed Effect
fixed<-plm(Unemployment_Rate~Minimum_wage+GDP+Inflation+Edu_exp+Siopo_exp+LF_partic, data=complete_panel, index=c("Country", "Year"), model="within")
#Panel Data-Random Effect
random<-plm(Unemployment_Rate~Minimum_wage+GDP+Inflation+Edu_exp+Siopo_exp+LF_partic, data=complete_panel, index=c("Country", "Year"), model="random")
# F-test for individual effects (pFtest)
pFtest(fixed, ols)
##
## F test for individual effects
##
## data: Unemployment_Rate ~ Minimum_wage + GDP + Inflation + Edu_exp + ...
## F = 40.562, df1 = 11, df2 = 144, p-value < 0.00000000000000022
## alternative hypothesis: significant effects
# H₀: All individual (country-specific) effects are equal to zero — the Pooled OLS model is appropriate.
# H₁: At least one individual effect is non-zero — the Fixed Effects model is preferred.
# The p-value is below the significance level, so we reject the null hypothesis.
# This suggests that the Fixed Effects model is more appropriate for our data.
#Hausman test
phtest(fixed, random)
##
## Hausman Test
##
## data: Unemployment_Rate ~ Minimum_wage + GDP + Inflation + Edu_exp + ...
## chisq = 12.234, df = 6, p-value = 0.05695
## alternative hypothesis: one model is inconsistent
# H₀: The Random Effects model is consistent and efficient (difference in coefficients is not systematic).
# H₁: The Fixed Effects model is consistent, but Random Effects is not (difference in coefficients is systematic).
# The p-value is larger than 5%, so we failed to reject the null hypothesis.
# Therefore, the Random Effects model is preferred in this case.
print("Random Effect is prefered in this case")
## [1] "Random Effect is prefered in this case"
# general to specific
model_general <- plm(Unemployment_Rate~Minimum_wage+GDP+Inflation+Edu_exp+Siopo_exp+LF_partic, data=complete_panel, index=c("Country", "Year"), model="random")
summary(model_general)
## Oneway (individual) effect Random Effect Model
## (Swamy-Arora's transformation)
##
## Call:
## plm(formula = Unemployment_Rate ~ Minimum_wage + GDP + Inflation +
## Edu_exp + Siopo_exp + LF_partic, data = complete_panel, model = "random",
## index = c("Country", "Year"))
##
## Unbalanced Panel: n = 12, T = 9-14, N = 162
##
## Effects:
## var std.dev share
## idiosyncratic 3.450 1.858 0.293
## individual 8.336 2.887 0.707
## theta:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.7903 0.8305 0.8305 0.8278 0.8305 0.8305
##
## Residuals:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -5.7206 -1.2474 -0.2280 0.0083 1.0124 6.7696
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 16.1602854388 7.0512711382 2.2918 0.02192 *
## Minimum_wage -0.0087569729 0.0019481442 -4.4950 0.000006956 ***
## GDP -0.2854710161 0.0287128966 -9.9423 < 0.00000000000000022 ***
## Inflation 0.1144802426 0.0266515718 4.2954 0.000017435 ***
## Edu_exp 0.2091720188 0.5081880033 0.4116 0.68063
## Siopo_exp 0.0000057978 0.0000032427 1.7880 0.07378 .
## LF_partic 0.3100815537 0.1364887896 2.2718 0.02310 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 1668.7
## Residual Sum of Squares: 608.49
## R-Squared: 0.63537
## Adj. R-Squared: 0.62125
## Chisq: 271.11 on 6 DF, p-value: < 0.000000000000000222
model_specific <- plm(Unemployment_Rate~Minimum_wage+GDP+Inflation+Siopo_exp+LF_partic, data=complete_panel, index=c("Country", "Year"), model="random")
waldtest(model_general, model_specific)
## Wald test
##
## Model 1: Unemployment_Rate ~ Minimum_wage + GDP + Inflation + Edu_exp +
## Siopo_exp + LF_partic
## Model 2: Unemployment_Rate ~ Minimum_wage + GDP + Inflation + Siopo_exp +
## LF_partic
## Res.Df Df Chisq Pr(>Chisq)
## 1 155
## 2 156 -1 0.1694 0.6806
# This implies that Edu_exp can be removed from the model.
# Further steps are needed to continue the general-to-specific model reduction.
##drop variabe 'Edu_exp'
gets_1<- plm(Unemployment_Rate~Minimum_wage+GDP+Inflation+Siopo_exp+LF_partic, data=complete_panel, index=c("Country", "Year"), model="random")
summary(gets_1)
## Oneway (individual) effect Random Effect Model
## (Swamy-Arora's transformation)
##
## Call:
## plm(formula = Unemployment_Rate ~ Minimum_wage + GDP + Inflation +
## Siopo_exp + LF_partic, data = complete_panel, model = "random",
## index = c("Country", "Year"))
##
## Unbalanced Panel: n = 12, T = 9-14, N = 162
##
## Effects:
## var std.dev share
## idiosyncratic 3.433 1.853 0.208
## individual 13.040 3.611 0.792
## theta:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## 0.8314 0.8641 0.8641 0.8619 0.8641 0.8641
##
## Residuals:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -5.9032 -1.1828 -0.2104 0.0079 1.0300 6.6300
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 14.6435249400 6.9972190251 2.0928 0.03637 *
## Minimum_wage -0.0098957434 0.0020938387 -4.7261 0.000002288 ***
## GDP -0.2801566820 0.0279457977 -10.0250 < 0.00000000000000022 ***
## Inflation 0.1169115925 0.0267423014 4.3718 0.000012323 ***
## Siopo_exp 0.0000070535 0.0000035209 2.0033 0.04515 *
## LF_partic 0.3526142318 0.1401769591 2.5155 0.01189 *
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 1626.8
## Residual Sum of Squares: 577.15
## R-Squared: 0.64523
## Adj. R-Squared: 0.63386
## Chisq: 284.43 on 5 DF, p-value: < 0.000000000000000222
stargazer(model_general,model_specific,gets_1,type="text")
##
## =============================================
## Dependent variable:
## --------------------------------
## Unemployment_Rate
## (1) (2) (3)
## ---------------------------------------------
## Minimum_wage -0.009*** -0.010*** -0.010***
## (0.002) (0.002) (0.002)
##
## GDP -0.285*** -0.280*** -0.280***
## (0.029) (0.028) (0.028)
##
## Inflation 0.114*** 0.117*** 0.117***
## (0.027) (0.027) (0.027)
##
## Edu_exp 0.209
## (0.508)
##
## Siopo_exp 0.00001* 0.00001** 0.00001**
## (0.00000) (0.00000) (0.00000)
##
## LF_partic 0.310** 0.353** 0.353**
## (0.136) (0.140) (0.140)
##
## Constant 16.160** 14.644** 14.644**
## (7.051) (6.997) (6.997)
##
## ---------------------------------------------
## Observations 162 162 162
## R2 0.635 0.645 0.645
## Adjusted R2 0.621 0.634 0.634
## F Statistic 271.110*** 284.430*** 284.430***
## =============================================
## Note: *p<0.1; **p<0.05; ***p<0.01
# All explanatory variables are statistically significant at this stage,
# thus concluding the general-to-specific modeling procedure.
# No evidence suggests that we have incorrectly retained irrelevant variables,
# reducing the risk of Type I errors in variable selection.
#Testing for serial correlation
pbgtest(gets_1)
##
## Breusch-Godfrey/Wooldridge test for serial correlation in panel models
##
## data: Unemployment_Rate ~ Minimum_wage + GDP + Inflation + Siopo_exp + ...
## chisq = 95.51, df = 9, p-value < 0.00000000000000022
## alternative hypothesis: serial correlation in idiosyncratic errors
# Testing for heteroskedasticity
bptest(Unemployment_Rate~Minimum_wage+GDP+Inflation+Siopo_exp+LF_partic, data=complete_panel, studentize=TRUE)
##
## studentized Breusch-Pagan test
##
## data: Unemployment_Rate ~ Minimum_wage + GDP + Inflation + Siopo_exp + LF_partic
## BP = 24.194, df = 5, p-value = 0.0001992
# Robust standard error
coeftest(gets_1, vcov = vcovHC(random, method = "arellano", type = "HC1", cluster = "group"))
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 14.6435249400 9.8286120213 1.4899 0.13827
## Minimum_wage -0.0098957434 0.0031241513 -3.1675 0.00185 **
## GDP -0.2801566820 0.0583478798 -4.8015 0.000003662 ***
## Inflation 0.1169115925 0.0277011045 4.2205 0.000041244 ***
## Siopo_exp 0.0000070535 0.0000042368 1.6648 0.09795 .
## LF_partic 0.3526142318 0.2218706672 1.5893 0.11402
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1