Sunday, February 19, 2017

Financial products with capital protection barrier - part 9

Fractional ARIMA Test

Abstract

In this post, my exploratory analysis checks for the presence of long memory in the observations distribution. Long memory processes have ACF plots characterized by slow decay of the auto-correlation along with the lags, whereby the decay is driven by a power law. That implies fat tails in the probability distribution.

Based on my previous posts results, actually there are not any boundary conditions that suggest to have a scenario as such. Anyway, I will carry on the analysis to document the approach as generic purpose.

Analysis

I am going to take advantage of the fracdiff() function made available by the fracdiff package. Such function is capable to return an estimate of the parameter d associated to a stochastic process supposed to be fractional. The parameter d plays the role of fractional differencing in the ARFIMA(p,d,q) model representation. In particular if:

\[ \begin{equation} \begin{aligned} 0\ <\ d\ <\ \frac{1}{2} \\ \end{aligned} \end{equation} \]

gives long memory processes (ref. [4] $8).

Starting as usual by loading the current relevant state of the analysis as saved before.

load(file="structured-product-3.RData")
invisible(lapply(ts.package, function(x) {
suppressPackageStartupMessages(library(x, character.only=TRUE)) }))
suppressPackageStartupMessages(library(knitr))

I show again the ACF plot just as reminder of the tail-off/cut-off pattern for our scenario.

acf(GSPC_log_returns)

The ACF plot shows that our process is not expected to be a long-memory one. I then apply the fracdiff() function as anticipated.

frac_res <- fracdiff(GSPC_log_returns)
summary(frac_res)
## 
## Call:
##   fracdiff(x = GSPC_log_returns) 
## 
## Coefficients:
##    Estimate Std. Error z value Pr(>|z|)  
## d 4.583e-05  2.512e-05   1.825   0.0681 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## sigma[eps] = 0.005836041 
## [d.tol = 0.0001221, M = 100, h = 2.513e-05]
## Log likelihood:  2384 ==> AIC = -4763.747 [2 deg.freedom]
confint(frac_res)
##           2.5 %       97.5 %
## d -3.402011e-06 9.506227e-05

Both z statistics and confidence interval confirm that our process is not fractional ARMA, being the d=0 value comprised by the estimation confidence interval.

For sake of completeness, I carry the same analysis for the log returns without outliers whereby similar results as above are expected.

GSPC_log_returns_no_outliers <- GSPC_log_returns[-c(outliers_l, outliers_r)]
frac_res <- fracdiff(GSPC_log_returns_no_outliers)
fdGPH(GSPC_log_returns_no_outliers)
## $d
## [1] 0.04149285
## 
## $sd.as
## [1] 0.1570286
## 
## $sd.reg
## [1] 0.09774371
summary(frac_res)
## 
## Call:
##   fracdiff(x = GSPC_log_returns_no_outliers) 
## 
## Coefficients:
##    Estimate Std. Error z value Pr(>|z|)  
## d 4.583e-05  2.596e-05   1.765   0.0775 .
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## sigma[eps] = 0.004875791 
## [d.tol = 0.0001221, M = 100, h = 2.597e-05]
## Log likelihood:  2464 ==> AIC = -4923.571 [2 deg.freedom]
confint(frac_res)
##           2.5 %       97.5 %
## d -5.051385e-06 9.671164e-05

Conclusions

The analysis carried on by the fracdiff package has confirmed that our process is not a long memory one. Therefore, we do not need any feature oriented in simulating fractional differencing time-series in the prosecution of the analysis

No comments:

Post a Comment

Note: Only a member of this blog may post a comment.