How to identify stylized facts on SNP data.

 How to  identify stylized facts on SNP new data

> getSymbols("SNP", from="2004-01-01", to=Sys.Date())
[1] "SNP"
> chartSeries(Cl(SNP))
> addMACD()
> addRSI()
> addVolatility()






Error in array(x, c(length(x), 1L), if (!is.null(names(x))) list(names(x),  : 
  'data' must be of a vector type, was 'NULL'
> ret <- dailyReturn(Cl(SNP), type='log')
> par(mfrow=c(2,2))
> acf(ret, main="Return ACF");
> pacf(ret, main="Return PACF");
> acf(ret^2, main="Squared return ACF");
> pacf(ret^2, main="Squared return PACF")
> par(mfrow=c(1,1))
> m=mean(ret);s=sd(ret);
> par(mfrow=c(1,2))
> hist(ret, nclass=40, freq=FALSE, main='Return histogram');curve(dnorm(x,
+ mean=m,sd=s), from = -0.3, to = 0.2, add=TRUE, col="red")
> plot(density(ret), main='Return empirical distribution');curve(dnorm(x,
+  mean=m,sd=s), from = -0.3, to = 0.2, add=TRUE, col="red")
> par(mfrow=c(1,1))
> library("moments", lib.loc="~/R/win-library/3.6")

Attaching package: ‘moments’

The following objects are masked from ‘package:timeDate’:

    kurtosis, skewness

> kurtosis(ret)
daily.returns 
     9.264181 
> skewness(ret)
daily.returns 
    0.2025379 
> plot(density(ret), main='Return EDF - upper tail', xlim = c(0.1, 0.2),
+      ylim=c(0,2));
> curve(dnorm(x, mean=m,sd=s), from = -0.3, to = 0.2, add=TRUE, col="red")
> plot(density(ret), xlim=c(-5*s,5*s),log='y', main='Density on log-scale')
> curve(dnorm(x, mean=m,sd=s), from=-5*s, to=5*s, log="y", add=TRUE,
+       col="red")
> qqnorm(ret);qqline(ret);
SNPDATA

> chartSeries(Cl(SNP))
> addRSI()
 kurtosis(ret)
[1] 6.407848
attr(,"method")
[1] "excess
SNPRETURN

SNPRETURN

> head(SNP)
           SNP.Open SNP.High  SNP.Low SNP.Close
2004-01-02 38.00000 38.76923 37.96154  38.38462
2004-01-05 38.30769 38.54615 36.38462  37.87692
2004-01-06 34.03846 35.38462 33.19231  33.62308
2004-01-07 33.38462 33.63077 32.00000  32.78462
2004-01-08 33.15385 34.28462 33.07692  33.80769
2004-01-09 34.23077 34.61538 33.50000  33.76923
           SNP.Volume SNP.Adjusted
2004-01-02    1469700     18.73949
2004-01-05    1435200     18.49163
2004-01-06    2170800     16.41490
2004-01-07    1176300     16.00555
2004-01-08    1043900     16.50503
2004-01-09     567500     16.48625
> tail(SNP)
           SNP.Open SNP.High SNP.Low SNP.Close
2020-01-16    60.23    60.66   60.20     60.42
2020-01-17    60.81    60.81   60.53     60.70
2020-01-21    59.23    59.41   58.46     58.51
2020-01-22    58.95    58.97   58.02     58.18
2020-01-23    57.60    57.98   57.02     57.77
2020-01-24    57.73    57.80   56.84     57.16
           SNP.Volume SNP.Adjusted
2020-01-16     114800        60.42
2020-01-17     102800        60.70
2020-01-21     259800        58.51
2020-01-22     169600        58.18
2020-01-23     227900        57.77
2020-01-24     146200        57.16
"SNP", from="2004-01-01", to=Sys.Date())
[1] "SNP"
> chartSeries(Cl(SNP))
stylized facts,kaldor stylized facts,economics stylized facts,kaldor stylized facts hindi,facts,stylized games,stylized graphics,useless facts,stylized golden freddy,blackpink facts,10 facts,ancient rome facts,101 facts,nier automata facts,turbo math facts,roman facts

DailyReturn

> ret <- dailyReturn(Cl(SNP), type='log')
> par(mfrow=c(2,2))
> acf(ret, main="Return ACF");
> pacf(ret, main="Return PACF");
> acf(ret^2, main="Squared return ACF");
> pacf(ret^2, main="Squared return PACF")
www.r-languagestatistics.co

> par(mfrow=c(1,1))
> m=mean(ret);s=sd(ret);
> par(mfrow=c(1,2))
> hist(ret, nclass=40, freq=FALSE, main='Return histogram');curve(dnorm(x,
+  mean=m,sd=s), from = -0.3, to = 0.2, add=TRUE, col="red")
> plot(density(ret), main='Return empirical distribution');curve(dnorm(x, mean=m,sd=s), from = -0.3, to = 0.2, add=TRUE, col="red")
www.r-languagestatistics.co

> par(mfrow=c(1,1))
plot(density(ret), main='Return EDF - upper tail', xlim = c(0.1, 0.2),
+      ylim=c(0,2));
> curve(dnorm(x, mean=m,sd=s), from = -0.3, to = 0.2, add=TRUE, col="red")
www.r-languagestatistics.co

> plot(density(ret), xlim=c(-5*s,5*s),log='y', main='Density on log-scale')
> curve(dnorm(x, mean=m,sd=s), from=-5*s, to=5*s, log="y", add=TRUE,
+       col="red")
> qqnorm(ret);qqline(ret);
www.r-languagestatistics.co
> ret.snp <- dailyReturn(Cl(SNP), type='log')
> chartSeries(ret.snp)
www.r-languagestatistics.co

> garch11.spec = ugarchspec(variance.model = list(model="sGARCH",garchOrder=c(1,1)), mean.model = list(armaOrder=c(0,0)))
> snp.garch11.fit = ugarchfit(spec=garch11.spec, data=ret.snp)
> coef(snp.garch11.fit)
          mu        omega       alpha1
1.875552e-04 5.697513e-06 5.572483e-02
       beta1
9.312202e-01
> coef(snp.garch11.fit)
          mu        omega       alpha1
1.875552e-04 5.697513e-06 5.572483e-02
       beta1
9.312202e-01
> vcov(snp.garch11.fit)
              [,1]          [,2]
[1,]  8.296207e-08  3.994761e-11
[2,]  3.994761e-11  8.807742e-12
[3,]  3.307207e-08  3.487837e-09
[4,] -1.192944e-07 -2.277728e-08
              [,3]          [,4]
[1,]  3.307207e-08 -1.192944e-07
[2,]  3.487837e-09 -2.277728e-08
[3,]  3.386259e-05 -3.639961e-05
[4,] -3.639961e-05  8.409941e-05
> infocriteria(snp.garch11.fit)
                   
Akaike       -4.982447
Bayes        -4.976050
Shibata      -4.982449
Hannan-Quinn -4.980177
> newsimpact(snp.garch11.fit)
$zy
  [1] 0.0054273408 0.0052267519
  [3] 0.0050302566 0.0048378550
  [5] 0.0046495470 0.0044653327
  [7] 0.0042852120 0.0041091850
  [9] 0.0039372517 0.0037694119
 [11] 0.0036056659 0.0034460135
 [13] 0.0032904547 0.0031389896
 [15] 0.0029916181 0.0028483403
 [17] 0.0027091562 0.0025740657
 [19] 0.0024430688 0.0023161656
 [21] 0.0021933561 0.0020746402
 [23] 0.0019600179 0.0018494894
 [25] 0.0017430544 0.0016407131
 [27] 0.0015424655 0.0014483115
 [29] 0.0013582512 0.0012722845
 [31] 0.0011904114 0.0011126321
 [33] 0.0010389463 0.0009693543
 [35] 0.0009038558 0.0008424511
 [37] 0.0007851399 0.0007319225
 [39] 0.0006827987 0.0006377685
 [41] 0.0005968320 0.0005599891
 [43] 0.0005272399 0.0004985843
 [45] 0.0004740224 0.0004535542
 [47] 0.0004371796 0.0004248986
 [49] 0.0004167113 0.0004126176
 [51] 0.0004126176 0.0004167113
 [53] 0.0004248986 0.0004371796
 [55] 0.0004535542 0.0004740224
 [57] 0.0004985843 0.0005272399
 [59] 0.0005599891 0.0005968320
 [61] 0.0006377685 0.0006827987
 [63] 0.0007319225 0.0007851399
 [65] 0.0008424511 0.0009038558
 [67] 0.0009693543 0.0010389463
 [69] 0.0011126321 0.0011904114
 [71] 0.0012722845 0.0013582512
 [73] 0.0014483115 0.0015424655
 [75] 0.0016407131 0.0017430544
 [77] 0.0018494894 0.0019600179
 [79] 0.0020746402 0.0021933561
 [81] 0.0023161656 0.0024430688
 [83] 0.0025740657 0.0027091562
 [85] 0.0028483403 0.0029916181
 [87] 0.0031389896 0.0032904547
 [89] 0.0034460135 0.0036056659
 [91] 0.0037694119 0.0039372517
 [93] 0.0041091850 0.0042852120
 [95] 0.0044653327 0.0046495470
 [97] 0.0048378550 0.0050302566
 [99] 0.0052267519 0.0054273408

$zx
  [1] -0.300000000 -0.293939394
  [3] -0.287878788 -0.281818182
  [5] -0.275757576 -0.269696970
  [7] -0.263636364 -0.257575758
  [9] -0.251515152 -0.245454545
 [11] -0.239393939 -0.233333333
 [13] -0.227272727 -0.221212121
 [15] -0.215151515 -0.209090909
 [17] -0.203030303 -0.196969697
 [19] -0.190909091 -0.184848485
 [21] -0.178787879 -0.172727273
 [23] -0.166666667 -0.160606061
 [25] -0.154545455 -0.148484848
 [27] -0.142424242 -0.136363636
 [29] -0.130303030 -0.124242424
 [31] -0.118181818 -0.112121212
 [33] -0.106060606 -0.100000000
 [35] -0.093939394 -0.087878788
 [37] -0.081818182 -0.075757576
 [39] -0.069696970 -0.063636364
 [41] -0.057575758 -0.051515152
 [43] -0.045454545 -0.039393939
 [45] -0.033333333 -0.027272727
 [47] -0.021212121 -0.015151515
 [49] -0.009090909 -0.003030303
 [51]  0.003030303  0.009090909
 [53]  0.015151515  0.021212121
 [55]  0.027272727  0.033333333
 [57]  0.039393939  0.045454545
 [59]  0.051515152  0.057575758
 [61]  0.063636364  0.069696970
 [63]  0.075757576  0.081818182
 [65]  0.087878788  0.093939394
 [67]  0.100000000  0.106060606
 [69]  0.112121212  0.118181818
 [71]  0.124242424  0.130303030
 [73]  0.136363636  0.142424242
 [75]  0.148484848  0.154545455
 [77]  0.160606061  0.166666667
 [79]  0.172727273  0.178787879
 [81]  0.184848485  0.190909091
 [83]  0.196969697  0.203030303
 [85]  0.209090909  0.215151515
 [87]  0.221212121  0.227272727
 [89]  0.233333333  0.239393939
 [91]  0.245454545  0.251515152
 [93]  0.257575758  0.263636364
 [95]  0.269696970  0.275757576
 [97]  0.281818182  0.287878788
 [99]  0.293939394  0.300000000

$yexpr
expression(sigma[t]^2)

$xexpr
expression(epsilon[t - 1])
  uncvariance
uncvariance(snp.garch11.fit)
[1] 0.0004364257
> uncmean(snp.garch11.fit)
[1] 0.0001875552
infocriteria(snp.garch11.fit)
                   
Akaike       -4.982447
Bayes        -4.976050
Shibata      -4.982449
Hannan-Quinn -4.980177
> vcov(snp.garch11.fit)
              [,1]          [,2]
[1,]  8.296207e-08  3.994761e-11
[2,]  3.994761e-11  8.807742e-12
[3,]  3.307207e-08  3.487837e-09
[4,] -1.192944e-07 -2.277728e-08
              [,3]          [,4]
[1,]  3.307207e-08 -1.192944e-07
[2,]  3.487837e-09 -2.277728e-08
[3,]  3.386259e-05 -3.639961e-05
[4,] -3.639961e-05  8.409941e-05
Newsimpact
 ni.garch11 <- newsimpact(snp.garch11.fit)
> plot(ni.garch11$zx, ni.garch11$zy, type="l", lwd=2, col="blue",main="GARCH(1,1) - News Impact", ylab=ni.garch11$yexpr, xlab=ni.garch11$xexpr)
www.r-languagestatistics.co
ni.garch11 <- newsimpact(snp.garch11.fit)
> plot(ni.garch11$zx, ni.garch11$zy, type="l", lwd=2, col="blue",main="GARCH(1,1) - News Impact", ylab=ni.garch11$yexpr, xlab=ni.garch11$xexpr)
> egarch11.spec = ugarchspec(variance.model = list(model="eGARCH",
+ garchOrder=c(1,1)), mean.model = list(armaOrder=c(0,0)))
> snp.egarch11.fit = ugarchfit(spec=egarch11.spec, data=ret.snp)
coef(snp.egarch11.fit)
           mu         omega
 4.096138e-05 -8.514104e-02
       alpha1         beta1
-1.377602e-02  9.883733e-01
       gamma1
 1.300730e-01
> ni.egarch11 <- newsimpact(snp.egarch11.fit)
> plot(ni.egarch11$zx, ni.egarch11$zy, type="l", lwd=2, col="blue",
+      main="EGARCH(1,1) - News Impact",
+      ylab=ni.egarch11$yexpr, xlab=ni.egarch11$xexpr)
www.r-languagestatistics.co
Ugarch
garch11.spec = ugarchspec(variance.model = list(garchOrder=c(1,1)),mean.model = list(armaOrder=c(0,0)),
+ fixed.pars=list(mu = 0, omega=0.1, alpha1=0.1,beta1 = 0.7))
> garch11.sim = ugarchpath(garch11.spec, n.sim=1000)
snp.garch11.fit = ugarchfit(spec=garch11.spec, data=ret.snp, out.sample=20)
plot(snp.garch11.fit, which='all')
www.r-languagestatistics.co

Reactions

Post a Comment

0 Comments