Si-Tang Lin

Loading Require Library

Import & Inspect data

#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 ...

Data Cleaning

#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 Description

# 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.

Data Visualization

# 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)

Unemployment Rate is strongly negatively correlated with GDP and moderately negatively with Labor Force Participation, while positively correlated with Inflation. Minimum Wage shows a strong positive correlation with Social Protection Expenditure and a moderate positive correlation with Education Expenditure.
# Minimum wages and unemployment

panel_plot_data <- eu_panel_data %>%
  mutate(Unemployment_Rate_scaled = Unemployment_Rate * 100) %>%
  select(Country, Year, Minimum_wage, Unemployment_Rate_scaled) %>%
  pivot_longer(cols = c(Minimum_wage, Unemployment_Rate_scaled),
               names_to = "Indicator", values_to = "Value")

ggplot(panel_plot_data, aes(x = Year, y = Value, color = Indicator)) +
  geom_line(linewidth = 1) +
  facet_wrap(~ Country, scales = "free_y") +
  scale_color_manual(
    values = c("Minimum_wage" = "steelblue", "Unemployment_Rate_scaled" = "darkred"),
    labels = c("Minimum Wage", "Unemployment Rate (×100)")
  ) +
  labs(
    title = "Minimum Wage vs. Unemployment Rate by Country",
    x = "Year", y = NULL, color = "Indicator"
  ) +
  theme_minimal()

In most countries, rising minimum wages are associated with a declining unemployment rate. However, further examination is needed to determine whether this relationship is causal or consistent across different contexts.

Model Building

#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
To investigate whether the impact of minimum wage policies varies under different macroeconomic conditions, we introduce interaction terms between minimum wage and key structural variables.
#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
Specifically, we construct interactions with GDP per capita and inflation to explore potential moderation effects. These interactions aim to capture heterogeneous policy effects across countries with differing economic capacities and price dynamics.

Panel Model

Ordinary Least Squares

# OLS Model
ols<- lm(Unemployment_Rate~Minimum_wage+GDP+Inflation+Edu_exp+Siopo_exp+LF_partic, data=complete_panel)

Fixed Effect

#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")

Random Effect

#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

# 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

#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

# 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.
Edu_exp was removed from the final model specification.

Diagnostic Test

Breusch-Godfrey/Wooldridge test for serial correlation in panel data.

#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
This indicates strong evidence of serial correlation in the idiosyncratic errors (p < 0.00000000000000022). Robust standard errors are required.
# 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
The model residuals exhibit heteroskedasticity.
Robust standard errors are thus required for valid inference
# 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

Parameter interpretation (based on robust standard errors)

We can conclude that:
  • A one-unit increase in Minimum Wage is associated with a 0.0098% decrease in the Unemployment Rate, holding other variables constant.
  • A one-unit increase in GDP growth is associated with a 0.2801 percentage decrease in the Unemployment Rate
  • A one-unit increase in the Inflation Rate is associated with a 0.1169 percentage increase in the Unemployment Rate.
  • An increase of one million euros in Social Protection Expenditure is associated with a 0.000007% increase in the Unemployment Rate.
  • Labor Force Participation Rate have no effect with the Unemployment Rate.