library("readxl")
library(tidyverse)
library("ggpubr")
library("Hmisc")
library(corrplot)
library(car)
library(psych)
library(sandwich)
library(lmtest)
library(stargazer)
library(car)
spark.1709 <- read_excel("/Users/nikolajdolgih/Desktop/Эконометрика/Проект/SPARK_1709.xlsx")
spark.1714 <- read_excel("/Users/nikolajdolgih/Desktop/Эконометрика/Проект/SPARK_1714.xlsx")
spark.1554 <- read_excel("/Users/nikolajdolgih/Desktop/Эконометрика/Проект/SPARK_1554.xlsx")
spark.1548 <- read_excel("/Users/nikolajdolgih/Desktop/Эконометрика/Проект/SPARK_1548.xlsx")
spark.1541 <- read_excel("/Users/nikolajdolgih/Desktop/Эконометрика/Проект/SPARK_1541.xlsx")
#
spark.1709 = spark.1709[2:3698,]
colnames(spark.1709) = as.character(as.vector(spark.1709[1,]))
spark.1709 = spark.1709[2:3697,]
#
spark.1714 = spark.1714[2:3698,]
colnames(spark.1714) = as.character(as.vector(spark.1714[1,]))
spark.1714 = spark.1714[2:3697,]
#
spark.1554 = spark.1554[2:3698,]
colnames(spark.1554) = as.character(as.vector(spark.1554[1,]))
spark.1554 = spark.1554[2:3697,]
#
spark.1548 = spark.1548[2:3698,]
colnames(spark.1548) = as.character(as.vector(spark.1548[1,]))
spark.1548 = spark.1548[2:3697,]
#
spark.1541 = spark.1541[2:3718,]
colnames(spark.1541) = as.character(as.vector(spark.1541[1,]))
spark.1541 = spark.1541[2:3717,]
#
colnames(spark.1714)[1:2] = c("a", "b")
colnames(spark.1714)[4:5] = c("c", "d")
spark.1714 = spark.1714 %>% select(-a, -b, -c, -d)
#
colnames(spark.1554)[1:2] = c("a", "b")
colnames(spark.1554)[4:5] = c("c", "d")
spark.1554 = spark.1554 %>% select(-a, -b, -c, -d)
#
colnames(spark.1548)[1:2] = c("a", "b")
colnames(spark.1548)[4:5] = c("c", "d")
spark.1548 = spark.1548 %>% select(-a, -b, -c, -d)
#
colnames(spark.1541)[1:2] = c("a", "b")
colnames(spark.1541)[5] = c("c")
colnames(spark.1541)[7] = c("d")
spark.1541 = spark.1541 %>% select(-a, -b, -c, -d)
#
Spark = inner_join(spark.1709, spark.1714, by="Регистрационный номер")
Spark = inner_join(Spark, spark.1554, by="Регистрационный номер")
Spark = inner_join(Spark, spark.1548, by="Регистрационный номер")
Spark = inner_join(Spark, spark.1541, by="Регистрационный номер")
Spark = Spark %>% select("2020, Рентабельность активов (ROA), %", "2020, Уставный капитал , RUB", "2020, Основные средства , RUB" , "Возраст компании, лет", "Размер компании", "2020, Среднесписочная численность работников", "2020, Коэффициент текущей ликвидности, %", "2020, Коэффициент соотношения заемных и собственных средств, %", "2020, Доля краткосрочной в общем объеме задолженности, %")
colnames(Spark) = c("ROA", "Capital", "Pr.means", "Age", "Size", "Avg.empl", "C.R", "KSIZ", "Short.debt")
Spark$ROA = as.numeric(Spark$ROA)
Spark$Capital = as.numeric(Spark$Capital)
Spark$Pr.means = as.numeric(Spark$Pr.means)
Spark$Age = as.numeric(Spark$Age)
Spark$Avg.empl[Spark$Avg.empl == "1 034"] = "1034"
Spark$Avg.empl[Spark$Avg.empl == "1 892"] = "1892"
Spark$Avg.empl = as.numeric(Spark$Avg.empl)
Spark$C.R = as.numeric(Spark$C.R)
Spark$KSIZ = as.numeric(Spark$KSIZ)
Spark$Short.debt = as.numeric(Spark$Short.debt)
Spark$Capital.log = log(Spark$Capital)
Spark$Pr.means.log = log(Spark$Pr.means)
Spark$Avg.empl.log = log(Spark$Avg.empl)
Number = Spark %>% group_by(Size) %>% summarise(number = n())
Number
## # A tibble: 4 × 2
##   Size                number
##   <chr>                <int>
## 1 Крупные предприятия      3
## 2 Малые предприятия      139
## 3 Микропредприятия      3546
## 4 Средние предприятия      8
Spark = Spark %>% filter(Size != "Крупные предприятия")
Spark$Size = as.factor(Spark$Size)
# Shapiro-Wilk normality test for ROA
shapiro.test(Spark$ROA) # => p < 2.2e-16
# Shapiro-Wilk normality test for Capital.log
shapiro.test(Spark$Capital.log) # => p < 2.2e-16
# Shapiro-Wilk normality test for Pr.means
shapiro.test(Spark$Pr.means.log) # => p = 0.005059
# Shapiro-Wilk normality test for Age
shapiro.test(Spark$Age) # => p = 3.494e-09
# Shapiro-Wilk normality test for Avg.empl
shapiro.test(Spark$Avg.empl.log) # => p < 2.2e-16
# Shapiro-Wilk normality test for C.R
shapiro.test(Spark$C.R) # => p < 2.2e-16
# Shapiro-Wilk normality test for KSIZ
shapiro.test(Spark$KSIZ) # => p < 2.2e-16
# Shapiro-Wilk normality test for Short.debt
shapiro.test(Spark$Short.debt) # => p < 2.2e-16

