[R] Switching log(J) to log(J+1) to avoid log(0) in HAR-RVJ model
cursethiscure
caolan.harvey6 at mail.dcu.ie
Thu Jul 19 19:23:03 CEST 2012
I am working with xts dependent data, and my code is as follows (the problem
is explained throughout):
dat <- getdat("prices")
dat <- read.zoo(dat, sep = "",format="%d/%m/%Y %H:%M",
tz="", FUN=NULL, regular=TRUE,
header=TRUE, index.column=1, colClasses=c("character",
"numeric"))
dat <- as.xts(dat)
## cleaned data here to get
daylist <- lapply(split(dat, "days"), function(x) {
if(NROW(x) >= 10) x
})
do.call(rbind, daylist) -> dat
makeReturns(dat) -> dat
the code I am running to get the HAR regressions (full code for it shown
below) is
x = harModel(dat, periods = c(1,5,22), periodsJ=c(1), RVest =
c("RCov","RBPCov"),
type="HARRVJ", h=5, transform="log") ; # Estimate the HAR model
of type HARRVJ
The three HAR models on paper are:
1.〖RV〗_(t,t+h) = β_0+ β_D 〖RV〗_t+ β_W 〖RV〗_(t-5)+ β_M 〖RV〗_(t-22) + β_J J_t
+ ε_(t,t+h) # NULL model in code at bottom
2. (RV〗_(t,t+h) )^(1/2) = β_0+ β_D 〖〖RV〗_t〗^(1/2)+ β_W (〖RV〗_(t-5) )^(1/2)+
β_M (〖RV〗_(t-22) )^(1/2) + β_J (〖 J〗_t )^(1/2) + ε_(t,t+h)
3. log(RV〗_(t,t+h) )= β_0+ β_D.log(〖RV〗_t )+ β_W.log(〖RV〗_(t-5) )+
β_M.log(〖RV〗_(t-22) ) + β_J log(J_t + 1) + ε_(t,t+h)
Basically the harModel in the code allows you to transform the regressions
from NULL to "sqrt" or "log", but when `transform="log"` is chosen it gives
the following error message.
x = harModel(dat, periods = c(1,5,22), periodsJ=c(1), RVest =
c("RCov","RBPCov"),
+ type="HARRVJ", h=22, transform="log") ; # Estimate ....
[TRUNCATED]
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) :
NA/NaN/Inf in foreign function call (arg 1)
which is due to it taking the log(0), the actual log model should take
log(J + 1) in case of a 0 value for the J in the time series ( if J does not
occur it should return a 0, otherwise it should return J), but unfortunately
I do not know how to rectify this. I was wondering if any one could tell me
how how I can achieve this as I am very naive with R still. I have tried
some modifications you will see at the bottom of the question, but they do
not compute the regression correctly though they do allow it to run without
'error'
A sample of the xts returns are
structure(c(0, 0.00163990674377068, -0.000417175726423302,
-0.000536624643948436,
-0.000417573901733803, -0.000656540057603294, -0.000119417243992004,
0.000149269326922941, 0.000865322983560901, 0.000387660473923468,
-0.000626295482812012, -0.000477440925755523, 0.00080554938345756,
-0.000835397011320183, -2.98485187695263e-05, 5.96961466321488e-05,
-0.000388088668204389, -0.00062723079668725, -0.00230321804403655,
-0.00206843906653553, -0.0013212421596549, 0.0001802722115265,
0.000510594854085333, -6.00564530843783e-05, -0.000150156914257238,
0, 0.000180185591646342, 0.0012004082829149, 0.00179791490358649,
-2.99387752074054e-05, -0.000329385698655038, -0.00062912867756193,
-0.000899442406382178, -0.000360003603924852, 0.000270014852457479,
-0.000720201687594013, -0.000240182539883449, 0, 0.000330236121826033,
3.00160585933185e-05, -0.000600492421815702, -0.000360468613094689,
0.000360468613094689, 0.000300291284800913, 0.000840336183904888,
-0.0005401350468901, 9.00427703767193e-05, -9.00427703767193e-05,
0.000180077433783232, -0.000330166737199988, 6.00384246096652e-05,
-9.00589886985159e-05, -0.000180142312913745, 0, 0.00048030740596694,
0, 6.00222082356439e-05, -0.000240110451961151, -6.0036622357984e-05,
0, 0.000300147074319135, 0.000899901071618636, -0.000359863255847692,
-0.000600060024006588, -0.000330186558403334, -0.000240204174702718,
-3.00295791371141e-05, 0.00066044252047881, -0.000150062276126128,
-0.000150084798193006, -0.000660640845624449, 9.01130919910287e-05,
-0.000210276514390095, -0.000270420505531277, 0, -6.01033778275806e-05,
9.01537121400509e-05, -6.01015716741315e-05, -0.00024044241520027,
0, -0.000300634340718808, 0.00012026458222536, -0.000210472511563253,
6.01395237129765e-05, 0.000601196398905657, 3.00503343124703e-05,
-0.000210371306129886, 0.000210371306129886, 0.000390572193220251,
0.000390419706138623, -0.000720893939666567, 0.000390548725916595,
-3.00367950760716e-05, 0.000450457221689682, 0.00203953161487558,
0.000329533712782215, 0.000898176761678471, -0.000299302627118969,
-0.000928407847341717, 0.00281252055423931, 0.000388343718939588,
-0.000537746853695786, -0.000119538581219381, 0.000209183140602143,
-0.000268957790190427, -0.000837220477081679, -5.98282928176985e-05,
-0.000149586393900947, 0.000239327490896279, -0.00101753764690216,
-0.000269521600793077, -0.000119810699238165, 0.000568973019077212,
0.00104726150712509, 0.000239220143477326, -0.000358851678492478,
-0.000179474141249081, 0.000926936541319812, 0.000388459761947679,
-8.96311678042494e-05, 0.000328608346621628, -0.000238977178817379,
0.000597335899728435, 0.000298534199308698, -0.000179109824652635,
0.000298498554498927, -0.000149238139576013, -0.000179115171533795,
-8.95696180451822e-05, 0.000298534199308698, 0.000895068234116003,
-0.000238606538951025, 0.00101368483084663, 0.00148884879957478,
-0.00122069237338707, -0.000953771941992976, -0.000208758928930131,
-0.000328137820828189, -2.98360509027873e-05, -2.98369411186883e-05,
0.000149175803961121, 0.000298284864254761, 0.00190691911667429,
-5.95362129187649e-05, -0.000804085991177317, -0.000774916586227192,
-0.000805357159753939, 0.000268524459715813, -0.000119335302507295,
-0.000746168459756724, 0.000776003620496013, 8.95001417680064e-05,
0.000298275967134387, 0.000745300912464053, -0.000178821566357179,
0.000506578076002739, -0.000596000852043588, -0.00014905573221391,
0.00014905573221391, -0.00131245358138621, 0.000208914688955453,
0, 8.95215076015532e-05, 0.000507137221315901, -0.000805573417872907,
8.95402110767662e-05, -2.98458462069107e-05, 0.00044759418874829,
-0.000298373864662693, -0.000119374477878686, -0.000746413517867417,
-0.000717081509110429, 0.000179318589840882, 0.00107523680500599,
0.000954796432374394, 0, 0.00140070654262203, 0.00344868934980624,
0.00216421424210278, -0.0024313597934924, -0.000415701650976708,
0.000326637272216601, 0.000148436224648663, -0.00118810718820583,
-0.000178337891330038, -0.00121949420981693, -0.00148920355146753,
-0.000357739092772924, -0.00170101057144478, -0.000119477881799668,
-0.000926437912742273, 8.96928022120491e-05, -0.00137617445281446,
-0.00143803014685062, 0.000958916497919127, 0.000239585518201579,
-0.000269537744403081, -5.99071439442156e-05, 0.00107777987799551,
0.00104672906753311, 0.000239098599423393, 0.000567630159388877,
2.98663480950978e-05, -5.97335882144279e-05, 0.000537473885736439,
-0.00098558956682826, -0.000268965828018608, 0.000179318589840882,
-0.000867004553764872, -0.00164638655421889, -0.000329602831575571,
2.99683833571152e-05, -0.0005395683584144, 0.000239844102484454,
-0.000119914860593262, -0.000119929241891192, 0, -0.000509859799603163,
0.000779680370562197, 0.000838976497943733, 0.000329405426190199,
0.000149693876302592, -5.98748615567857e-05, 5.98748615567857e-05,
-0.00026946511338366, 2.99441541544709e-05, 0.000209583976575445,
-0.000239528130729916, 0.000389204082574146, -2.99333981912397e-05,
-0.000299383272698961, -0.0016782047152466, -0.00168102582136953,
0.00039049006999381, -0.000811188435474897, -0.00249778188514682,
-0.00419705614818344, -0.00102930500732068, -0.00269938442070483,
0.000941062255446212, -0.000394531195842873, 0.00106184497940287,
-0.00154763561319715, -0.00082030720545756, -0.000395202850604015,
-0.00155192119394343, -0.00185938815706432, -0.00119060353233724,
0.0014041516348593, 0.00195032821230523, 0, -0.000548145454981608,
0.000213203381604465, 0.000334942073377142, -0.000213131975169922,
-0.000487329444341711, 0.000395973261748672, -0.00048737397778531,
0.000365552750285936, -0.000274152034249298, 0.00012185462757941,
0.000182754104861793, -9.13728775477907e-05, -0.000213235854893412,
-9.14007160366381e-05, 0.000456920062171129, -0.000975015311855287,
-0.000670874906996133, 0.000823283728713875, -0.000518284793845858,
0.000853502459908562, 0.00240417651066149, 0.000638113636262538,
-0.000911715607903929, -9.12172948623891e-05, 0, -0.000212872718123869,
0.0017624362640376, 0.000607017136522003, -0.000212414086886881,
-0.000607146128362324, 0.000455394151501309, -0.000364298728983137,
-9.10954225181726e-05, -0.0015498931853104, -0.000882384320385121,
9.13172514147575e-05, 0.00112556099798411, -0.000304080766194481,
0.000942349559803546, -0.000212711002519406, -0.000607995154767949,
-0.000121643402516192, 0.000395286968279507, -0.000182420723500165,
-0.000243279407598607, 0.000760051720103405, 6.07791892246468e-05,
0.000151931813294759, 0.0007289515570017, -0.000121455031424134,
6.07293596281977e-05, 0.00015180726578734, -0.000455490951197568,
0.000455490951197568, 0.000455283573645104, 0.000182055406031445,
-0.000394495278760232, 0.000273128690832181, -9.1034608385776e-05,
0.000273078967030216, -3.03384251338912e-05, 0.00230310111196452,
-0.00151460104078538, -0.000303195684815627, 0.000303195684815627,
-0.000879520869494499, -0.000819560215249204, -0.000273336068396191,
0.00166922146832427, 0.000485068980255576, 0.00015153581577998,
-0.00015153581577998, -0.00103105297828865, -0.000667718854479027,
0, 0.00036426555361313, 0.000333793566952956, 0.000212356091624955,
-0.000121340816165549, -0.000485510554219637, 0.000788834992361487,
0.000303232460326264, 0.000394064783286296, -0.000181856757994758,
-0.00012125621452963, -0.000212233761124558, -0.000151623125849376,
9.09766342305218e-05, 0.000303195684815627, 0.000363713518997777,
0, -0.000424345302196372, -0.000181917409998178, -0.000394267955671879,
-0.000394423464206817, -6.06943433059115e-05, 0.000333773310336127,
3.03375047430166e-05, 0.000545917761950676, -3.03209472285459e-05,
-0.000333591111374432, 0.00024262275313891, 0.000636604796035556,
0, -3.0305326164104e-05, -9.09214893560772e-05, -0.000394088675051307,
-0.000151613930578165, -0.00033363158284061, -0.000546182802751538,
-0.000819833953642046, -0.000546929611640934, 0.00100247589542768,
-0.00021256244101675, -0.000425260478447598, -0.000182309866507246,
0.000911217145332266, 0.000424950681763292, 0.000182066454758711,
-0.00048558422805467, 0.000151770402027296, 0.000151747371268662,
-0.000516035041123963, 0.000576727542584088, 0.0005763951196327,
-0.000333661942884866, 0.000363989326999103, 0.00112146711761341,
-0.00100016677782389, -0.000576307703592072, -0.000637358323167803,
-9.10843593606714e-05, -0.000182193611580672, -0.000425247561235409,
0.00106278002867644, 0.000151733556166711, -0.000151733556166711,
-0.00170099062943851, -0.000243235027043376, 0.000456017154147226,
-0.000303988329188876, -0.000395323029674266, 0, 0.000395323029674266,
-0.000212846827105651, -0.00100403142229322, -0.00048716622465772,
-0.000456933980991003, -0.000457142865104565, -0.000609849081257607,
0.000152497140973651, 0.000365898284360178, -0.000182932406985081,
-0.000579506825423515, -3.05096639383606e-05, -0.000579860544530852,
-0.000152650781105379, -0.00103864374695384, 3.05637483402066e-05,
-9.1694047592128e-05, 0.000122256861818215, -0.00122324174274357,
-0.000183615387485681, 0.00082600387105547, 0.000672536097739318,
0.000580462859038455, -0.000855536595816275, 0.000183390898212288,
0.000488878034669682, 0.00155670559343069, -9.15038661020162e-05,
0.000945136429141513, -0.000975639578594034, 0.00121940081567118,
-0.000609514540554024, -0.00176969595219223, -0.000641525018564515,
0.000794208429808485, 9.1598858132258e-05, -0.000152669425190766,
-0.000274863715139517, -0.0018343580306448, -0.00140862345682802,
-0.00104243325603637, -0.00110493857348359, -0.000430028265626881,
-0.00236846667984647, -0.00077019058321337, 0.000616199914743376,
0, 0.0019692919992389, -0.00153817787049437, -0.00181809827748936,
-0.000308480120902566, -0.000586374524941036, -0.00346352821730278,
-0.000123919576354048, -0.00130208351729788, 0.00111617535539477,
0.00130063191876495, 0.00111348253130217, -0.00105158985318621,
-0.0012075987285991, -0.00167447091746542, 0.000279273270709091,
-0.00528838412863397, -0.0039064380818159, 0.00084508369792502,
-0.00206702234573086, -0.00790020318445617, -0.00148628377427684,
0.00183381864973953, 0.000442142503413123, 0.000410385926365997,
0.000883336545543401, 0.00245661677513453, 0.00059749368905937,
-0.000157200572533434, -0.00144740593533221, -0.000314930875275898,
0.00427458533704783, 0.000438995334885561, -0.00160012584145353,
0.00116113050656796, 0.00219305203970244, -6.25919319201529e-05,
0.0014073717314611, 0.000312480472513421, -0.00193895482312723,
0.000281694551072853, -0.000751361878688961, -0.00144169016101348,
-0.000972747460484591, 0.00304061171835102, 0.00112612624513542,
-0.00234752913104153, -0.00106603132939931, 0.000313656611315771,
-0.000690174453296777, -0.000345265936667616, -0.00147657148142066,
-0.000566073353062357, -0.00182619698108066, -0.000693568754158491,
-0.00142016339965778, -0.000315865949118255, -0.000189567470790131,
0.00170481493539931, -0.00151524746460918, -0.00186564268567313,
-3.16510785127733e-05, 0.00208682530596072, -0.000600306490279756,
-0.00243651730379746, 0.000570107385662766, -0.00148929792883745,
0.00190084010980396, 0.000348095761493639, -0.000696312735840365,
-0.000886918018228045, -9.50736028864085e-05, -0.000253573807183827,
9.5097712971004e-05, 0.00234288535220895, 0.000948256858993801,
0.000568522803601645, -0.000284220999529516, 3.15841005669171e-05,
0.000252636898962599, 6.31492532807698e-05, 0.000599719096932461,
0.000630894945376603, -0.000567787536545517, -0.000189334175384026,
0.000599435286827266, -0.000378548900419773, -0.00113650725706993,
0.000284247929272397, 0.00028416715534707, 0.0014826734999005,
-0.000283746080691039, -0.000346910137984935, -0.00221043414493405,
-0.000664084141727805, 0.00135931865336136, 0.00309109506785976,
0.000566714957551007, 0.00113246732666816, -0.00169918228421917,
-0.0018913727543568, 0.00185987917117103, 0.000692629817067747,
3.14717776861428e-05, -0.00119662440277057, -0.000661907262594852,
-9.45939555165864e-05, 0.00028375502673228, -3.152436045184e-05,
-0.00053606623278224, 0.000126159086775601, -0.000599397465775198,
-0.00116827976218747, 0.000694817322587582, -0.00129527558507814,
0.000632051343607998, 0.000410619251177913, -0.00120074587056163,
0.000853309787409273, -0.000347556836939766, 0.000157995355264617,
-0.00034762273802702, -0.000885403548861241, 9.49021717486787e-05,
9.48931661817198e-05, 0.000822030461415046, 0.000537116330191267,
-9.47642739399512e-05, 0.0012312356530062, 0.000220830639571012,
-0.000946760571871152, 0.000536607705305059, 0.000157771011481955,
-0.000504954880387487, -0.000410463671835615, -0.000789827068940596,
-9.4821183123095e-05, 0.000347633723971619, 0.000284337731953244,
-0.000600363395866665, -0.000221277403738895, -9.48481639682086e-05,
0.00126390310050706, 0.000473552123259502, 0.000977964334928139,
-0.00145151645818764, -0.000631751868886532, -6.31971435094414e-05,
-3.16000695228524e-05, -9.48062003969241e-05, -0.000126422250484204,
0.000379218813796989, -0.000126390293393008, -0.000347655697944482,
3.161005832375e-05, 0.000347644710609885, -0.000474090939519556,
-0.000442687754265592, -0.000980935131264182, -0.00167931472744165,
0.000190252719602491, 0.00091904489189254, -0.000506954796827941,
-0.000158476094212823, 0, 0.00136207436443314, -0.000569944920753684,
0.000221683848072196, -0.000982116063671157, -0.000856178010475439,
-0.000507710869571909, -0.000507968770843803, 0.000317510718653935,
-0.000381024961744636, 0.000634960971234833, 0.00126871369466652,
-6.33974704618012e-05, 0.000316947167561032, 0.000285166586745156,
-0.000507019055763891, 0.000570378366435698, 0.00284702204199405,
0.00192504990415454, 0.00251905165010857, -3.1449013290441e-05,
-0.00141623023246318, -0.00110290074044972, -0.000662324784118873,
0.00258373650997967, 0.00110078481339215, 0.00191561915787464,
6.27450980594801e-05, 0, -0.000156870127542952, 0.000188241200279826,
0.0012540365941005, -0.000125332915721366, -0.000407440495818534,
-3.13484537404207e-05, -0.00100366975147459, -0.000251074915796679,
-6.27785799691694e-05, -6.27825213666e-05, 0.00100404765110262,
6.27195183353635e-05, -0.00050186632589444, -0.000784670713978919,
-0.00320785254796618, 0.000157487755652497, 0.000472314507261373,
0.00458557919014169, 0.00215986185728578, -0.00140807633133733,
6.26232896214773e-05, -3.13111546015321e-05, 0.00125168211103599,
6.25429983314163e-05, -9.38159644183756e-05, -0.000344067190332531,
-0.000625880164383474, 0.000187805183974987, 0.000500641457310103,
0.000750492545935622, 0, -9.37807718841555e-05, -6.25254009642973e-05,
0, -9.37954322308698e-05, -0.000781970919251584, -0.00187922881663383,
0.000250767978243083, 0.00228535749463532, -0.000719480753645918,
-0.000281676918438833, -0.000751526573652406, 0.000970615477675629,
3.12944968658968e-05, 0.000594409440454413, 0.00137517211320315,
0, 0.000374718965163723, 0.000593018010793145, 0, 0, -6.2406390434866e-05,
-0.000593055031037792, -0.000499687705588059, -0.00112521109577646,
0.000156355051368351, -0.000938497222109369, 0.00146992160823878,
-0.000218787604993054, 0.000874863358410138, -0.00281478887292064,
-0.000940026389958604, 0.000814740581544626, -9.3974658236462e-05,
-0.000908877285788812, 0.00072090147145687, -0.00128544796744468,
0.000564546495987805, 0.00115945675211293, 0.00156470067911751,
0.00162469572700186, -0.000999500333083603, -0.00134465364163461,
-0.00134646416985618, -0.00178764689841771, 0.00210093992394444,
-0.00137922409174784, -0.000282348514056174, -0.00474910864131139,
-0.000977779257512523, 0.000599397465775198, 0.0012922138047875,
-9.4495629647362e-05, -0.000913918409735537, -0.00119881394886079,
-0.00430230646857499, -0.000570812471894833, 0.00110961412668953,
0.000411829001750519, 0.00313068482440571, -0.000284203049201182,
-0.00237150511929318, -6.33171874726557e-05, -0.00101362061259991,
0.00344844291936575, 0.00324772865833545, -0.00176444686270738,
-0.00107279220209033, 0.00160875703040642, -0.00224034929544903,
-0.000631991425952272, 0.000947837422071274, -0.000536997564827502,
-0.00110649205921121, 3.16310553731824e-05, 0.000632411088270501,
9.48271775405019e-05, 0.00202084059931273, -0.000757336735471625,
-0.000505209988642896, -0.00132739187025965, -0.000727652404095558,
3.16480734268154e-05, 0.000885739650467343, 3.16190536437944e-05,
0.000442561807817654, 0.000821381230232454, 0.000662931126796273,
-0.000315626679386227, 0.000252509312621996, -0.0010420121247865,
-0.000126378313649589, 0.000252740657839645, -0.000979726071129505,
-0.00104399003455491, 0.000664483388633563, -0.000537881077972813,
0.000126586284545205, -0.00094978795210654, -0.000221747050880516,
-0.000348559028831907, -0.00107813303188031, 6.34517766711085e-05,
-0.000761687173834069, -0.00034930060847671, 0.000444543239150441,
0.00142755199118572, -0.000412194625111439, 0.000190264785733696,
0.000158526339482989, 0.000443740102368473, -3.16891924034834e-05,
-0.000951143028492751, -0.000571120363273003, -0.00019044596153428,
0.000380855660310431, -0.000380855660310431, 0.000507775320335746,
-0.000158652092160594, 0.000285555645630708, 0.000634276312016624,
0.000126806999916518, 0.0013305035700526, -3.16580926034149e-05,
-0.00022163471523573, -0.000126670466950252, -0.00063359312770217,
9.50645647552761e-05, 0.000475187311936409, -3.16721301114598e-05,
6.33432571310877e-05, 6.33392450177794e-05, 0.00486511353245334,
-6.30318310959055e-05, -9.4555196666235e-05, 9.4555196666235e-05,
-0.000409803772777551, -6.30616427770292e-05, 0.000283746080691039,
0.00141752398088357, -0.00018888714049492, -0.00015743320928685,
0.000849845033129348, -0.000440570230872517, 0, 0.000755144457254886,
0.000880281746984402, 0.00018853102962435, -0.000314238132240519,
-0.000188590288159318, 0, 0.000471409050355476, -0.000502844223173149,
-0.00028296103186598, -0.000251588151525262, -0.00132187725791599,
-0.000945268999395843, 0.00119718989756645, 0.000346287642566168,
-0.000188869303004324, 0.00147852237639245, 0.000471409050355476,
-0.000408541669076001, 9.42936619647838e-05, -0.000157161043244258,
-0.000377287308757523, 0.00150829591188462, 0, -3.13996389067484e-05,
0.000502275948402797, 0.000533391914502523, 0.000877908126868832,
-0.000156712792786173, -0.000595732690420014, 0.000376293513376424,
-0.000125415438804843, -0.000658689232290399, 0.000501897811595597,
0.000376258117504413, 0.000219418541747451, 0, 0.000438692702802612,
0.000501127547445357, -0.000407147001349806, 0.000469770290971283,
-0.000187881635122622, 0.000939055379364007, 0, 0, 0, -6.25762648427397e-05,
-0.000125164278278689, -0.00050081383292877, -0.000751691340831862,
-0.000814970424068306, 0.000532940433009443, 0.000156693148129605,
0.000532573123911639, -0.000469902738781336, -0.000470123651177268,
0.000470123651177268, 0.000125328988758611, 0.000720337023584428,
-0.000720337023584428, -0.000376034098188427, -0.000282118397557873,
0, 0.0006581524957463, 0.000501158940515722, -0.000344519789805986,
0.000845427695839618, 0.000187775796251621, 0.000250312892420723,
0.00184412511043153, 6.24531601500777e-05, -0.000343540658291452,
0.000218630437350598, 0.000561973164961316, 0.000842368039827512,
0.000405331675983334, 6.2344139671211e-05, -0.00084197401091668,
-0.00024960998569501, 0, -9.36198100198737e-05, -0.000718043207100116,
0.000593203158249622, 0.000374473401161701, -0.000530545381875136,
-0.000874453522306418, -0.000812677817989993, 0.00050018758076753,
-0.000437650449325311, 0.000218849166901514, -0.000187582067703751,
0.000250101605079323, -0.000468991832504706, 0.000312685659656253,
0.00103116953125859, -0.000624824288502523, 0.00137409846423342,
-6.24180762960336e-05, 0.000156037886315907, 0.000312002748154683,
0.000405458095223743, -0.000748666472876636, -0.000249680098672656,
-0.000499547295660818, -0.000124925825454092, 0.000312285306391935,
-0.000156130462931614, 0.000874016786815979, -3.12017348189642e-05,
-6.2406390434866e-05, -0.000280876962133192, -0.000374625379007121,
-0.000218596300347151, 0, -0.000437336005971289, -0.000625097691865584,
0.000562605503369618, -0.000156247558949829, 3.12514649145612e-05,
-0.00056267585104397, -0.000125082085281392, 0.000375199329042175,
0.000656260277620113, -0.000249953135089243, 9.37397472835499e-05,
9.37309609678749e-05, -0.000249968755207775, 0.00128042989964605,
-9.36344200805905e-05, 6.24239208661947e-05, 0, 0.00134117263526345,
0.000342801941746629, -0.00134071264918845, 0.000249571051053721,
-0.000218371263209782, 0.000218371263209782, 0.000873008504921557,
0.00326701079331926, -0.000310684440315789, -0.000372948786023564,
-0.000684100900462781, 0.000684100900462781, -0.00037308792871471,
-0.00136918119472718, -0.00037373863646728, 0.000622820149679626,
-0.000373645539283096, -0.000685379633670102, -0.000311691552566273,
-0.000187061574980163, -0.00184130503766777, 0.00224656089994024,
0.000186985789625282, -0.000997661813070039, -0.000780116432928857,
-0.000687006241305355, -0.00165700120762935, -0.000845189513617228,
0.00015657048052109, 0.00100147099410108, -0.000250273738205742,
-0.00162830785938084, 0.000689223084926915, 0.00125191716141337,
-0.00103271848825326, 0.0039061939326297, 0.00180730449293787,
-0.00105905816028784, -0.000436408984482384, -0.000654970783648956,
-0.000156008674398578, -0.000124824465756568, -0.000999157044437204,
-0.00143803951254107, 0.00125058637527609, -0.000249992189045756,
0.000312480472513421, 0.000374847722503624, 0, 0.00084289398575077,
0.000187213330135272, -9.36022839637118e-05, 0.00140311514530822,
-0.0007480830721045, -0.000686234781601236, 6.24044432164794e-05,
-0.000749110466394143, -0.000937177913709064, 0.000250000001301487,
-0.000625117229833272, -3.12661215957633e-05, -0.00103233081290455
), class = c("xts", "zoo"), .indexCLASS = c("POSIXct", "POSIXt"
), tclass = c("POSIXct", "POSIXt"), .indexTZ = "", tzone = "", index =
structure(c(1323734400,
1323734700, 1323735000, 1323735300, 1323735600, 1323735900, 1323736200,
1323736500, 1323736800, 1323737100, 1323737400, 1323737700, 1323738000,
1323738300, 1323738600, 1323738900, 1323739200, 1323739500, 1323739800,
1323740100, 1323740400, 1323740700, 1323741000, 1323741300, 1323741600,
1323741900, 1323742200, 1323742500, 1323742800, 1323743100, 1323743400,
1323743700, 1323744000, 1323744300, 1323744600, 1323744900, 1323745200,
1323745500, 1323745800, 1323746100, 1323746400, 1323746700, 1323747000,
1323747300, 1323747600, 1323747900, 1323748200, 1323748500, 1323748800,
1323749100, 1323749400, 1323749700, 1323750000, 1323750300, 1323750600,
1323750900, 1323751200, 1323751500, 1323751800, 1323752100, 1323752400,
1323752700, 1323753000, 1323753300, 1323753600, 1323753900, 1323754200,
1323754500, 1323754800, 1323755100, 1323755400, 1323755700, 1323756000,
1323756300, 1323756600, 1323756900, 1323757200, 1323757500, 1323757800,
1323758100, 1323758400, 1323758700, 1323759000, 1323759300, 1323759600,
1323759900, 1323760200, 1323760500, 1323760800, 1323761100, 1323761400,
1323761700, 1323762000, 1323762300, 1323762600, 1323762900, 1323763200,
1323763500, 1323763800, 1323764100, 1323764400, 1323764700, 1323765000,
1323765300, 1323765600, 1323765900, 1323766200, 1323766500, 1323766800,
1323767100, 1323767400, 1323767700, 1323768000, 1323768300, 1323768600,
1323768900, 1323769200, 1323769500, 1323769800, 1323770100, 1323770400,
1323770700, 1323771000, 1323771300, 1323771600, 1323771900, 1323772200,
1323772500, 1323772800, 1323773100, 1323773400, 1323773700, 1323774000,
1323774300, 1323774600, 1323774900, 1323775200, 1323775500, 1323775800,
1323776100, 1323776400, 1323776700, 1323777000, 1323777300, 1323777600,
1323777900, 1323778200, 1323778500, 1323778800, 1323779100, 1323779400,
1323779700, 1323780000, 1323780300, 1323780600, 1323780900, 1323781200,
1323781500, 1323781800, 1323782100, 1323782400, 1323782700, 1323783000,
1323783300, 1323783600, 1323783900, 1323784200, 1323784500, 1323784800,
1323785100, 1323785400, 1323785700, 1323786000, 1323786300, 1323786600,
1323786900, 1323787200, 1323787500, 1323787800, 1323788100, 1323788400,
1323788700, 1323789000, 1323789300, 1323789600, 1323789900, 1323790200,
1323790500, 1323790800, 1323791100, 1323791400, 1323791700, 1323792000,
1323792300, 1323792600, 1323792900, 1323793200, 1323793500, 1323793800,
1323794100, 1323794400, 1323794700, 1323795000, 1323795300, 1323795600,
1323795900, 1323796200, 1323796500, 1323796800, 1323797100, 1323797400,
1323797700, 1323798000, 1323798300, 1323798600, 1323798900, 1323799200,
1323799500, 1323799800, 1323800100, 1323800400, 1323800700, 1323801000,
1323801300, 1323801600, 1323801900, 1323802200, 1323802500, 1323802800,
1323803100, 1323803400, 1323803700, 1323804000, 1323804300, 1323804600,
1323804900, 1323805200, 1323805500, 1323805800, 1323806100, 1323806400,
1323806700, 1323807000, 1323807300, 1323807600, 1323807900, 1323808200,
1323808500, 1323808800, 1323809100, 1323809400, 1323809700, 1323810000,
1323810300, 1323810600, 1323810900, 1323811200, 1323811500, 1323811800,
1323812100, 1323812400, 1323812700, 1323813000, 1323813300, 1323813600,
1323820800, 1323821100, 1323821400, 1323821700, 1323822000, 1323822300,
1323822600, 1323822900, 1323823200, 1323823500, 1323823800, 1323824100,
1323824400, 1323824700, 1323825000, 1323825300, 1323825600, 1323825900,
1323826200, 1323826500, 1323826800, 1323827100, 1323827400, 1323827700,
1323828000, 1323828300, 1323828600, 1323828900, 1323829200, 1323829500,
1323829800, 1323830100, 1323830400, 1323830700, 1323831000, 1323831300,
1323831600, 1323831900, 1323832200, 1323832500, 1323832800, 1323833100,
1323833400, 1323833700, 1323834000, 1323834300, 1323834600, 1323834900,
1323835200, 1323835500, 1323835800, 1323836100, 1323836400, 1323836700,
1323837000, 1323837300, 1323837600, 1323837900, 1323838200, 1323838500,
1323838800, 1323839100, 1323839400, 1323839700, 1323840000, 1323840300,
1323840600, 1323840900, 1323841200, 1323841500, 1323841800, 1323842100,
1323842400, 1323842700, 1323843000, 1323843300, 1323843600, 1323843900,
1323844200, 1323844500, 1323844800, 1323845100, 1323845400, 1323845700,
1323846000, 1323846300, 1323846600, 1323846900, 1323847200, 1323847500,
1323847800, 1323848100, 1323848400, 1323848700, 1323849000, 1323849300,
1323849600, 1323849900, 1323850200, 1323850500, 1323850800, 1323851100,
1323851400, 1323851700, 1323852000, 1323852300, 1323852600, 1323852900,
1323853200, 1323853500, 1323853800, 1323854100, 1323854400, 1323854700,
1323855000, 1323855300, 1323855600, 1323855900, 1323856200, 1323856500,
1323856800, 1323857100, 1323857400, 1323857700, 1323858000, 1323858300,
1323858600, 1323858900, 1323859200, 1323859500, 1323859800, 1323860100,
1323860400, 1323860700, 1323861000, 1323861300, 1323861600, 1323861900,
1323862200, 1323862500, 1323862800, 1323863100, 1323863400, 1323863700,
1323864000, 1323864300, 1323864600, 1323864900, 1323865200, 1323865500,
1323865800, 1323866100, 1323866400, 1323866700, 1323867000, 1323867300,
1323867600, 1323867900, 1323868200, 1323868500, 1323868800, 1323869100,
1323869400, 1323869700, 1323870000, 1323870300, 1323870600, 1323870900,
1323871200, 1323871500, 1323871800, 1323872100, 1323872400, 1323872700,
1323873000, 1323873300, 1323873600, 1323873900, 1323874200, 1323874500,
1323874800, 1323875100, 1323875400, 1323875700, 1323876000, 1323876300,
1323876600, 1323876900, 1323877200, 1323877500, 1323877800, 1323878100,
1323878400, 1323878700, 1323879000, 1323879300, 1323879600, 1323879900,
1323880200, 1323880500, 1323880800, 1323881100, 1323881400, 1323881700,
1323882000, 1323882300, 1323882600, 1323882900, 1323883200, 1323883500,
1323883800, 1323884100, 1323884400, 1323884700, 1323885000, 1323885300,
1323885600, 1323885900, 1323886200, 1323886500, 1323886800, 1323887100,
1323887400, 1323887700, 1323888000, 1323888300, 1323888600, 1323888900,
1323889200, 1323889500, 1323889800, 1323890100, 1323890400, 1323890700,
1323891000, 1323891300, 1323891600, 1323891900, 1323892200, 1323892500,
1323892800, 1323893100, 1323893400, 1323893700, 1323894000, 1323894300,
1323894600, 1323894900, 1323895200, 1323895500, 1323895800, 1323896100,
1323896400, 1323896700, 1323897000, 1323897300, 1323897600, 1323897900,
1323898200, 1323898500, 1323898800, 1323899100, 1323899400, 1323899700,
1323900000, 1323907200, 1323907500, 1323907800, 1323908100, 1323908400,
1323908700, 1323909000, 1323909300, 1323909600, 1323909900, 1323910200,
1323910500, 1323910800, 1323911100, 1323911400, 1323911700, 1323912000,
1323912300, 1323912600, 1323912900, 1323913200, 1323913500, 1323913800,
1323914100, 1323914400, 1323914700, 1323915000, 1323915300, 1323915600,
1323915900, 1323916200, 1323916500, 1323916800, 1323917100, 1323917400,
1323917700, 1323918000, 1323918300, 1323918600, 1323918900, 1323919200,
1323919500, 1323919800, 1323920100, 1323920400, 1323920700, 1323921000,
1323921300, 1323921600, 1323921900, 1323922200, 1323922500, 1323922800,
1323923100, 1323923400, 1323923700, 1323924000, 1323924300, 1323924600,
1323924900, 1323925200, 1323925500, 1323925800, 1323926100, 1323926400,
1323926700, 1323927000, 1323927300, 1323927600, 1323927900, 1323928200,
1323928500, 1323928800, 1323929100, 1323929400, 1323929700, 1323930000,
1323930300, 1323930600, 1323930900, 1323931200, 1323931500, 1323931800,
1323932100, 1323932400, 1323932700, 1323933000, 1323933300, 1323933600,
1323933900, 1323934200, 1323934500, 1323934800, 1323935100, 1323935400,
1323935700, 1323936000, 1323936300, 1323936600, 1323936900, 1323937200,
1323937500, 1323937800, 1323938100, 1323938400, 1323938700, 1323939000,
1323939300, 1323939600, 1323939900, 1323940200, 1323940500, 1323940800,
1323941100, 1323941400, 1323941700, 1323942000, 1323942300, 1323942600,
1323942900, 1323943200, 1323943500, 1323943800, 1323944100, 1323944400,
1323944700, 1323945000, 1323945300, 1323945600, 1323945900, 1323946200,
1323946500, 1323946800, 1323947100, 1323947400, 1323947700, 1323948000,
1323948300, 1323948600, 1323948900, 1323949200, 1323949500, 1323949800,
1323950100, 1323950400, 1323950700, 1323951000, 1323951300, 1323951600,
1323951900, 1323952200, 1323952500, 1323952800, 1323953100, 1323953400,
1323953700, 1323954000, 1323954300, 1323954600, 1323954900, 1323955200,
1323955500, 1323955800, 1323956100, 1323956400, 1323956700, 1323957000,
1323957300, 1323957600, 1323957900, 1323958200, 1323958500, 1323958800,
1323959100, 1323959400, 1323959700, 1323960000, 1323960300, 1323960600,
1323960900, 1323961200, 1323961500, 1323961800, 1323962100, 1323962400,
1323962700, 1323963000, 1323963300, 1323963600, 1323963900, 1323964200,
1323964500, 1323964800, 1323965100, 1323965400, 1323965700, 1323966000,
1323966300, 1323966600, 1323966900, 1323967200, 1323967500, 1323967800,
1323968100, 1323968400, 1323968700, 1323969000, 1323969300, 1323969600,
1323969900, 1323970200, 1323970500, 1323970800, 1323971100, 1323971400,
1323971700, 1323972000, 1323972300, 1323972600, 1323972900, 1323973200,
1323973500, 1323973800, 1323974100, 1323974400, 1323974700, 1323975000,
1323975300, 1323975600, 1323975900, 1323976200, 1323976500, 1323976800,
1323977100, 1323977400, 1323977700, 1323978000, 1323978300, 1323978600,
1323978900, 1323979200, 1323979500, 1323979800, 1323980100, 1323980400,
1323980700, 1323981000, 1323981300, 1323981600, 1323981900, 1323982200,
1323982500, 1323982800, 1323983100, 1323983400, 1323983700, 1323984000,
1323984300, 1323984600, 1323984900, 1323985200, 1323985500, 1323985800,
1323986100, 1323986400, 1323993600, 1323993900, 1323994200, 1323994500,
1323994800, 1323995100, 1323995400, 1323995700, 1323996000, 1323996300,
1323996600, 1323996900, 1323997200, 1323997500, 1323997800, 1323998100,
1323998400, 1323998700, 1323999000, 1323999300, 1323999600, 1323999900,
1324000200, 1324000500, 1324000800, 1324001100, 1324001400, 1324001700,
1324002000, 1324002300, 1324002600, 1324002900, 1324003200, 1324003500,
1324003800, 1324004100, 1324004400, 1324004700, 1324005000, 1324005300,
1324005600, 1324005900, 1324006200, 1324006500, 1324006800, 1324007100,
1324007400, 1324007700, 1324008000, 1324008300, 1324008600, 1324008900,
1324009200, 1324009500, 1324009800, 1324010100, 1324010400, 1324010700,
1324011000, 1324011300, 1324011600, 1324011900, 1324012200, 1324012500,
1324012800, 1324013100, 1324013400, 1324013700, 1324014000, 1324014300,
1324014600, 1324014900, 1324015200, 1324015500, 1324015800, 1324016100,
1324016400, 1324016700, 1324017000, 1324017300, 1324017600, 1324017900,
1324018200, 1324018500, 1324018800, 1324019100, 1324019400, 1324019700,
1324020000, 1324020300, 1324020600, 1324020900, 1324021200, 1324021500,
1324021800, 1324022100, 1324022400, 1324022700, 1324023000, 1324023300,
1324023600, 1324023900, 1324024200, 1324024500, 1324024800, 1324025100,
1324025400, 1324025700, 1324026000, 1324026300, 1324026600, 1324026900,
1324027200, 1324027500, 1324027800, 1324028100, 1324028400, 1324028700,
1324029000, 1324029300, 1324029600, 1324029900, 1324030200, 1324030500,
1324030800, 1324031100, 1324031400, 1324031700, 1324032000, 1324032300,
1324032600, 1324032900, 1324033200, 1324033500, 1324033800, 1324034100,
1324034400, 1324034700, 1324035000, 1324035300, 1324035600, 1324035900,
1324036200, 1324036500, 1324036800, 1324037100, 1324037400, 1324037700,
1324038000, 1324038300, 1324038600, 1324038900, 1324039200, 1324039500,
1324039800, 1324040100, 1324040400, 1324040700, 1324041000, 1324041300,
1324041600, 1324041900, 1324042200, 1324042500, 1324042800, 1324043100,
1324043400, 1324043700, 1324044000, 1324044300, 1324044600, 1324044900,
1324045200, 1324045500, 1324045800, 1324046100, 1324046400, 1324046700,
1324047000, 1324047300, 1324047600, 1324047900, 1324048200, 1324048500,
1324048800, 1324049100, 1324049400, 1324049700, 1324050000, 1324050300,
1324050600, 1324050900, 1324051200, 1324051500, 1324051800, 1324052100,
1324052400, 1324052700, 1324053000, 1324053300, 1324053600, 1324053900,
1324054200, 1324054500, 1324054800), tzone = "", tclass = c("POSIXct",
"POSIXt")), .Dim = c(1000L, 1L))
The full code is just below this code and what I have tried to do within it
is change the following two lines when running transform="log" but this
gives unrealistic regression output such as values over 3:
if( type == "HARRVJ" ){
J = J[(maxp:(n-h)),];
*x = cbind(x1,J);* # bind jumps to RV data
if(!is.null(transform)){ y = Ftransform(y); x = Ftransform(x); }
x = cbind(x,rmin);
model = estimhar(y=y,x=x);
model$transform = transform; model$h = h; model$type = "HARRVJ";
model$dates = alldates[(maxp+h):n];
class(model) = c("harModel","lm");
return( model )
}#End HAR-RV-J if cond
to
if( type == "HARRVJ" ){
J = J[(maxp:(n-h)),];
*x = cbind(x1,J+1); * # bind jumps to RV data
if(!is.null(transform)){ y = Ftransform(y); x = Ftransform(x); }
x = cbind(x,rmin);
model = estimhar(y=y,x=x);
model$transform = transform; model$h = h; model$type = "HARRVJ";
model$dates = alldates[(maxp+h):n];
class(model) = c("harModel","lm");
return( model )
}#End HAR-RV-J if cond
and this
if( type == "HARRVCJ" ){
# Are the jumps significant? if not set to zero:
if( jumptest=="ABDJumptest" ){
TQ = apply.daily(data, TQfun);
J = J[,1];
teststats = ABDJumptest(RV=RM1,BPV=RM2,TQ=TQ );
}else{ jtest = match.fun(jumptest); teststats = jtest(data,...) }
Jindicators = teststats > qnorm(1-alpha);
*J[!Jindicators] = 0;*
to
if( type == "HARRVCJ" ){
# Are the jumps significant? if not set to zero:
if( jumptest=="ABDJumptest" ){
TQ = apply.daily(data, TQfun);
J = J[,1];
teststats = ABDJumptest(RV=RM1,BPV=RM2,TQ=TQ );
}else{ jtest = match.fun(jumptest); teststats = jtest(data,...) }
Jindicators = teststats > qnorm(1-alpha);
* J[!Jindicators] = 1;*
the full code is (which I take no credit for):
# START implementation of paper:
# ROUGHING IT UP: INCLUDING JUMP COMPONENTS IN THE MEASUREMENT, MODELING,
AND FORECASTING OF RETURN VOLATILITY
# Torben G. Andersen, Tim Bollerslev, and Francis X. Diebold
# data: a xts object with the intraday data
# periods: a vector with time periods to aggregate over, expressed in days
# RVest: estimator for daily realized volatility,
# in case a vector is supplied, the first estimator is the unrobust
estimator, the second is the robust estimator
# type: string defining the type of model
# "HARRV" from "roughing paper"
# "HARRVJ" from "roughing paper"
# "HARRVCJ" from "roughing paper"
# jumptest: function to calculate the jump test statistic which determines
whether the daily jump contribution is significant
# alpha: a value between zero and one to indicate what
# h: integer, determining over how many periods the depend variable should
be aggregated. The default is 1, i.e. no aggregation is done, just one day.
# TODO ADD extra argument: jump-periods??? for aggregated jumps in the
model...
# Helpfunctions:
TQfun = function(rdata){ #Calculate the realized tripower quarticity
returns = as.vector(as.numeric(rdata));
n = length(returns);
mu43 = 0.8308609; # 2^(2/3)*gamma(7/6) *gamma(1/2)^(-1)
tq = n * ((mu43)^(-3)) * sum( abs(returns[1:(n - 2)])^(4/3)
*abs(returns[2:(n-1)])^(4/3) *abs(returns[3:n])^(4/3) );
return(tq);
}
ABDJumptest = function(RV, BPV, TQ){ # Comput jump detection stat mentioned
in roughing paper
mu1 = sqrt(2/pi);
n = length(RV);
zstat = ((1/n)^(-1/2))*((RV-BPV)/RV)*( (mu1^(-4) + 2*(mu1^(-2))-5) *
pmax( 1,TQ*(BPV^(-2)) ) )^(-1/2);
return(zstat);
}
harModel = function(data, periods = c(1,5,22), periodsJ = c(1,5,22),
leverage=NULL, RVest = c("RCov","RBPCov"), type="HARRV",
jumptest="ABDJumptest",alpha=0.001,h=1,transform=NULL,
...){
nperiods = length(periods); # Number of periods to aggregate over
nest = length(RVest); # Number of RV estimators
if( !is.null(transform) ){ Ftransform = match.fun(transform); }
if( !(type %in% c("HARRV","HARRVJ","HARRVCJ"))){ warning("Please provide a
valid argument for type, see documentation.") }
if( sum(data<0) != 0 ){ #If it are returns as input
# Get the daily RMs (in a non-robust and robust way)
RV1 = match.fun( RVest[1]);
RM1 = apply.daily( data, RV1 );
# save dates:
alldates = index(RM1)
if( nest == 2 ){
RV2 = match.fun( RVest[2]);
RM2 = apply.daily( data, RV2 ); }
}
if( sum(data<0) == 0 ){ #The input is most likely already realized
measures
dimdata = dim(data)[2];
alldates = index(data);
RM1 = data[,1];
if( dimdata > 1 ){ RM2 = data[,2]; }
if( type != "HARRV" ){ warning("Please provide returns as input for the
type of model you want to estimate. All your returns are positive which is
quite unlikely honestly. Only for the HAR-RV model you can input realized
measures.") }
}
# Get the matrix for estimation of linear model
maxp = max(periods,periodsJ); #max number of aggregation levels
if(!is.null(leverage)){ maxp = max(maxp,leverage) }
n = length(RM1); #Number of Days
# Aggregate RV:
RVmatrix1 = aggRV(RM1,periods);
if( nest==2 ){ RVmatrix2 = aggRV(RM2,periods); } # In case a jumprobust
estimator is supplied
# Aggregate and subselect y:
y = aggY(RM1,h,maxp);
# Only keep useful parts:
x1 = RVmatrix1[(maxp:(n-h)),];
if( nest==2 ){ x2 = RVmatrix2[(maxp:(n-h)),]; } # In case a jumprobust
estimator is supplied
# Jumps:
if(type!="HARRV"){ # If model type is as such that you need jump component
J = pmax( RM1 - RM2,0 ); # Jump contributions should be positive
J = aggJ(J,periodsJ);
}
if( !is.null(leverage) ){
if( sum(data<0) == 0 ){ warning("You cannot use leverage variables in
the model in case your input consists of Realized Measures") }
# Get close-to-close returns
e = apply.daily(data,sum); #Sum logreturns daily
# Get the rmins:
rmintemp = pmin(e,0);
# Aggregate everything:
rmin = aggRV(rmintemp,periods=leverage,type="Rmin");
# Select:
rmin = rmin[(maxp:(n-h)),];
}else{ rmin = matrix(ncol=0,nrow=dim(x1)[1]) }
###############################
# Estimate the model parameters, according to type of model :
# First model type: traditional HAR-RV:
if( type == "HARRV" ){
if(!is.null(transform)){ y = Ftransform(y); x1 = Ftransform(x1) }
x1 = cbind(x1,rmin);
model = estimhar(y=y,x=x1);
model$transform = transform; model$h = h; model$type = "HARRV";
model$dates = alldates[(maxp+h):n];
class(model) = c("harModel","lm");
return( model )
} #End HAR-RV if cond
if( type == "HARRVJ" ){
J = J[(maxp:(n-h)),];
x = cbind(x1,J); # bind jumps to RV data
if(!is.null(transform)){ y = Ftransform(y); x = Ftransform(x); }
x = cbind(x,rmin);
model = estimhar(y=y,x=x);
model$transform = transform; model$h = h; model$type = "HARRVJ";
model$dates = alldates[(maxp+h):n];
class(model) = c("harModel","lm");
return( model )
}#End HAR-RV-J if cond
if( type == "HARRVCJ" ){
# Are the jumps significant? if not set to zero:
if( jumptest=="ABDJumptest" ){
TQ = apply.daily(data, TQfun);
J = J[,1];
teststats = ABDJumptest(RV=RM1,BPV=RM2,TQ=TQ );
}else{ jtest = match.fun(jumptest); teststats = jtest(data,...) }
Jindicators = teststats > qnorm(1-alpha);
J[!Jindicators] = 0;
# Get continuus components if necessary RV measures if necessary:
Cmatrix = matrix( nrow = dim(RVmatrix1)[1], ncol = 1 );
Cmatrix[Jindicators,] = RVmatrix2[Jindicators,1]; #Fill with
robust one in case of jump
Cmatrix[(!Jindicators)] = RVmatrix1[(!Jindicators),1]; #Fill with
non-robust one in case of no-jump
# Aggregate again:
Cmatrix <- aggRV(Cmatrix,periods,type="C");
Jmatrix <- aggJ(J,periodsJ);
# subset again:
Cmatrix <- Cmatrix[(maxp:(n-h)),];
Jmatrix <- Jmatrix[(maxp:(n-h)),];
x = cbind(Cmatrix,Jmatrix); # bind jumps to RV data
if(!is.null(transform)){ y = Ftransform(y); x = Ftransform(x); }
x = cbind(x,rmin);
model = estimhar( y=y, x=x );
model$transform = transform; model$h = h; model$type = "HARRVCJ";
model$dates = alldates[(maxp+h):n];
class(model) = c("harModel","lm");
return(model)
}
} #End function harModel
#################################################################
estimhar = function(y, x){ #Potentially add stuff here
colnames(y)="y";
output = lm( formula(y~x), data=cbind(y,x));
}
# Help function to get nicely formatted formula's for print/summary
methods..
getHarmodelformula = function(x){
modelnames = colnames(x$model$x);
if(!is.null(x$transform)){
modelnames = paste(x$transform,"(",modelnames,")",sep=""); } #Added
visual tingie for plotting transformed RV
betas = paste("beta",(1:length(modelnames)),"",sep="")
betas2 = paste(" + ",betas,"*")
rightside = paste(betas2, modelnames,collapse="");
h = x$h;
left = paste("RV",h,sep="");
if(!is.null(x$transform)){ left = paste(x$transform,"(",left,")",sep="" )
}
modeldescription = paste(left,"= beta0",rightside);
return(list(modeldescription,betas))
}
aggRV <- function(RM1,periods,type="RV"){
n = length(RM1);
nperiods = length(periods);
RVmatrix1 = matrix(nrow=n,ncol=nperiods);
for(i in 1:nperiods){
if(periods[i]==1){ RVmatrix1[,i] = RM1;
}else{ RVmatrix1[(periods[i]:n),i] =
rollmean(x=RM1,k=periods[i],align="left") }
} #end loop over periods for standard RV estimator
colnames(RVmatrix1) = paste(type,periods,sep="");
return(RVmatrix1);
}
aggJ <- function( J, periodsJ ){
n = length(J);
nperiods = length(periodsJ);
JM = matrix(nrow=n,ncol=nperiods);
for(i in 1:nperiods){
if(periodsJ[i]==1){ JM[,i] = J;
}else{ JM[(periodsJ[i]:n),i] = rollmean( x=J, k=periodsJ[i],
align="left") }
} # End loop over periods for standard RV estimator
colnames(JM) = paste("J",periodsJ,sep="");
return(JM)
}
aggY = function(RM1,h,maxp){
n = length(RM1);
if( h == 1 ){ y = RM1[(maxp+1):n]; }
if( h != 1 ){
y = matrix( nrow=length(RM1), ncol=1 ); colnames(y) = "y";
y[(h:n),] = rollmean(x=RM1,k=h,align="left");
y = matrix(y[((maxp+h):n),],ncol=1); y=as.data.frame(y) }
return(y);
}
#########################################################################
# Print method for harmodel:
print.harModel = function(x, digits = max(3, getOption("digits") - 3), ...){
formula = getHarmodelformula(x); modeldescription = formula[[1]]; betas =
formula[[2]];
cat("\nModel:\n", paste(modeldescription, sep = "\n", collapse = "\n"),
"\n\n", sep = "")
coefs = coef(x);
names(coefs) = c("beta0",betas)
if (length(coef(x))){
cat("Coefficients:\n")
print.default(format(coefs, digits = digits), print.gap = 2,quote =
FALSE);
cat("\n\n");
Rs = summary(x)[c("r.squared", "adj.r.squared")]
zz = c(Rs$r.squared,Rs$adj.r.squared);
names(zz) = c("r.squared","adj.r.squared")
print.default((format(zz,digits=digits) ),print.gap = 2,quote=FALSE)
}
else cat("No coefficients\n")
cat("\n")
invisible(x)
}
summary.harModel = function(object, correlation = FALSE, symbolic.cor =
FALSE,...){
x=object;
dd = summary.lm(x);
formula = getHarmodelformula(x); modeldescription = formula[[1]]; betas =
formula[[2]];
dd$call = modeldescription;
rownames(dd$coefficients) = c("beta0",betas);
return(dd)
}
plot.harModel = function(x, which = c(1L:3L, 5L), caption = list("Residuals
vs Fitted",
"Normal
Q-Q", "Scale-Location", "Cook's distance", "Residuals vs Leverage",
expression("Cook's dist vs Leverage " * h[ii]/(1 - h[ii]))),
panel = if (add.smooth) panel.smooth else points,
sub.caption = NULL,
main = "", ask = prod(par("mfcol")) < length(which)
&& dev.interactive(),
..., id.n = 3, labels.id = names(residuals(x)),
cex.id = 0.75,
qqline = TRUE, cook.levels = c(0.5, 1), add.smooth
= getOption("add.smooth"),
label.pos = c(4, 2), cex.caption = 1){
observed = x$model$y;
fitted = x$fitted.values;
dates = x$dates;
dates = as.POSIXct(dates);
observed = xts(observed, order.by=dates);
fitted = xts(fitted, order.by=dates);
type = x$type;
g_range = range(fitted,observed)
g_range[1] = 0.95*g_range[1]; g_range[2]= 1.05 * g_range[2];
#ind = seq(1,length(fitted),length.out=5);
title = paste("Observed and forecasted RV based on HAR Model:",type);
plot.zoo(observed,col="red",lwd=2,main=title,
ylim=g_range,xlab="Time",ylab="Realized Volatility");
# axis(1,time(b)[ind], format(time(b)[ind],), las=2, cex.axis=0.8); not
used anymore
# axis(2);
lines(fitted,col="blue",lwd=2);
legend("topleft", c("Observed RV","Forecasted RV"), cex=1.1,
col=c("red","blue"),lty=1, lwd=2, bty="n");
}
If anyone could help me with as to how J should be modified when the model
is in log form it would be hugely appreciated, Thanks in advance.
--
View this message in context: http://r.789695.n4.nabble.com/Switching-log-J-to-log-J-1-to-avoid-log-0-in-HAR-RVJ-model-tp4637088.html
Sent from the R help mailing list archive at Nabble.com.
More information about the R-help
mailing list