<div dir="ltr"><span style="font-family:arial,sans-serif;font-size:13px">Hi all</span><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Sorry for the double post, I needed to add a heading..</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I need to transform standardized GARCH residuals to uniform variates by a marginal semi-parametric empirical CDF.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">For a set of 242 standardized residuals (sorted.ALBI.std.resids), I have cut off 10% at the upper tail and 10% at the lower tail (by theory and testing, these thresholds are valid).</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I have a set of 24 (positive) values for the lower tail (by multiplying by -1), a set of 24 values for the upper tail, and 194 values for the interior (kernel) of the distribution.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">These values correspond to a choice of threshold at quantile(neg.sorted.ALBI.resids,0.90)  for the lower tail #equals 1.213646</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">and</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">quantile(sorted.ALBI.std.resids,0.90) for the upper tail #equals  1.218522.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">I used the "evir", "ismev", and "fExtremes" packages to fit and double-check estimates and they are all extremely close.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Output:</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">For lower tail:</div><div style="font-family:arial,sans-serif;font-size:13px"><div>gpdfit.mle.ALBI = gpdFit(neg.tail.ALBI.resids,u=quantile(neg.sorted.ALBI.resids,0.90),type="mle")</div><div>summary(gpdfit.mle.ALBI)</div><div>#       xi (shape)           beta (scale)        LLH Value</div><div>#       0.1051834          0.7098641          18.30353</div><div>#SE: 0.2443332    SE: 0.2254843</div></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">For upper tail:</div><div style="font-family:arial,sans-serif;font-size:13px"><div>gpdfit.mle.ALBI = gpdFit(pos.tail.ALBI.resids,u=quantile(sorted.ALBI.std.resids,0.90),type="mle")</div><div>summary(gpdfit.mle.ALBI) # Maximum likelihood parameter estimation method</div><div>#        xi (shape)            beta (scale)       LLH Value</div><div>#       -0.1996078           0.4973661         2.447625</div><div>#SE:   0.2571947    SE: 0.1620495</div></div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">For interior:</div><div style="font-family:arial,sans-serif;font-size:13px">fit.interior.ALBI.std.resids = density(kernel.ALBI.std.resids,bw="nrd0",adjust=1,kernel="gaussian")</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">The question I'd like to ask is: how do I now combine the non-parametric interior with the estimated tails to get a CDF function? It is this semi-parametric CDF function that I need to use to transform the standardized residuals to uniform variates.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Thank you very much for the help (files are attached for reproducibility).</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">Best regards</div><div style="font-family:arial,sans-serif;font-size:13px">Gareth</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div><div style="font-family:arial,sans-serif;font-size:13px">P.S.  I would prefer to use the above framework, if possible. However, I did use the following, but got conflicting output for the threshold and tail estimates:</div><div style="font-family:arial,sans-serif;font-size:13px"><div>spd.fit.ALBI=spdfit(sorted.ALBI.std.resids, upper=0.9, lower=0.1, tailfit="GPD", type="mle", kernelfit="normal", information="observed")</div><div>show(spd.fit.ALBI)</div><div># Upper Tail: Threshold = 1.22226 (compared to 1.218522 using quantile function)</div><div># Estimated Parameters</div><div>#     xi           beta</div><div>#   -0.18608   0.48698 </div><div># Lower Tail: Threshold = -1.22126 (compared to -1.213646 using quantile function on sorted.ALBI.std.resids)</div><div># Estimated Parameters</div><div>#     xi           beta</div><div>#    0.06574   0.76526</div><div><br></div></div></div>