Развед анализ

SparkROA = Spark %>% filter(ROA<(quantile(Spark$ROA, 0.75)+1.5*(quantile(Spark$ROA, 0.75) - quantile(Spark$ROA, 0.25))))
ggplot(data = SparkROA, aes(x = Size, y = ROA, color = Size))+
scale_color_manual(values=c("#76D6FF", "#3A3BFF","#191970"), breaks=c("Микропредприятия", "Малые предприятия", "Средние предприятия"), labels=c("Микропредприятия", "Малые предприятия", "Средние предприятия"))+
geom_boxplot()+
labs(title = "Диаграмма распределения ROA для каждого Size")+
labs(color = "Размер")+
xlab("Размер фирмы") + 
ylab("ROA") +
xlim("Микропредприятия", "Малые предприятия", "Средние предприятия")+
theme_minimal()+
theme(axis.text.x = element_text(angle = 30, hjust= 1))

ggplot(data = SparkROA, aes(x = Capital.log, y = ROA))+
geom_point(color = "#191970")+
geom_smooth(method = "lm",color = "#76D6FF", formula = y ~ poly(x, degree = 1))+
xlab("Уставный капитал, руб. (логарифмическая шкала)") + 
ylab("ROA") +
theme_linedraw()

res <-cor.test(SparkROA$ROA, SparkROA$Capital.log,  method = "kendall")
res
## 
##  Kendall's rank correlation tau
## 
## data:  SparkROA$ROA and SparkROA$Capital.log
## z = -5.8942, p-value = 3.764e-09
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##        tau 
## -0.1232796
ggplot(data = SparkROA, aes(x = Pr.means.log, y = ROA))+
geom_point(color = "#191970")+
geom_smooth(method = "lm",color = "#76D6FF", formula = y ~ poly(x, degree = 1))+
xlab("Основные средства, руб. (логарифмическая шкала)") + 
ylab("ROA") +
theme_linedraw()

