zoukankan      html  css  js  c++  java
  • 国内A股16家上市银行的財务数据与股价的因子分析报告(1)(工具:R)

    分析人:BUPT_LX


    研究目的

    用某些算法对201412月份的16家国内A股上市的商业银行当中11项財务数据(资产总计、负债合计、股本、营业收入、流通股A、少数股东权益、净利润、经营活动的现金流量净额、投资活动的现金流量净额、筹资活动的现金流量净额、汇率变动对现金的影响)提取分析,得出股票价格的財务影响原因。更加清楚地指导银行股价与財务数据指标之间的联系。

    研究方法

    主要有描写叙述性分析、因子分析、回归法

    方法概述:

    1. 先对上述的財务数据进行提取。然后用常规的描写叙述方法(平均、最大、最小、方差等)对这些数据进行粗略分析。

    2. 然后用因子分析得出对上市银行的股票价格影响较大的几个因子。从而更加详细地了解到上市银行股价的决定性因素(将几个因子进行业务描写叙述);

    3. 最后用回归法确定这些因素对股票价格的影响强弱

    研究工具

    R语言

    psych/library(psych)用于因子分析

    lmtest包用于回归检验

    算法模型分析过程

    1. 数据预处理

    列出16A股上市的银行

    工商银行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. 16A股上市的银行净利润平均值在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.ML1ML2两个因子的累积贡献率有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 ‘ ’ 

    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 ‘ ’ 

    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 

    通过AICBIC准则的检验,股本、流通股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.3843p值为0.6526,说明模型不存在多重共线性(自相关性)

    因此我们能够得到线性回归方程

    股价=( 9159.659 -9.116*股本+ 2.787 *流通股A+ 7.820 *净利润)/1000。当中这三个变量的系数都在显著水平0.01水平下显著

    分析结论

    1. 通过对上市银行的相关財务数据进行因子分析,能够用两个公共主因子:资产负债权益因子ML1现金流量因子ML2去影响股票价格72%的信息

    2. 通过回归分析得出上市银行股价受股本、流通股、净利润三个变量的影响较大。





  • 相关阅读:
    【像程序员一样思考】读书笔记4
    MFC ListControl 与 Excel 数据的导入导出
    OpenCV中findContours函数的使用
    十大算法
    qsort对二维数组的排序
    【像程序员一样思考】读书笔记3
    【像程序员一样思考】 读书笔记2
    【像程序员一样思考】 读书笔记1
    代码混淆
    布局优化
  • 原文地址:https://www.cnblogs.com/gccbuaa/p/7387645.html
Copyright © 2011-2022 走看看