[HEAD]: initial commit

This commit is contained in:
John Gatward
2026-08-04 19:19:24 +01:00
commit 2d9bfafbe6
39 changed files with 8905 additions and 0 deletions
+570
View File
@@ -0,0 +1,570 @@
##panel regression----
##all data with multicollinearity accounted for
# panel_all <- plm(
# European_performance ~
# First_and_second +
# First_and_CL +
# CL_and_relegated +
# Top_4_total_GD +
# Average_number_of_players +
# Average_goals_by_top_3_players +
# Gini_coefficient,
# data = scaled_full_data,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_all)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_all, vcov = vcovHC, type = "HC1")
# #rerun with only significant vars
# panel_all_robust <- plm(
# European_performance ~
# Top_4_total_GD +
# Average_goals_by_top_3_players +
# Gini_coefficient,
# data = scaled_full_data,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_all_robust)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_all_robust, vcov = vcovHC, type = "HC1")
#rerun with only significant vars & theory included
panel_all_robust_theory <- plm(
European_performance ~
First_and_second +
CL_and_relegated +
Top_4_total_GD +
Average_goals_by_top_3_players +
Gini_coefficient,
data = scaled_full_data,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_all_robust_theory)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_all_robust_theory, vcov = vcovHC, type = "HC1")
##using principal components
panel_pc <- plm(
European_performance ~
PC1 +
PC2 +
PC3 +
PC4 +
PC5,
data = pca_results,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_pc)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_pc, vcov = vcovHC, type = "HC1")
# #rerun with only significant pcs
# panel_pc_robust <- plm(
# European_performance ~
# PC1 +
# PC4,
# data = pca_results,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_pc_robust)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_pc_robust, vcov = vcovHC, type = "HC1")
##using competitive indices
panel_indices_multi <- plm(
European_performance ~
competitive_title_index +
elite_dominance_index +
player_rotation_index,
data = scaled_full_data_competitiveness_index,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_indices_multi)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_indices_multi, vcov = vcovHC, type = "HC1")
panel_indices_title <- plm(
European_performance ~ competitive_title_index,
data = scaled_full_data_competitiveness_index,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_indices_title)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_indices_title, vcov = vcovHC, type = "HC1")
panel_indices_dominance <- plm(
European_performance ~ elite_dominance_index,
data = scaled_full_data_competitiveness_index,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_indices_dominance)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_indices_dominance, vcov = vcovHC, type = "HC1")
panel_indices_competitiveness <- plm(
European_performance ~ competitive_balance_index,
data = scaled_full_data_competitiveness_index,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_indices_competitiveness)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_indices_competitiveness, vcov = vcovHC, type = "HC1")
panel_indices_points <- plm(
European_performance ~ multilevel_competitiveness_index,
data = scaled_full_data_competitiveness_index,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_indices_points)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_indices_points, vcov = vcovHC, type = "HC1")
# panel_indices_players <- plm(
# European_performance ~ player_rotation_index,
# data = scaled_full_data_competitiveness_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_players)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_players, vcov = vcovHC, type = "HC1")
indices_all_plotting_data <- regression_coefficient_data(panel_indices_multi) %>%
mutate(term = paste0(term, " (multi)")) %>%
rbind(regression_coefficient_data(panel_indices_title)) %>%
rbind(regression_coefficient_data(panel_indices_dominance)) %>%
rbind(regression_coefficient_data(panel_indices_competitiveness)) %>%
rbind(regression_coefficient_data(panel_indices_points))
##panel regression using next years European performance value----
##all data with multicollinearity accounted for
panel_all_lead <- plm(
lead_european_performance ~
First_and_second +
First_and_CL +
CL_and_relegated +
Top_4_total_GD +
Average_number_of_players +
Average_goals_by_top_3_players +
Gini_coefficient,
data = scaled_full_data,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_all_lead)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_all_lead, vcov = vcovHC, type = "HC1")
# #rerun with only significant vars & theory included
# panel_all_lead_robust_theory <- plm(
# lead_european_performance ~
# First_and_CL +
# CL_and_relegated +
# Top_4_total_GD +
# Average_goals_by_top_3_players +
# Gini_coefficient,
# data = scaled_full_data,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_all_lead_robust_theory)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_all_lead_robust_theory, vcov = vcovHC, type = "HC1")
##using principal components
panel_lead_pc <- plm(
lead_european_performance ~
PC1 +
PC2 +
PC3 +
PC4 +
PC5,
data = pca_results,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_lead_pc)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_lead_pc, vcov = vcovHC, type = "HC1")
#rerun with only significant pcs
# panel_lead_pc_robust <- plm(
# lead_european_performance ~
# PC1 +
# PC3 +
# PC4,
# data = pca_results,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_lead_pc_robust)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_lead_pc_robust, vcov = vcovHC, type = "HC1")
##using competitive indices
panel_indices_multi_lead <- plm(
lead_european_performance ~
competitive_title_index +
elite_dominance_index +
player_rotation_index,
data = scaled_full_data_competitiveness_index,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_indices_multi_lead)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_indices_multi_lead, vcov = vcovHC, type = "HC1")
# panel_indices_title_lead <- plm(
# lead_european_performance ~ competitive_title_index,
# data = scaled_full_data_competitiveness_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_title_lead)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_title_lead, vcov = vcovHC, type = "HC1")
panel_indices_dominance_lead <- plm(
lead_european_performance ~ elite_dominance_index,
data = scaled_full_data_competitiveness_index,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_indices_dominance_lead)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_indices_dominance_lead, vcov = vcovHC, type = "HC1")
panel_indices_competitiveness_lead <- plm(
lead_european_performance ~ competitive_balance_index,
data = scaled_full_data_competitiveness_index,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_indices_competitiveness_lead)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_indices_competitiveness_lead, vcov = vcovHC, type = "HC1")
# panel_indices_points_lead <- plm(
# lead_european_performance ~ multilevel_competitiveness_index,
# data = scaled_full_data_competitiveness_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_points_lead)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_points_lead, vcov = vcovHC, type = "HC1")
# panel_indices_players_lead <- plm(
# lead_european_performance ~ player_rotation_index,
# data = scaled_full_data_competitiveness_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_players_lead)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_players_lead, vcov = vcovHC, type = "HC1")
indices_lead_plotting_data <- regression_coefficient_data(panel_indices_multi_lead) %>%
mutate(term = paste0(term, " (multi)")) %>%
rbind(regression_coefficient_data(panel_indices_dominance_lead)) %>%
rbind(regression_coefficient_data(panel_indices_competitiveness_lead))
##panel regression for CL----
##all data with multicollinearity accounted for
CL_scaled_data <- scaled_full_data_comp_breakdown %>% filter(competition == "CL")
panel_all_CL <- plm(
European_performance ~
First_and_second +
First_and_CL +
CL_and_relegated +
Top_4_total_GD +
Average_number_of_players +
Average_goals_by_top_3_players +
Gini_coefficient,
data = CL_scaled_data,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_all_CL)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_all_CL, vcov = vcovHC, type = "HC1")
#rerun with only significant vars
# panel_all_CL_robust <- plm(
# European_performance ~
# CL_and_relegated +
# Top_4_total_GD +
# Average_goals_by_top_3_players +
# Gini_coefficient,
# data = CL_scaled_data,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_all_CL_robust)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_all_CL_robust, vcov = vcovHC, type = "HC1")
##using principal components
CL_pca_results <- pca_results_comp_breakdown %>% filter(competition == "CL")
panel_pc_CL <- plm(
European_performance ~
PC1 +
PC2 +
PC3 +
PC4 +
PC5,
data = CL_pca_results,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_pc_CL)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_pc_CL, vcov = vcovHC, type = "HC1")
#rerun with only significant pcs
# panel_pc_CL_robust <- plm(
# European_performance ~
# PC1 +
# PC3 +
# PC4,
# data = CL_pca_results,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_pc_CL_robust)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_pc_CL_robust, vcov = vcovHC, type = "HC1")
##using competitive indices
CL_competitive_index <- scaled_full_data_comp_breakdown_competitiveness_index %>% filter(competition == "CL")
panel_indices_multi_CL <- plm(
European_performance ~
competitive_title_index +
elite_dominance_index +
player_rotation_index,
data = CL_competitive_index,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_indices_multi_CL)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_indices_multi_CL, vcov = vcovHC, type = "HC1")
# panel_indices_title_CL <- plm(
# European_performance ~ competitive_title_index,
# data = CL_competitive_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_title_CL)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_title_CL, vcov = vcovHC, type = "HC1")
panel_indices_dominance_CL <- plm(
European_performance ~ elite_dominance_index,
data = CL_competitive_index,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_indices_dominance_CL)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_indices_dominance_CL, vcov = vcovHC, type = "HC1")
panel_indices_competitiveness_CL <- plm(
European_performance ~ competitive_balance_index,
data = CL_competitive_index,
index = c("Country","season_start"),
effect = "twoways",
model = "within"
)
summary(panel_indices_competitiveness_CL)
#compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
coeftest(panel_indices_competitiveness_CL, vcov = vcovHC, type = "HC1")
# panel_indices_points_CL <- plm(
# European_performance ~ multilevel_competitiveness_index,
# data = CL_competitive_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_points_CL)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_points_CL, vcov = vcovHC, type = "HC1")
# panel_indices_players_CL <- plm(
# European_performance ~ player_rotation_index,
# data = CL_competitive_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_players_CL)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_players_CL, vcov = vcovHC, type = "HC1")
##panel regression for EL----
##all data with multicollinearity accounted for
# EL_scaled_data <- scaled_full_data_comp_breakdown %>% filter(competition == "EL")
# panel_all_EL <- plm(
# European_performance ~
# First_and_second +
# First_and_CL +
# CL_and_relegated +
# Top_4_total_GD +
# Average_number_of_players +
# Average_goals_by_top_3_players +
# Gini_coefficient,
# data = EL_scaled_data,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_all_EL)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_all_EL, vcov = vcovHC, type = "HC1")
##using principal components
# EL_pca_results <- pca_results_comp_breakdown %>% filter(competition == "EL")
# panel_pc_EL <- plm(
# European_performance ~
# PC1 +
# PC2 +
# PC3 +
# PC4 +
# PC5,
# data = EL_pca_results,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_pc_EL)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_pc_EL, vcov = vcovHC, type = "HC1")
##using competitive indices
# EL_competitive_index <- scaled_full_data_comp_breakdown_competitiveness_index %>% filter(competition == "EL")
# panel_indices_multi_EL <- plm(
# European_performance ~
# competitive_title_index +
# elite_dominance_index +
# player_rotation_index,
# data = EL_competitive_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_multi_EL)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_multi_EL, vcov = vcovHC, type = "HC1")
# panel_indices_title_EL <- plm(
# European_performance ~ competitive_title_index,
# data = EL_competitive_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_title_EL)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_title_EL, vcov = vcovHC, type = "HC1")
# panel_indices_dominance_EL <- plm(
# European_performance ~ elite_dominance_index,
# data = EL_competitive_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_dominance_EL)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_dominance_EL, vcov = vcovHC, type = "HC1")
# panel_indices_competitiveness_EL <- plm(
# European_performance ~ competitive_balance_index,
# data = EL_competitive_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_competitiveness_EL)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_competitiveness_EL, vcov = vcovHC, type = "HC1")
# panel_indices_points_EL <- plm(
# European_performance ~ multilevel_competitiveness_index,
# data = EL_competitive_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_points_EL)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_points_EL, vcov = vcovHC, type = "HC1")
# panel_indices_players_EL <- plm(
# European_performance ~ player_rotation_index,
# data = EL_competitive_index,
# index = c("Country","season_start"),
# effect = "twoways",
# model = "within"
# )
# summary(panel_indices_players_EL)
# #compute clustered standard errors (adjustment for autocorrelation + heteroskedasticity)
# coeftest(panel_indices_players_EL, vcov = vcovHC, type = "HC1")
indices_comp_breakdown_plotting_data <- regression_coefficient_data(panel_indices_multi_CL) %>%
mutate(term = paste0(term, " (CL multi)")) %>%
rbind(regression_coefficient_data(panel_indices_dominance_CL) %>% mutate(term = paste0(term, " (CL)"))) %>%
rbind(regression_coefficient_data(panel_indices_competitiveness_CL) %>% mutate(term = paste0(term, " (CL)")))