res <-cor.test(SparkROA$ROA, SparkROA$Pr.means.log,  method = "kendall")
res
## 
##  Kendall's rank correlation tau
## 
## data:  SparkROA$ROA and SparkROA$Pr.means.log
## z = -11.874, p-value < 2.2e-16
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##        tau 
## -0.1784444
ggplot(data = SparkROA, aes(x = Avg.empl.log, y = ROA))+
geom_point(color = "#191970")+
geom_smooth(method = "lm",color = "#76D6FF", formula = y ~ poly(x, degree = 1))+
xlab("Среднесписочная численность работников, чел. (логарифмическая шкала)") + 
ylab("ROA") +
theme_linedraw()

res <-cor.test(SparkROA$ROA, SparkROA$Avg.empl.log,  method = "kendall")
res
## 
##  Kendall's rank correlation tau
## 
## data:  SparkROA$ROA and SparkROA$Avg.empl.log
## z = -3.4778, p-value = 0.0005055
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##         tau 
## -0.04398283
ggplot(data = SparkROA, aes(x = Age, y = ROA))+
geom_point(color = "#191970")+
geom_smooth(method = "lm",color = "#76D6FF", formula = y ~ poly(x, degree = 1))+
xlab("Возраст компании, лет.") + 
ylab("ROA") +
theme_linedraw()

res <-cor.test(SparkROA$ROA, SparkROA$Age,  method = "kendall")
res
## 
##  Kendall's rank correlation tau
## 
## data:  SparkROA$ROA and SparkROA$Age
## z = -12.689, p-value < 2.2e-16
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##        tau 
## -0.1481319
SparkROAKSIZ = SparkROA %>% filter(KSIZ<(quantile(na.omit(Spark$KSIZ), 0.75)+1.5*(quantile(na.omit(Spark$KSIZ), 0.75) - quantile(na.omit(Spark$KSIZ), 0.25))))
ggplot(data = SparkROAKSIZ, aes(x = KSIZ, y = ROA))+
geom_point(color = "#191970")+
geom_smooth(method = "lm",color = "#76D6FF", formula = y ~ poly(x, degree = 1))+
xlab("Коэффициент соотношения заемных и собственных средств") + 
ylab("ROA") +
theme_linedraw()

res <-cor.test(SparkROAKSIZ$ROA, SparkROAKSIZ$KSIZ,  method = "kendall")
res
## 
##  Kendall's rank correlation tau
## 
## data:  SparkROAKSIZ$ROA and SparkROAKSIZ$KSIZ
## z = -2.0854, p-value = 0.03703
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##         tau 
## -0.02636141
SparkROAC.R = SparkROA %>% filter(C.R<(quantile(Spark$C.R, 0.75)+1.5*(quantile(Spark$C.R, 0.75) - quantile(Spark$C.R, 0.25))))
ggplot(data = SparkROAC.R, aes(x = C.R, y = ROA))+
geom_point(color = "#191970")+
geom_smooth(method = "lm",color = "#76D6FF", formula = y ~ poly(x, degree = 1))+
xlab("Коэффициент текущей ликвидности") + 
ylab("ROA") +
theme_linedraw()

res <-cor.test(SparkROAC.R$ROA, SparkROAC.R$C.R,  method = "kendall")
res
## 
##  Kendall's rank correlation tau
## 
## data:  SparkROAC.R$ROA and SparkROAC.R$C.R
## z = 12.472, p-value < 2.2e-16
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##       tau 
## 0.1539384
SparkROAShort.debt = SparkROA %>% filter(Short.debt>=0 & Short.debt<=1)
ggplot(data = SparkROAShort.debt, aes(x = Short.debt, y = ROA))+
geom_point(color = "#191970")+
geom_smooth(method = "lm",color = "#76D6FF", formula = y ~ poly(x, degree = 1))+
xlab("Доля краткосрочной в объеме задолженности") + 
ylab("ROA") +
theme_linedraw()

