library(readxl)
## Warning: 程辑包'readxl'是用R版本4.3.3 来建造的
library(lmtest)
## 载入需要的程辑包:zoo
##
## 载入程辑包:'zoo'
## The following objects are masked from 'package:base':
##
## as.Date, as.Date.numeric
library(sandwich)
library(psych)
library(plm)
library(tidyverse)
## Warning: 程辑包'tidyverse'是用R版本4.3.3 来建造的
## Warning: 程辑包'forcats'是用R版本4.3.3 来建造的
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.2 ✔ readr 2.1.4
## ✔ forcats 1.0.0 ✔ stringr 1.5.0
## ✔ ggplot2 3.4.3 ✔ tibble 3.2.1
## ✔ lubridate 1.9.2 ✔ tidyr 1.3.0
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ ggplot2::%+%() masks psych::%+%()
## ✖ ggplot2::alpha() masks psych::alpha()
## ✖ dplyr::between() masks plm::between()
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks plm::lag(), stats::lag()
## ✖ dplyr::lead() masks plm::lead()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
#data <- read_xlsx("panel.xlsx")
#统计性描述
#vars <- data[, c("中长期资金持股比例", "分红比例","ROA","净资产负债率","Log_MV","固定资产比例","流动比率","国企","Log_Firmage")]
#describe(vars)
#设置面板数据
panel_data = read_xlsx("panel.xlsx")%>%pdata.frame(index = c("证券代码","Year"))
#调整数据
panel_data = panel_data[panel_data$分红比例 < 1, ]
panel_data$Log_分红比例 = log(1+panel_data$分红比例)
#统计性描述
vars <- panel_data[, c("中长期资金持股比例", "分红比例","Log_分红比例","ROA","净资产负债率","Log_MV","固定资产比例","流动比率","国企","Log_Firmage")]
describe(vars)
## vars n mean sd median trimmed mad min max range
## 中长期资金持股比例 1 30505 0.07 0.10 0.03 0.05 0.05 0.00 0.95 0.95
## 分红比例 2 30505 0.34 0.20 0.30 0.31 0.18 0.04 1.00 0.95
## Log_分红比例 3 30505 0.28 0.14 0.26 0.27 0.14 0.04 0.69 0.65
## ROA 4 30505 0.06 0.05 0.05 0.05 0.04 -0.63 1.28 1.91
## 净资产负债率 5 30505 0.01 0.02 0.01 0.01 0.01 -0.09 0.38 0.47
## Log_MV 6 30505 4.12 1.59 3.83 3.95 1.32 0.79 13.10 12.31
## 固定资产比例 7 30485 0.20 0.16 0.16 0.18 0.14 0.00 0.97 0.97
## 流动比率 8 29939 0.03 0.04 0.02 0.02 0.01 0.00 1.91 1.91
## 国企 9 30505 0.34 0.47 0.00 0.30 0.00 0.00 1.00 1.00
## Log_Firmage 10 30505 3.30 0.22 3.32 3.32 0.20 1.83 4.27 2.44
## skew kurtosis se
## 中长期资金持股比例 2.41 8.12 0.00
## 分红比例 0.99 0.59 0.00
## Log_分红比例 0.66 -0.10 0.00
## ROA 3.17 36.42 0.00
## 净资产负债率 5.09 37.85 0.00
## Log_MV 1.41 3.24 0.01
## 固定资产比例 1.10 1.22 0.00
## 流动比率 12.85 417.05 0.00
## 国企 0.66 -1.57 0.00
## Log_Firmage -0.55 1.54 0.00
summary(vars)
## 中长期资金持股比例 分红比例 Log_分红比例 ROA
## Min. :0.000000 Min. :0.04493 Min. :0.04395 Min. :-0.62725
## 1st Qu.:0.006024 1st Qu.:0.18260 1st Qu.:0.16772 1st Qu.: 0.02690
## Median :0.032351 Median :0.29702 Median :0.26007 Median : 0.04901
## Mean :0.072303 Mean :0.33570 Mean :0.27867 Mean : 0.05948
## 3rd Qu.:0.099596 3rd Qu.:0.43941 3rd Qu.:0.36423 3rd Qu.: 0.07940
## Max. :0.951998 Max. :0.99989 Max. :0.69309 Max. : 1.28476
##
## 净资产负债率 Log_MV 固定资产比例 流动比率
## Min. :-0.090234 Min. : 0.7863 Min. :0.000056 Min. :0.0004
## 1st Qu.: 0.003366 1st Qu.: 3.0286 1st Qu.:0.077940 1st Qu.:0.0128
## Median : 0.006938 Median : 3.8276 Median :0.164555 Median :0.0183
## Mean : 0.012392 Mean : 4.1236 Mean :0.196518 Mean :0.0277
## 3rd Qu.: 0.013487 3rd Qu.: 4.8806 3rd Qu.:0.279835 3rd Qu.:0.0299
## Max. : 0.380574 Max. :13.0985 Max. :0.970921 Max. :1.9087
## NA's :20 NA's :566
## 国企 Log_Firmage
## Min. :0.0000 Min. :1.826
## 1st Qu.:0.0000 1st Qu.:3.184
## Median :0.0000 Median :3.322
## Mean :0.3436 Mean :3.303
## 3rd Qu.:1.0000 3rd Qu.:3.459
## Max. :1.0000 Max. :4.266
##
#混合回归
pooled = plm(中长期资金持股比例~ 分红比例+Log_分红比例+ROA+净资产负债率+Log_MV+固定资产比例+流动比率+国企+Log_Firmage, data = panel_data,
model = "pooling")
summary(pooled)
## Pooling Model
##
## Call:
## plm(formula = 中长期资金持股比例 ~ 分红比例 + Log_分红比例 +
## ROA + 净资产负债率 + Log_MV + 固定资产比例 +
## 流动比率 + 国企 + Log_Firmage, data = panel_data, model = "pooling")
##
## Unbalanced Panel: n = 4961, T = 1-15, N = 29919
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -0.770392 -0.053223 -0.028411 0.022778 0.720281
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## (Intercept) 0.09618596 0.00846766 11.3592 < 2.2e-16 ***
## 分红比例 -0.07966820 0.02949358 -2.7012 0.006913 **
## Log_分红比例 0.06355059 0.04145293 1.5331 0.125267
## ROA 0.56818273 0.01114124 50.9982 < 2.2e-16 ***
## 净资产负债率 -0.02052269 0.04950695 -0.4145 0.678480
## Log_MV 0.00991584 0.00047539 20.8582 < 2.2e-16 ***
## 固定资产比例 -0.03080479 0.00356091 -8.6508 < 2.2e-16 ***
## 流动比率 0.01091483 0.01595169 0.6842 0.493827
## 国企 -0.02081590 0.00125797 -16.5472 < 2.2e-16 ***
## Log_Firmage -0.02326872 0.00245472 -9.4792 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 282.41
## Residual Sum of Squares: 249.52
## R-Squared: 0.11646
## Adj. R-Squared: 0.11619
## F-statistic: 438.02 on 9 and 29909 DF, p-value: < 2.22e-16
#双时点固定效应
fe = plm(中长期资金持股比例~ 分红比例+Log_分红比例+ROA+净资产负债率+Log_MV+固定资产比例+流动比率+国企, data = panel_data,
effect = "twoways", model = "within")
summary(fe)
## Twoways effects Within Model
##
## Call:
## plm(formula = 中长期资金持股比例 ~ 分红比例 + Log_分红比例 +
## ROA + 净资产负债率 + Log_MV + 固定资产比例 +
## 流动比率 + 国企, data = panel_data, effect = "twoways",
## model = "within")
##
## Unbalanced Panel: n = 4961, T = 1-15, N = 29919
##
## Residuals:
## Min. 1st Qu. Median 3rd Qu. Max.
## -0.4079247 -0.0299794 -0.0034039 0.0196881 0.5540047
##
## Coefficients:
## Estimate Std. Error t-value Pr(>|t|)
## 分红比例 -0.0942973 0.0273008 -3.4540 0.0005532 ***
## Log_分红比例 0.1165350 0.0386548 3.0148 0.0025744 **
## ROA 0.3905545 0.0122931 31.7702 < 2.2e-16 ***
## 净资产负债率 0.0601133 0.0688878 0.8726 0.3828753
## Log_MV 0.0059233 0.0013513 4.3833 1.174e-05 ***
## 固定资产比例 -0.0444832 0.0071089 -6.2574 3.979e-10 ***
## 流动比率 -0.0418033 0.0179532 -2.3285 0.0198955 *
## 国企 -0.0189168 0.0036048 -5.2477 1.552e-07 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 123.7
## Residual Sum of Squares: 117.82
## R-Squared: 0.047543
## Adj. R-Squared: -0.14275
## F-statistic: 155.587 on 8 and 24936 DF, p-value: < 2.22e-16
#随机效应
re = plm(中长期资金持股比例~ 分红比例+Log_分红比例+ROA+净资产负债率+Log_MV+固定资产比例+流动比率+国企+Log_Firmage,
data = panel_data, effect = "twoways", model = "random")
summary(re)
## Twoways effects Random Effect Model
## (Swamy-Arora's transformation)
##
## Call:
## plm(formula = 中长期资金持股比例 ~ 分红比例 + Log_分红比例 +
## ROA + 净资产负债率 + Log_MV + 固定资产比例 +
## 流动比率 + 国企 + Log_Firmage, data = panel_data, effect = "twoways",
## model = "random")
##
## Unbalanced Panel: n = 4961, T = 1-15, N = 29919
##
## Effects:
## var std.dev share
## idiosyncratic 0.0047248 0.0687375 0.591
## individual 0.0031488 0.0561143 0.394
## time 0.0001204 0.0109740 0.015
## theta:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## id 0.2253502 0.5527250 0.6219799 0.5889302 0.6783168 0.6984416
## time 0.7937437 0.8461828 0.8673667 0.8628402 0.8799051 0.8862138
## total 0.2224871 0.5456226 0.6136277 0.5812520 0.6609496 0.6917235
##
## Residuals:
## Min. 1st Qu. Median Mean 3rd Qu. Max.
## -0.60331 -0.05997 -0.03426 -0.00513 0.01760 0.72248
##
## Coefficients:
## Estimate Std. Error z-value Pr(>|z|)
## (Intercept) 0.169229 0.194063 0.8720 0.383191
## 分红比例 -0.099316 0.374849 -0.2649 0.791049
## Log_分红比例 0.116709 0.530127 0.2202 0.825752
## ROA 0.432684 0.159444 2.7137 0.006654 **
## 净资产负债率 -0.142140 0.839801 -0.1693 0.865597
## Log_MV 0.011949 0.010485 1.1396 0.254435
## 固定资产比例 -0.039814 0.072386 -0.5500 0.582305
## 流动比率 -0.018698 0.228966 -0.0817 0.934916
## 国企 -0.024981 0.029306 -0.8524 0.393985
## Log_Firmage -0.044730 0.057823 -0.7736 0.439186
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Total Sum of Squares: 282.41
## Residual Sum of Squares: 252.74
## R-Squared: 0.10814
## Adj. R-Squared: 0.10787
## Chisq: 11.2397 on 9 DF, p-value: 0.25964
pFtest(fe,pooled)
##
## F test for twoways effects
##
## data: 中长期资金持股比例 ~ 分红比例 + Log_分红比例 + ...
## F = 5.6053, df1 = 4973, df2 = 24936, p-value < 2.2e-16
## alternative hypothesis: significant effects
plmtest(pooled,effect = "twoways")
##
## Lagrange Multiplier Test - two-ways effects (Honda)
##
## data: 中长期资金持股比例 ~ 分红比例 + Log_分红比例 + ...
## normal = 239.33, p-value < 2.2e-16
## alternative hypothesis: significant effects
#霍斯曼检验
phtest(fe,re)
##
## Hausman Test
##
## data: 中长期资金持股比例 ~ 分红比例 + Log_分红比例 + ...
## chisq = 0.45439, df = 8, p-value = 0.9999
## alternative hypothesis: one model is inconsistent
#使用稳健聚类标准误
re_vcov <- vcovHC(
re,
type = "HC1",
cluster = "group"
)
coeftest(re, vcov = re_vcov)
##
## t test of coefficients:
##
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.16922942 0.01684346 10.0472 < 2.2e-16 ***
## 分红比例 -0.09931559 0.03521172 -2.8205 0.004798 **
## Log_分红比例 0.11670945 0.05102677 2.2872 0.022190 *
## ROA 0.43268450 0.02784005 15.5418 < 2.2e-16 ***
## 净资产负债率 -0.14213956 0.08262274 -1.7203 0.085380 .
## Log_MV 0.01194928 0.00098206 12.1676 < 2.2e-16 ***
## 固定资产比例 -0.03981377 0.00633472 -6.2850 3.324e-10 ***
## 流动比率 -0.01869779 0.02079082 -0.8993 0.368485
## 国企 -0.02498074 0.00252739 -9.8840 < 2.2e-16 ***
## Log_Firmage -0.04473011 0.00494327 -9.0487 < 2.2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1