用某些算法对2014年12月份的16家国内A股上市的商业银行其中11项财务数据(资产总计、负债合计、股本、营业收入、流通股A、少数股东权益、净利润、经营活动的现金流量净额、投资活动的现金流量净额、筹资活动的现金流量净额、汇率变动对现金的影响)提取分析,得出股票价格的财务影响原因,更加清楚地指导银行股价与财务数据指标之间的联系。
主要有描述性分析、因子分析、回归法
方法概述:
1. 先对上述的财务数据进行提取,然后用常规的描述方法(平均、最大、最小、方差等)对这些数据进行粗略分析;
2. 然后用因子分析得出对上市银行的股票价格影响较大的几个因子,从而更加具体地了解到上市银行股价的决定性因素(将几个因子进行业务描述);
3. 最后用回归法确定这些因素对股票价格的影响强弱
R语言
psych包/library(psych)用于因子分析
lmtest包用于回归检验
1. 数据预处理
列出16家A股上市的银行
工商银行601398
农业银行601288
中国银行601988
建设银行601939
交通银行601328
民生银行600016
浦发银行600000
兴业银行601166
光大银行601818
平安银行000001
中信银行601998
招商银行600036
华夏银行600015
北京银行601169
南京银行601009
宁波银行002142
其中顺序对应于下表行1~16,财务数据对应于列1~11,其中单位为亿元
资产总计 |
负债合计 |
股本 |
营业收入 |
流通股A |
少数股东权益 |
净利润 |
经营活动的现金流量净额 |
投资活动的现金流量净额 |
筹资活动的现金流量净额 |
汇率变动对现金的影响 |
股价 |
206000 |
191000 |
3535 |
6589 |
2680 |
64.5 |
2763 |
2015 |
-1467 |
1578 |
84.9 |
4.33 |
160000 |
149000 |
3248 |
5209 |
2842 |
15.5 |
1795 |
346 |
-1404 |
308 |
-5.7 |
3.05 |
153000 |
141000 |
2887 |
4563 |
2051 |
426 |
1772 |
1269 |
-2006 |
836 |
-123 |
3.7 |
167000 |
155000 |
2500 |
5705 |
95 |
102 |
2278 |
3170 |
-3439 |
-629 |
27.3 |
4.97 |
62700 |
57900 |
743 |
1774 |
327 |
25.5 |
660 |
497 |
-234 |
437 |
1.7 |
6.34 |
40200 |
37700 |
342 |
1355 |
225 |
76.1 |
456 |
2292 |
-2844 |
305 |
-1.25 |
7.03 |
42000 |
39300 |
187 |
1232 |
149.22 |
31.2 |
474 |
1912 |
-3425 |
729 |
10.7 |
13.146 |
44100 |
41500 |
191 |
1249 |
161.8 |
31.6 |
475 |
6821 |
-5662 |
1143 |
-1.4 |
13.54 |
27400 |
25600 |
467 |
785 |
398.1 |
5.08 |
289 |
347 |
-925 |
388 |
2.26 |
3.83 |
21900 |
20600 |
114 |
734 |
98.37 |
0 |
198 |
253 |
-545 |
312 |
3.25 |
11.46 |
44300 |
41500 |
468 |
1247 |
319 |
79.4 |
111 |
-311 |
-238 |
308 |
14 |
5.55 |
47300 |
44200 |
252 |
1659 |
206.29 |
6.56 |
560 |
2722 |
-1760 |
219 |
34.5 |
12.47 |
18500 |
17500 |
89.1 |
549 |
64.88 |
6.41 |
180 |
129 |
-202 |
111 |
0.98 |
11.39 |
15200 |
14300 |
106 |
369 |
89.68 |
0.23 |
156 |
1245 |
-545 |
130 |
1.08 |
9.08 |
5732 |
5404 |
29.7 |
160 |
29.69 |
3.35 |
56.6 |
1115 |
-1250 |
215 |
0.09 |
10.93 |
5541 |
5199 |
32.5 |
154 |
28.73 |
0.73 |
56.3 |
228 |
-626 |
333 |
-1144 |
10.49 |
data_bank<-read.csv("C:/Users/user/Desktop/bank1.csv")
##如果用summary(data_bank)会看到第一个元素min,第三个元素中位数,第四个元素平均值,第六个元素最大值。我们对data_bank每一列做上述的操作,使得展现更为清晰。
#求每个元素(财务指标)的样本数
N1<-length(data_bank[,1])
N2<-length(data_bank[,2])
N3<-length(data_bank[,3])
N4<-length(data_bank[,4])
N5<-length(data_bank[,5])
N6<-length(data_bank[,6])
N7<-length(data_bank[,7])
N8<-length(data_bank[,8])
N9<-length(data_bank[,9])
N10<-length(data_bank[,10])
N11<-length(data_bank[,11])
head<-c("变量名","资产总计","负债合计","股本","营业收入","流通股A","少数股东权益","净利润","经营活动的现金流量净额","投资活动的现金流量净额","筹资活动的现金流量净额","汇率变动对现金的影响")
sum1<-summary(data_bank[,1])
sum2<-summary(data_bank[,2])
sum3<-summary(data_bank[,3])
sum4<-summary(data_bank[,4])
sum5<-summary(data_bank[,5])
sum6<-summary(data_bank[,6])
sum7<-summary(data_bank[,7])
sum8<-summary(data_bank[,8])
sum9<-summary(data_bank[,9])
sum10<-summary(data_bank[,10])
sum11<-summary(data_bank[,11])
row2<-c("全距",sum1[6]-sum1[1],sum2[6]-sum2[1],sum3[6]-sum3[1],sum4[6]-sum4[1],sum5[6]-sum5[1],sum6[6]-sum6[1],sum7[6]-sum7[1],sum8[6]-sum8[1],sum9[6]-sum9[1],sum10[6]-sum10[1],sum11[6]-sum11[1])
row3<-c("最小值",sum1[1],sum2[1],sum3[1],sum4[1],sum5[1],sum6[1],sum7[1],sum8[1],sum9[1],sum10[1],sum11[1])
row4<-c("最大值",sum1[6],sum2[6],sum3[6],sum4[6],sum5[6],sum6[6],sum7[6],sum8[6],sum9[6],sum10[6],sum11[6])
row5<-c("均值",sum1[4],sum2[4],sum3[4],sum4[4],sum5[4],sum6[4],sum7[4],sum8[4],sum9[4],sum10[4],sum11[4])
row6<-c("中位数",sum1[3],sum2[3],sum3[3],sum4[3],sum5[3],sum6[3],sum7[3],sum8[3],sum9[3],sum10[3],sum11[3])
row7<-c("标准差",sd(data_bank[,1]),sd(data_bank[,2]),sd(data_bank[,3]),sd(data_bank[,4]),sd(data_bank[,5]),sd(data_bank[,6]),sd(data_bank[,7]),sd(data_bank[,8]),sd(data_bank[,9]),sd(data_bank[,10]),sd(data_bank[,11]))
result<-matrix(c(head,row1,row2,row3,row4,row5,row6,row7),nrow=8,byrow=T)
print(t(result))
可以看出这
1. 16家A股上市的银行净利润平均值在767亿,最小的56,3亿也是盈利的,说明效益还是比较稳定的;
2. 现金流量净额方面,经营活动收入的现金最多,而投资活动出去的现金最多,汇率变动使得现金有少部分亏损;
3. 资产-负债上总体保持资产高于负债近10个点。
二、下面进行因子分析过程
library(psych)#因子分析需要的库
KMO(data_bank[,-12])#减去股价那一列,做因子检验
#MSA为60%,说明这些变量适合做因子分析
fa.parallel(data_bank[,-12])#根据下面图我们选取主因子数量为2
#因子分析的算法
fa(data_bank[,-12],nfactors=2,fm="ml",rotate="varimax",score=T)
##Factor Analysis using method = ml
##Call: fa(r = data_bank[, -12], nfactors = 2, rotate = "varimax", scores = T,
## fm = "ml")
##Standardized loadings (pattern matrix) based upon correlation matrix
## ML1 ML2 h2 u2 com
##资产总计 0.98 0.20 0.998 0.0022 1.1
##负债合计 0.98 0.21 0.998 0.0021 1.1
##股本 0.98 0.07 0.974 0.0263 1.0
##营业收入 0.97 0.21 0.996 0.0041 1.1
##流通股A 0.84 -0.06 0.706 0.2941 1.0
##少数股东权益 0.48 0.08 0.240 0.7602 1.1
##净利润 0.96 0.25 0.981 0.0186 1.1
##经营活动的现金流量净额 -0.05 1.00 0.995 0.0050 1.0
##投资活动的现金流量净额 -0.03 -0.92 0.838 0.1618 1.0
##筹资活动的现金流量净额 0.19 0.29 0.116 0.8842 1.7
##汇率变动对现金的影响 0.21 0.22 0.091 0.9093 2.0
##SS loadings 5.76 2.17
##Proportion Var 0.52 0.20
##Cumulative Var 0.52 0.72
##Proportion Explained 0.73 0.27
##Cumulative Proportion 0.73 1.00
##Mean item complexity = 1.2
##Test of the hypothesis that 2 factors are sufficient.
##The degrees of freedom for the null model are 55 and the objective function was 33.64 with ##Chi Square of 353.17
##The degrees of freedom for the model are 34 and the objective function was 10.91
##The root mean square of the residuals (RMSR) is 0.06
##The df corrected root mean square of the residuals is 0.07
##The harmonic number of observations is 16 with the empirical chi square 5.45 with prob < ##1
##The total number of observations was 16 with MLE Chi Square = 99.97 with prob < ##2.1e-08
##Tucker Lewis Index of factoring reliability = 0.579
##RMSEA index = 0.504 and the 90 % confidence intervals are 0.27 0.428
##BIC = 5.7
##Fit based upon off diagonal values = 0.99
##Measures of factor score adequacy
## ML1 ML2
##Correlation of scores with factors 1 1.00
##Multiple R square of scores with factors 1 1.00
##Minimum correlation of possible factor scores 1 0.99
从上述结果可以看出
1.ML1与ML2两个因子的累积贡献率有72%,说明两个因子能解释所有变量72%的信息
2.各个因子与两个变量的关系:
资产总计=0.98ML1+0.20ML2
负债合计=0.98ML1+0.21ML2
股本=0.98ML1+0.07ML2
营业收入=0.97ML1+0.21ML2
流通股A =0.84ML1-0.06ML2
少数股东权益=0.48ML1+0.08ML2
净利润=0.96ML1+0.25ML2
经营活动的现金流量净额=-0.05ML1+1.00ML2
投资活动的现金流量净额=-0.03ML1-0.92ML2
筹资活动的现金流量净额=0.19ML1+0.29ML2
汇率变动对现金的影响=0.21ML1+0.22ML2
可以看出ML1主要对资产、负债、权益、利润有影响,ML2主要对经营活动、投资活动、筹资活动的现金流量有影响
称ML1为资产-负债-权益因子,ML2为现金流量因子
三、最后进行回归分析过程
用现有的财务变量探索上市银行股价与其主要财务指标的关系
lm<-lm(股价~.,data=data_bank)#用lm算它的线性回归
lm.aic<-step(lm,trace=FALSE)#用aic的检验法逐步回归
lm.bic<-step(lm,k=log(length(data_bank[,1])),trace=FALSE)#用bic的检验法逐步回归
##看两种方法逐步回归后的结果
summary(lm.aic)
summary(lm.bic)
Call:
lm(formula = 股价 ~ 股本 + 流通股A + 净利润, data = data_bank)
Residuals:
Min 1Q Median 3Q Max
-4.442 -1.245 0.880 1.516 1.956
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 9.159659 0.796650 11.498 7.78e-08 ***
股本 -0.009116 0.002645 -3.447 0.00484 **
流通股A 0.002787 0.001570 1.774 0.10133
净利润 0.007820 0.002813 2.780 0.01665 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.195 on 12 degrees of freedom
Multiple R-squared: 0.7228, Adjusted R-squared: 0.6536
F-statistic: 10.43 on 3 and 12 DF, p-value: 0.00116
--------------------------------------------------------------------------------------------------------------
Call:
lm(formula = 股价 ~ 股本 + 流通股A + 净利润, data = data_bank)
Residuals:
Min 1Q Median 3Q Max
-4.442 -1.245 0.880 1.516 1.956
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 9.159659 0.796650 11.498 7.78e-08 ***
股本 -0.009116 0.002645 -3.447 0.00484 **
流通股A 0.002787 0.001570 1.774 0.10133
净利润 0.007820 0.002813 2.780 0.01665 *
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Residual standard error: 2.195 on 12 degrees of freedom
Multiple R-squared: 0.7228, Adjusted R-squared: 0.6536
F-statistic: 10.43 on 3 and 12 DF, p-value: 0.00116
通过AIC和BIC准则的检验,股本、流通股A、净利润对股价影响较大。为了保证线性模型的准确率,我们在检查这个模型是否存在多重共线性(自相关性),通过lmtest程序包中的dwtest函数对模型进行Durbin-Watson检验
library(lmtest)
dwtest(lm.aic)
## Durbin-Watson test
##data: lm.aic
##DW = 2.3843, p-value = 0.6526
##alternative hypothesis: true autocorrelation is greater than 0
DW检验只适用于检验误差项是否存在一阶自相关情形。
DW检验步骤如下。给出假设
H0: r = 0 (ut 不存在一阶自相关);
H1: r ¹ 0 (ut 存在一阶自相关)。
可以看出DW统计量为2.3843,p值为0.6526,说明模型不存在多重共线性(自相关性)
因此我们可以得到线性回归方程
股价=( 9159.659 -9.116*股本+ 2.787 *流通股A+ 7.820 *净利润)/1000,其中这三个变量的系数都在显著水平0.01水平下显著
1. 通过对上市银行的相关财务数据进行因子分析,可以用两个公共主因子:资产负债权益因子ML1和现金流量因子ML2去影响股票价格72%的信息
2. 通过回归分析得出上市银行股价受股本、流通股、净利润三个变量的影响较大。