res <-cor.test(SparkROAShort.debt$ROA, SparkROAShort.debt$Short.debt,  method = "kendall")
res
## 
##  Kendall's rank correlation tau
## 
## data:  SparkROAShort.debt$ROA and SparkROAShort.debt$Short.debt
## z = 6.7522, p-value = 1.457e-11
## alternative hypothesis: true tau is not equal to 0
## sample estimates:
##       tau 
## 0.1343579
Spark = Spark %>% filter(
  ROA<(quantile(Spark$ROA, 0.75)+1.5*(quantile(Spark$ROA, 0.75) - quantile(Spark$ROA, 0.25))) & 
  KSIZ<(quantile(na.omit(Spark$KSIZ), 0.75)+1.5*(quantile(na.omit(Spark$KSIZ), 0.75) - quantile(na.omit(Spark$KSIZ), 0.25))) & 
  C.R<(quantile(Spark$C.R, 0.75)+1.5*(quantile(Spark$C.R, 0.75) - quantile(Spark$C.R, 0.25))) & 
  Short.debt>=0 & Short.debt<=1)
Spark = Spark %>% na.omit()
res<-rcorr(as.matrix(Spark %>% select(-ROA, -Age, -Capital, -Pr.means, -Avg.empl, -Size)), type = "spearman")
diag(res$P)=0
col <- colorRampPalette(c("#BB4444", "#EE9988", "#FFFFFF", "#77AADD", "#4477AA"))
corrplot(res$r, method="color", col=col(200),  
         type="upper", order="hclust", 
         addCoef.col = "black", # Add coefficient of correlation
         tl.col="black", tl.srt=45, #Text label color and rotation
         # Combine with significance
         p.mat = res$P, sig.level = 0.05, 
         # hide correlation coefficient on the principal diagonal
         diag=FALSE 
         )

dt = as.data.frame(describe(Spark %>% select(-Size, -Capital, -Pr.means, -Avg.empl)))
dt = round(dt, 2)
dt = dt %>% mutate(name = rownames(dt))
dt1 = data.frame(name = rownames(dt))
dt1 = inner_join(dt1, dt, by = "name")
DT::datatable(dt1, rownames=F, options = list(scrollX = T))
dt = as.data.frame(describe(Spark %>% select(Capital,Capital.log, Pr.means,Pr.means.log, Avg.empl, Avg.empl.log)))
dt = round(dt, 2)
dt = dt %>% mutate(name = rownames(dt))
dt1 = data.frame(name = rownames(dt))
dt1 = inner_join(dt1, dt, by = "name")
DT::datatable(dt1, rownames=F, options = list(scrollX = T))
Spark = Spark %>% select(-Capital, -Pr.means, -Avg.empl)

Регрессионный анализ

