A linear regression model with factors affecting the impact of ESG indicators and ESG investor quotas on changes in company capitalization
set.seed(1976) n <- 100 ESG <- runif(n, 0, 1) # индекс ESG/green branding [0;1] Quota <- runif(n, 0, 0.5) # доля фондов с ESG-квотой Size <- rnorm(n, mean = 10, sd = 1) # лог(активов) Leverage<- rnorm(n, mean = 0.5, sd = 0.1) alpha <- 0.0 b1 <- 0.5 # ESG effect b2 <- 0.8 # esg quota of funds b3 <- 1.2 #ESG with a high quote b4 <- 0.1 b5 <- -0.2 eps <- rnorm(n, mean = 0, sd = 0.2) # Change in capitalization (or profitability) as a function of factors CapChange <- alpha + b1 * ESG + b2 * Quota + b3 * ESG * Quota + b4 * Size + b5 * Leverage + eps df <- data.frame(CapChange, ESG, Quota, Size, Leverage) model <- lm(CapChange ~ ESG * Quota + Size + Leverage, data = df) summary(model)
## ## Call: ## lm(formula = CapChange ~ ESG * Quota + Size + Leverage, data = df) ## ## Residuals: ## Min 1Q Median 3Q Max ## -0.39675 -0.14175 -0.01617 0.15826 0.47471 ## ## Coefficients: ## Estimate Std. Error t value Pr(>|t|) ## (Intercept) 0.08176 0.24430 0.335 0.738610 ## ESG 0.44032 0.14709 2.994 0.003524 ** ## Quota 0.94121 0.33796 2.785 0.006474 ** ## Size 0.08653 0.02151 4.023 0.000116 *** ## Leverage -0.10751 0.17606 -0.611 0.542912 ## ESG:Quota 0.95765 0.62841 1.524 0.130886 ## --- ## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1 ## ## Residual standard error: 0.1996 on 94 degrees of freedom ## Multiple R-squared: 0.6537, Adjusted R-squared: 0.6353 ## F-statistic: 35.49 on 5 and 94 DF, p-value: < 2.2e-16
Quota_low <- 0.05 Quota_high <- 0.4 ESG_grid <- seq(0, 1, length.out = 50) # predict Size_mean <- mean(df$Size) Leverage_mean <- mean(df$Leverage) new_low <- data.frame( ESG = ESG_grid, Quota = Quota_low, Size = Size_mean, Leverage = Leverage_mean ) new_high <- data.frame( ESG = ESG_grid, Quota = Quota_high, Size = Size_mean, Leverage = Leverage_mean ) pred_low <- predict(model, newdata = new_low) pred_high <- predict(model, newdata = new_high)
Plot
#график plot(ESG_grid, pred_low, type = "l", lwd = 3, col = "darkblue", xlab = "ESG(индекс зеленого бренда)", ylab = "Изменение капитализации ", main = "ESG-эффект при разной квоте фондов") lines(ESG_grid, pred_high, lwd = 3, col ="darkgreen") legend("topleft", legend = c("Низкая квота ESG-фондов", "Высокая квота ESG-фондов"), col = c("darkblue", "darkgreen"), lwd = 2, bty = "n")