11分析新浪股票数据
统计指标
均值(mean):是表示一组数据集中趋势的统计指标,是指在一组数据中所有数据之和再除以这组数据的个数。
方差(variance):是衡量随机变量或一组数据时离散程度的度量。在统计学中是标准的二阶中心距,在许多实际问题中,研究方差即偏离程度有着重要意义。
偏度(skewness):是统计数据分布偏斜方向和程度的度量,是统计数据分布非对称程度的数字特征。在统计学中是标准的三阶中心距,度量关于其均值的对称性。
峰度(kurtosis):又称峰态系数,是反映概率密度分布曲线在平均值处峰值高低的特征数。在统计学中是标准的四阶中心距,峰度反映了峰部尖度和尾部厚度。
正态性检验原理
JB 正态性检验,是 Jarque 和 Bera 两个人将单独的偏度 t 检验和峰度 t 检验融合在一起而建立的正态性检验原理。
若在规定的显著性水平下(通常为 5% ),拒绝原假设,则不满足正态分布。
访问和下载网络上的股票数据
> library(quantmod)
> library(zoo)
> library(xts)
> library(TTR)
> getSymbols("SINA")
[1] "SINA"
> # getSymbols("SINA", src="google")
> head(SINA)
SINA.Open SINA.High SINA.Low SINA.Close SINA.Volume SINA.Adjusted
2007-01-03 29.26 30.57 29.16 29.87 1751300 29.87
2007-01-04 29.87 31.46 29.85 31.06 2641700 31.06
2007-01-05 30.81 31.46 30.70 31.09 1691900 31.09
2007-01-08 31.39 32.08 31.10 31.66 3102600 31.66
2007-01-09 31.80 31.97 31.17 31.67 1406800 31.67
2007-01-10 31.50 32.56 31.43 32.32 1874200 32.32
> tail(SINA)
SINA.Open SINA.High SINA.Low SINA.Close SINA.Volume SINA.Adjusted
2020-11-06 42.84 42.96 42.76 42.90 877200 42.90
2020-11-09 42.83 42.95 42.76 42.77 1049500 42.77
2020-11-10 42.81 42.98 42.78 42.95 1108900 42.95
2020-11-11 42.88 43.38 42.85 43.22 1448700 43.22
2020-11-12 43.30 43.31 43.15 43.25 1261200 43.25
2020-11-13 43.28 43.44 43.20 43.27 893400 43.27
> dim(SINA)
[1] 3493 6
股票数据的图形绘制
股票数据的时序图
一般来说,要对股票数据做一个直观的了解直接看 K 线图(时序图)。
> getSymbols("SINA", from="2017-01-03", to="2017-07-12")
[1] "SINA"
> chartSeries(SINA, from="2017-01-03", to="2017-07-12")
image.png
K线图里仅表示了新浪股票数据的日收盘价和成交量的时序图。
> chartSeries(SINA, theme="white", from="2017-01-03", to="2017-07-12")
image.png
** 股票收益率的时序图**
下载的股票数据的 6 个维度包含:开盘价、最高价、最低价、收盘价、成交量、调整的收盘价。研究股票收益率是股票投资分析最基本的操作,股票收益率通常简化为股票价格对数变化来表示,股票价格使用调整后的收盘价。
> SINA.Profit <- diff(log(SINA$SINA.Adjusted))
> chartSeries(SINA.Profit, theme="white")
image.png
股票收益率的密度函数图
> library(fBasics)
> SINA.Pro <- na.omit(SINA.Profit)
> de <- density(SINA.Pro)
> range(SINA.Pro)
[1] -0.1435650 0.1642309
> x <- seq(-.17, .17, .001)
> plot(de$x, de$y, xlab='x', ylab='density', type='l')
> ys <- dnorm(x, mean(SINA.Pro), stdev(SINA.Pro))
> lines(x, ys, lty=2)
image.png
可以看到新浪股票数据的密度函数有明显的高峰厚尾现象,与正态分布有明显的差别,显然不是正态分布的。
股票收益率的正态性检验
股票收益率的基本统计量
> basicStats(SINA.Pro)
SINA.Adjusted
nobs 130.000000
NAs 0.000000
Minimum -0.143565
Maximum 0.164231
1. Quartile -0.008268
3. Quartile 0.013719
Mean 0.002726
Median 0.001275
Sum 0.354345
SE Mean 0.002385
LCL Mean -0.001993
UCL Mean 0.007445
Variance 0.000740
Stdev 0.027195
Skewness 0.462163
Kurtosis 14.101106
可以得到新浪股票收益率的各种基本统计结果: nobs(数据个数)、Mean(均值)、Median(中位数)、Sum(总和)、Variance(方差)、Stdev(标准差)、Skewness(偏度)、Kurtosis(峰度)。 mean=0.003,接近于0,也就是说新浪股票收益率具有比较明显的向0集中的趋势。 Variance=0.001,接近于0,也就是说新浪股票收益率的离散程度较小,不分散。 Skewness=0.462, 明显不等于0,也就是说新浪股票收益率是非对称分布的。 Kurtosis=14.101 ,明显大于3,也就是说新浪股票收益率存在明显的高峰厚尾现象。
股票收益率的正态性检验
> normalTest(SINA.Pro, method='jb')
Title:
Jarque - Bera Normalality Test
Test Results:
STATISTIC:
X-squared: 1122.8358
P VALUE:
Asymptotic p Value: < 2.2e-16
Description:
Sun Nov 15 17:19:39 2020 by user: Administrator
Warning message:
In if (class(x) == "fREG") x = residuals(x) :
the condition has length > 1 and only the first element will be used
检验统计量 JB=1122.8358,p<2.2e-16<0.05,也就是说在5%的显著性水平上拒绝新浪股票收益率服从正态分布函数的原假设,即新浪股票收益率不服从正态分布。