# оценка МНК, функция lm()
M1 <- lm(ROA ~ 1 + Capital.log + Age + C.R + KSIZ + Short.debt, data=Spark)
# оценка стандартных ошибок,
# робастная формула
cov_M1 <- vcovHC(M1, type = "HC0")
se_M1 <- sqrt(diag(cov_M1))
coeftest(M1, df = Inf, vcov. = vcovHC, type = "HC0")
## 
## z test of coefficients:
## 
##                Estimate  Std. Error z value  Pr(>|z|)    
## (Intercept)  2.0694e-01  3.9306e-02  5.2647 1.404e-07 ***
## Capital.log -4.5231e-03  2.5328e-03 -1.7858  0.074134 .  
## Age         -3.3616e-03  1.2299e-03 -2.7334  0.006269 ** 
## C.R         -7.1559e-05  3.2328e-03 -0.0221  0.982340    
## KSIZ        -5.4868e-03  6.0160e-03 -0.9120  0.361751    
## Short.debt   6.1882e-02  2.3821e-02  2.5978  0.009383 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# оценка МНК, функция lm()
M2 <- lm(ROA ~ 1 + Pr.means.log + Age + C.R + KSIZ + Short.debt, data=Spark)
# оценка стандартных ошибок,
# робастная формула
cov_M2 <- vcovHC(M2, type = "HC0")
se_M2 <- sqrt(diag(cov_M2))
coeftest(M2, df = Inf, vcov. = vcovHC, type = "HC0")
## 
## z test of coefficients:
## 
##                Estimate Std. Error z value  Pr(>|z|)    
## (Intercept)   0.4983628  0.0819435  6.0818 1.188e-09 ***
## Pr.means.log -0.0209016  0.0044799 -4.6656 3.077e-06 ***
## Age          -0.0016805  0.0012170 -1.3808    0.1673    
## C.R          -0.0033733  0.0030693 -1.0990    0.2718    
## KSIZ         -0.0089943  0.0059455 -1.5128    0.1303    
## Short.debt    0.0264481  0.0234220  1.1292    0.2588    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# оценка МНК, функция lm()
M3 <- lm(ROA ~ 1 + Avg.empl.log + Age + C.R + KSIZ + Short.debt, data=Spark)
# оценка стандартных ошибок,
# робастная формула
cov_M3 <- vcovHC(M3, type = "HC0")
se_M3 <- sqrt(diag(cov_M3))
coeftest(M3, df = Inf, vcov. = vcovHC, type = "HC0")
## 
## z test of coefficients:
## 
##                 Estimate  Std. Error z value  Pr(>|z|)    
## (Intercept)   0.15274229  0.03445263  4.4334 9.276e-06 ***
## Avg.empl.log  0.00090198  0.00646269  0.1396  0.889002    
## Age          -0.00383495  0.00125700 -3.0509  0.002282 ** 
## C.R           0.00018341  0.00330040  0.0556  0.955684    
## KSIZ         -0.00441389  0.00625778 -0.7053  0.480596    
## Short.debt    0.06544583  0.02421371  2.7028  0.006875 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# оценка МНК, функция lm()
M4 <- lm(ROA ~ 1 + Size + Age + C.R + KSIZ + Short.debt, data=Spark)
# оценка стандартных ошибок,
# робастная формула
cov_M4 <- vcovHC(M4, type = "HC0")
se_M4 <- sqrt(diag(cov_M4))
coeftest(M4, df = Inf, vcov. = vcovHC, type = "HC0")
## 
## z test of coefficients:
## 
##                            Estimate  Std. Error z value  Pr(>|z|)    
## (Intercept)              0.15847413  0.03778160  4.1945 2.735e-05 ***
## SizeМикропредприятия    -0.00328729  0.02447510 -0.1343  0.893156    
## SizeСредние предприятия  0.03578362  0.03692421  0.9691  0.332490    
## Age                     -0.00380106  0.00124824 -3.0451  0.002326 ** 
## C.R                      0.00011616  0.00335552  0.0346  0.972386    
## KSIZ                    -0.00480039  0.00625919 -0.7669  0.443120    
## Short.debt               0.06472441  0.02453205  2.6384  0.008331 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
stargazer(M1, M2, M3, M4, 
          se = list(se_M1, se_M2, se_M3, se_M4), 
          title = "Regression results",
          keep.stat = "n",
          notes = "Robust standard errors in parentheses",
          type = 'text')
