Beruflich Dokumente
Kultur Dokumente
Количественные финансы
Силкин Глеб
18 ноября 2019 г.
## [1] "JNJ"
## [1] "^GSPC"
## [1] "DGS10"
Получите данные вашего тикера, а также индекса ММВБ с помощью пакета QuantTools
rosneft <- get_finam_data('ROSN', from = '2012-01-01',
to = Sys.Date()) # Сбербанк
# пакет QuantTools возвращает данные в формате data.table/data.frame, а не хts
class(rosneft)
tail(rosneft,3)
tail(MICEX)
Каково последнее время, когда происходили торги вашим тикером? Ответ: 18го ноября
2019г в 19.00
постройте график серии вашего тикера с данными за 2015-2019 гг., а также график
серии за март-сентябрь 2019 года
chartSeries(JNJ["2015/2019"], theme = 'white')
chartSeries(JNJ["2019-03/2019-09"], theme = 'white')
4. Посчитать лог-доходности
SP500.rtn <- diff(log(GSPC$GSPC.Adjusted)) # расчет лог-доходности индекса S&P
500
JNJ.rtn = diff(log(JNJ$JNJ.Adjusted)) # расчет лог-доходности JNJ
basicStats(MICEX.rtn)
## close
## nobs 1984.000000
## NAs 1.000000
## Minimum -0.114189
## Maximum 0.051218
## 1. Quartile -0.005761
## 3. Quartile 0.006813
## Mean 0.000357
## Median 0.000319
## Sum 0.708668
## SE Mean 0.000246
## LCL Mean -0.000126
## UCL Mean 0.000841
## Variance 0.000120
## Stdev 0.010976
## Skewness -0.768660
## Kurtosis 8.830871
##
## One Sample t-test
##
## data: as.vector(MICEX.rtn)
## t = 1.4499, df = 1982, p-value = 0.1473
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.0001260242 0.0008407678
## sample estimates:
## mean of x
## 0.0003573718
## close
## nobs 1984.000000
## NAs 1.000000
## Minimum -0.064956
## Maximum 0.070589
## 1. Quartile -0.008561
## 3. Quartile 0.009053
## Mean 0.000374
## Median 0.000112
## Sum 0.742374
## SE Mean 0.000339
## LCL Mean -0.000290
## UCL Mean 0.001039
## Variance 0.000228
## Stdev 0.015089
## Skewness 0.196290
## Kurtosis 1.254945
t.test(as.vector(rosneft.rtn))
##
## One Sample t-test
##
## data: as.vector(rosneft.rtn)
## t = 1.1048, df = 1982, p-value = 0.2694
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.0002901694 0.0010389078
## sample estimates:
## mean of x
## 0.0003743692
basicStats(JNJ.rtn)
## JNJ.Adjusted
## nobs 3242.000000
## NAs 1.000000
## Minimum -0.105781
## Maximum 0.115373
## 1. Quartile -0.004314
## 3. Quartile 0.005657
## Mean 0.000336
## Median 0.000324
## Sum 1.090173
## SE Mean 0.000184
## LCL Mean -0.000025
## UCL Mean 0.000698
## Variance 0.000110
## Stdev 0.010490
## Skewness -0.175467
## Kurtosis 12.967481
t.test(as.vector(JNJ.rtn))
##
## One Sample t-test
##
## data: as.vector(JNJ.rtn)
## t = 1.8256, df = 3240, p-value = 0.06801
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -2.489986e-05 6.976387e-04
## sample estimates:
## mean of x
## 0.0003363694
basicStats(SP500.rtn)
## GSPC.Adjusted
## nobs 3242.000000
## NAs 1.000000
## Minimum -0.094695
## Maximum 0.109572
## 1. Quartile -0.003903
## 3. Quartile 0.005569
## Mean 0.000244
## Median 0.000663
## Sum 0.789721
## SE Mean 0.000215
## LCL Mean -0.000179
## UCL Mean 0.000666
## Variance 0.000150
## Stdev 0.012260
## Skewness -0.370987
## Kurtosis 10.838248
t.test(as.vector(SP500.rtn))
##
## One Sample t-test
##
## data: as.vector(SP500.rtn)
## t = 1.1314, df = 3240, p-value = 0.258
## alternative hypothesis: true mean is not equal to 0
## 95 percent confidence interval:
## -0.0001785856 0.0006659172
## sample estimates:
## mean of x
## 0.0002436658
Какие выводы можно сделать для вашего тикера на основе теста Стьюдента? Ответ:
Поскольку P-Value больше нуля, то нулевая гипотеза отвергается и принимается
альтернативная. Последняя гласит, что 1)медианная лог-доходность индекса ММВБ не
равна нулю. 2)Аналогично у Роснефти, Johnson&Johnson, SP500. Вывод: все 4 давали
какой-либо доход инвесторам.
Проверить вашу серию доходности на нормальность с помощью тестов Колмогорова-
Смирнова и Шапиро-Уилка
ksnormTest(MICEX.rtn)
##
## Title:
## One-sample Kolmogorov-Smirnov test
##
## Test Results:
## STATISTIC:
## D: 0.4826
## P VALUE:
## Alternative Two-Sided: < 2.2e-16
## Alternative Less: < 2.2e-16
## Alternative Greater: < 2.2e-16
##
## Description:
## Mon Nov 18 22:12:06 2019 by user: rudin
shapiroTest(MICEX.rtn)
##
## Title:
## Shapiro - Wilk Normality Test
##
## Test Results:
## STATISTIC:
## W: 0.9492
## P VALUE:
## < 2.2e-16
##
## Description:
## Mon Nov 18 22:12:06 2019 by user: rudin
ksnormTest(rosneft.rtn)
##
## Title:
## One-sample Kolmogorov-Smirnov test
##
## Test Results:
## STATISTIC:
## D: 0.4796
## P VALUE:
## Alternative Two-Sided: < 2.2e-16
## Alternative Less: < 2.2e-16
## Alternative Greater: < 2.2e-16
##
## Description:
## Mon Nov 18 22:12:06 2019 by user: rudin
shapiroTest(rosneft.rtn)
##
## Title:
## Shapiro - Wilk Normality Test
##
## Test Results:
## STATISTIC:
## W: 0.9877
## P VALUE:
## 5.657e-12
##
## Description:
## Mon Nov 18 22:12:06 2019 by user: rudin
ksnormTest(JNJ.rtn)
##
## Title:
## One-sample Kolmogorov-Smirnov test
##
## Test Results:
## STATISTIC:
## D: 0.4828
## P VALUE:
## Alternative Two-Sided: < 2.2e-16
## Alternative Less: < 2.2e-16
## Alternative Greater: < 2.2e-16
##
## Description:
## Mon Nov 18 22:12:06 2019 by user: rudin
shapiroTest(JNJ.rtn)
##
## Title:
## Shapiro - Wilk Normality Test
##
## Test Results:
## STATISTIC:
## W: 0.9037
## P VALUE:
## < 2.2e-16
##
## Description:
## Mon Nov 18 22:12:06 2019 by user: rudin
ksnormTest(SP500.rtn)
##
## Title:
## One-sample Kolmogorov-Smirnov test
##
## Test Results:
## STATISTIC:
## D: 0.4788
## P VALUE:
## Alternative Two-Sided: < 2.2e-16
## Alternative Less: < 2.2e-16
## Alternative Greater: < 2.2e-16
##
## Description:
## Mon Nov 18 22:12:06 2019 by user: rudin
shapiroTest(SP500.rtn)
##
## Title:
## Shapiro - Wilk Normality Test
##
## Test Results:
## STATISTIC:
## W: 0.8768
## P VALUE:
## < 2.2e-16
##
## Description:
## Mon Nov 18 22:12:06 2019 by user: rudin
6. Проверить на стационарность
library(tseries)
adf.test(MICEX$close) # тест Дики-Фуллера для исходный значений серии
##
## Augmented Dickey-Fuller Test
##
## data: MICEX$close
## Dickey-Fuller = -2.7149, Lag order = 12, p-value = 0.2757
## alternative hypothesis: stationary
##
## Augmented Dickey-Fuller Test
##
## data: MICEX.rtn
## Dickey-Fuller = -12.657, Lag order = 12, p-value = 0.01
## alternative hypothesis: stationary
Если функция adf.test выдает ошибку, то скорее всего, у вас есть значения NA в серии
library(urca)
df <- ur.df(MICEX.rtn)
summary(df)
##
## ###############################################
## # Augmented Dickey-Fuller Test Unit Root Test #
## ###############################################
##
## Test regression none
##
##
## Call:
## lm(formula = z.diff ~ z.lag.1 - 1 + z.diff.lag)
##
## Residuals:
## Min 1Q Median 3Q Max
## -0.114647 -0.005745 0.000289 0.006814 0.052015
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## z.lag.1 -1.02584 0.03165 -32.412 <2e-16 ***
## z.diff.lag 0.03363 0.02246 1.497 0.135
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.01098 on 1979 degrees of freedom
## Multiple R-squared: 0.4968, Adjusted R-squared: 0.4963
## F-statistic: 977.1 on 2 and 1979 DF, p-value: < 2.2e-16
##
##
## Value of test-statistic is: -32.4118
##
## Critical values for test statistics:
## 1pct 5pct 10pct
## tau1 -2.58 -1.95 -1.62