## 
## Regression results
## ================================================================
##                                   Dependent variable:           
##                         ----------------------------------------
##                                           ROA                   
##                            (1)        (2)       (3)       (4)   
## ----------------------------------------------------------------
## Capital.log              -0.005*                                
##                          (0.003)                                
##                                                                 
## Pr.means.log                       -0.021***                    
##                                     (0.004)                     
##                                                                 
## Avg.empl.log                                   0.001            
##                                               (0.006)           
##                                                                 
## SizeМикропредприятия                                    -0.003  
##                                                         (0.024) 
##                                                                 
## SizeСредние предприятия                                  0.036  
##                                                         (0.037) 
##                                                                 
## Age                     -0.003***   -0.002   -0.004*** -0.004***
##                          (0.001)    (0.001)   (0.001)   (0.001) 
##                                                                 
## C.R                      -0.0001    -0.003    0.0002    0.0001  
##                          (0.003)    (0.003)   (0.003)   (0.003) 
##                                                                 
## KSIZ                      -0.005    -0.009    -0.004    -0.005  
##                          (0.006)    (0.006)   (0.006)   (0.006) 
##                                                                 
## Short.debt               0.062***    0.026   0.065***  0.065*** 
##                          (0.024)    (0.023)   (0.024)   (0.025) 
##                                                                 
## Constant                 0.207***  0.498***  0.153***  0.158*** 
##                          (0.039)    (0.082)   (0.034)   (0.038) 
##                                                                 
## ----------------------------------------------------------------
## Observations               284        284       284       284   
## ================================================================
## Note:                                *p<0.1; **p<0.05; ***p<0.01
##                            Robust standard errors in parentheses
t1 <- abs(coef(M1)["Capital.log"]/se_M1[2])
Pv1 <- 1-pnorm(t1) #односторонняя
cat("p-value:", Pv1)
## p-value: 0.03706721
t2 <- abs(coef(M2)["Pr.means.log"]/se_M2[2])
Pv2 <- 1-pnorm(t2) #односторонняя
cat("p-value:", Pv2)
## p-value: 1.53859e-06
t3 <- abs(coef(M3)["Avg.empl.log"]/se_M3[2])
Pv3 <- 1-pnorm(t3) #односторонняя
cat("p-value:", Pv3)
## p-value: 0.4445012
car::linearHypothesis(M4, c("SizeМикропредприятия = 0", "SizeСредние предприятия = 0"), test = "Chisq", white.adjust = "hc0")
## Linear hypothesis test
## 
## Hypothesis:
## SizeМикропредприятия = 0
## SizeСредние предприятия = 0
## 
## Model 1: restricted model
## Model 2: ROA ~ 1 + Size + Age + C.R + KSIZ + Short.debt
## 
## Note: Coefficient covariance matrix supplied.
## 
##   Res.Df Df  Chisq Pr(>Chisq)
## 1    279                     
## 2    277  2 1.6287     0.4429
# оценка МНК, функция lm()
M_1 <- lm(ROA ~ 1 + Capital.log + Size + Age + Size*Age + KSIZ + Short.debt + KSIZ*Short.debt, data=Spark)
# оценка стандартных ошибок,
# робастная формула
cov_M_1 <- vcovHC(M_1, type = "HC0")
se_M_1 <- sqrt(diag(cov_M_1))
coeftest(M_1, df = Inf, vcov. = vcovHC, type = "HC0")
## 
## z test of coefficients:
## 
##                                Estimate  Std. Error z value Pr(>|z|)   
## (Intercept)                  0.19251267  0.07389578  2.6052 0.009182 **
## Capital.log                 -0.00530076  0.00263756 -2.0097 0.044461 * 
## SizeМикропредприятия         0.04817629  0.06153001  0.7830 0.433643   
## SizeСредние предприятия      0.03014053  0.06618542  0.4554 0.648825   
## Age                          0.00034355  0.00260440  0.1319 0.895054   
## KSIZ                        -0.02140544  0.00963685 -2.2212 0.026337 * 
## Short.debt                   0.03453725  0.03648260  0.9467 0.343803   
## SizeМикропредприятия:Age    -0.00410198  0.00297367 -1.3794 0.167761   
## SizeСредние предприятия:Age  0.00166562  0.00424395  0.3925 0.694711   
## KSIZ:Short.debt              0.02238829  0.01441136  1.5535 0.120300   
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# оценка МНК, функция lm()
M_2 <- lm(ROA ~ 1 + Pr.means.log + Size + Age + Size*Age + KSIZ + Short.debt + KSIZ*Short.debt, data=Spark)
# оценка стандартных ошибок,
# робастная формула
cov_M_2 <- vcovHC(M_2, type = "HC0")
se_M_2 <- sqrt(diag(cov_M_2))
coeftest(M_2, df = Inf, vcov. = vcovHC, type = "HC0")
## 
## z test of coefficients:
## 
##                               Estimate Std. Error z value  Pr(>|z|)    
## (Intercept)                  0.5274002  0.1039607  5.0731 3.914e-07 ***
## Pr.means.log                -0.0235233  0.0047874 -4.9136 8.943e-07 ***
## SizeМикропредприятия         0.0098333  0.0539707  0.1822   0.85543    
## SizeСредние предприятия      0.0537822  0.0575901  0.9339   0.35037    
## Age                          0.0022224  0.0023572  0.9428   0.34578    
## KSIZ                        -0.0196835  0.0091541 -2.1502   0.03154 *  
## Short.debt                   0.0106984  0.0348690  0.3068   0.75898    
## SizeМикропредприятия:Age    -0.0042639  0.0027110 -1.5729   0.11575    
## SizeСредние предприятия:Age  0.0020222  0.0037791  0.5351   0.59258    
## KSIZ:Short.debt              0.0163368  0.0134847  1.2115   0.22570    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# оценка МНК, функция lm()
M_3 <- lm(ROA ~ 1 + Avg.empl.log + Size + Age + Size*Age + KSIZ + Short.debt + KSIZ*Short.debt, data=Spark)
# оценка стандартных ошибок,
# робастная формула
cov_M_3 <- vcovHC(M_3, type = "HC0")
se_M_3 <- sqrt(diag(cov_M_3))
coeftest(M_3, df = Inf, vcov. = vcovHC, type = "HC0")
## 
## z test of coefficients:
## 
##                                Estimate  Std. Error z value Pr(>|z|)  
## (Intercept)                  0.11834428  0.06985227  1.6942  0.09023 .
## Avg.empl.log                 0.00061192  0.00805879  0.0759  0.93947  
## SizeМикропредприятия         0.06148884  0.06533690  0.9411  0.34665  
## SizeСредние предприятия      0.01291107  0.07563239  0.1707  0.86445  
## Age                         -0.00034320  0.00271535 -0.1264  0.89942  
## KSIZ                        -0.01901291  0.00971391 -1.9573  0.05031 .
## Short.debt                   0.03910844  0.03710459  1.0540  0.29188  
## SizeМикропредприятия:Age    -0.00388741  0.00305154 -1.2739  0.20269  
## SizeСредние предприятия:Age  0.00481913  0.00470523  1.0242  0.30574  
## KSIZ:Short.debt              0.02118212  0.01494095  1.4177  0.15627  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
stargazer(M_1, M_2, M_3, 
          se = list(se_M_1, se_M_2, se_M_3), 
          title = "Regression results",
          keep.stat = "n",
          notes = "Robust standard errors in parentheses",
          type = 'text')
## 
## Regression results
## ===================================================================
##                                       Dependent variable:          
##                             ---------------------------------------
##                                               ROA                  
##                                  (1)           (2)          (3)    
## -------------------------------------------------------------------
## Capital.log                    -0.005**                            
##                                (0.003)                             
##                                                                    
## Pr.means.log                                -0.024***              
##                                              (0.005)               
##                                                                    
## Avg.empl.log                                               0.001   
##                                                           (0.008)  
##                                                                    
## SizeМикропредприятия            0.048         0.010        0.061   
##                                (0.062)       (0.054)      (0.065)  
##                                                                    
## SizeСредние предприятия         0.030         0.054        0.013   
##                                (0.066)       (0.058)      (0.076)  
##                                                                    
## Age                             0.0003        0.002       -0.0003  
##                                (0.003)       (0.002)      (0.003)  
##                                                                    
## KSIZ                           -0.021**      -0.020**     -0.019*  
##                                (0.010)       (0.009)      (0.010)  
##                                                                    
## Short.debt                      0.035         0.011        0.039   
##                                (0.036)       (0.035)      (0.037)  
##                                                                    
## SizeМикропредприятия:Age        -0.004        -0.004      -0.004   
##                                (0.003)       (0.003)      (0.003)  
##                                                                    
## SizeСредние предприятия:Age     0.002         0.002        0.005   
##                                (0.004)       (0.004)      (0.005)  
##                                                                    
## KSIZ:Short.debt                 0.022         0.016        0.021   
##                                (0.014)       (0.013)      (0.015)  
##                                                                    
## Constant                       0.193***      0.527***     0.118*   
##                                (0.074)       (0.104)      (0.070)  
##                                                                    
## -------------------------------------------------------------------
## Observations                     284           284          284    
## ===================================================================
## Note:                                   *p<0.1; **p<0.05; ***p<0.01
##                               Robust standard errors in parentheses
car::linearHypothesis(M_1, c("Capital.log = 0", "SizeМикропредприятия + SizeМикропредприятия:Age = 0", "SizeСредние предприятия + SizeСредние предприятия:Age = 0"), test = "Chisq", white.adjust = "hc0")
## Linear hypothesis test
## 
## Hypothesis:
## Capital.log = 0
## SizeМикропредприятия  + SizeМикропредприятия:Age = 0
## SizeСредние предприятия  + SizeСредние предприятия:Age = 0
## 
## Model 1: restricted model
## Model 2: ROA ~ 1 + Capital.log + Size + Age + Size * Age + KSIZ + Short.debt + 
##     KSIZ * Short.debt
## 
## Note: Coefficient covariance matrix supplied.
## 
##   Res.Df Df  Chisq Pr(>Chisq)
## 1    277                     
## 2    274  3 5.4293     0.1429
car::linearHypothesis(M_2, c("Pr.means.log = 0", "SizeМикропредприятия + SizeМикропредприятия:Age = 0", "SizeСредние предприятия + SizeСредние предприятия:Age = 0"), test = "Chisq", white.adjust = "hc0")
## Linear hypothesis test
## 
## Hypothesis:
## Pr.means.log = 0
## SizeМикропредприятия  + SizeМикропредприятия:Age = 0
## SizeСредние предприятия  + SizeСредние предприятия:Age = 0
## 
## Model 1: restricted model
## Model 2: ROA ~ 1 + Pr.means.log + Size + Age + Size * Age + KSIZ + Short.debt + 
##     KSIZ * Short.debt
## 
## Note: Coefficient covariance matrix supplied.
## 
##   Res.Df Df  Chisq Pr(>Chisq)    
## 1    277                         
## 2    274  3 24.712  1.773e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
car::linearHypothesis(M_2, c("SizeМикропредприятия + SizeМикропредприятия:Age = 0", "SizeСредние предприятия + SizeСредние предприятия:Age = 0"), test = "Chisq", white.adjust = "hc0")
## Linear hypothesis test
## 
## Hypothesis:
## SizeМикропредприятия  + SizeМикропредприятия:Age = 0
## SizeСредние предприятия  + SizeСредние предприятия:Age = 0
## 
## Model 1: restricted model
## Model 2: ROA ~ 1 + Pr.means.log + Size + Age + Size * Age + KSIZ + Short.debt + 
##     KSIZ * Short.debt
## 
## Note: Coefficient covariance matrix supplied.
## 
##   Res.Df Df  Chisq Pr(>Chisq)
## 1    276                     
## 2    274  2 1.9614      0.375
car::linearHypothesis(M_3, c("Avg.empl.log = 0", "SizeМикропредприятия + SizeМикропредприятия:Age = 0", "SizeСредние предприятия + SizeСредние предприятия:Age = 0"), test = "Chisq", white.adjust = "hc0")
## Linear hypothesis test
## 
## Hypothesis:
## Avg.empl.log = 0
## SizeМикропредприятия  + SizeМикропредприятия:Age = 0
## SizeСредние предприятия  + SizeСредние предприятия:Age = 0
## 
## Model 1: restricted model
## Model 2: ROA ~ 1 + Avg.empl.log + Size + Age + Size * Age + KSIZ + Short.debt + 
##     KSIZ * Short.debt
## 
## Note: Coefficient covariance matrix supplied.
## 
##   Res.Df Df  Chisq Pr(>Chisq)
## 1    277                     
## 2    274  3 1.3527     0.7167