Dear friends and colleagues,
First of all, I would like to say that I'm new to this forum, so apologies for the foreseeable mistakes I'll do writing this post.
I'm a last year economics student doing his bachelor thesis on a very interesting topic "Finding causal relations between the Spanish Stock Market Index and different Macroeconomic Variables". I'm using a similar approach to Hasan and Nasir (2008) where they used an ARDL of co-integration with monthly data to find causal relations between CPI, Interest rate, M1, Total Production Index, Exchange rate, oil prices and Foreign Portfolio Investment.
I'm doing a similar methodology, but changing my country of interest to Spain, and I'm using almost all the data from the FRED. Also, I'm using monthly data from 2002 M1 to 2019 M1.
The problem I've found is that after performing all tests, and finding that my methodology seems correct (no unit roots, no OVB, homoscedasticity, no structural break, evidence of L-R relationships...), my results are not significant. That is, that when I perform my ARDL, I don't find statistically significant results, and as you may think, this would make my thesis and all my work useless.
Would love to hear any new ideas or any opinion on how I could approach this.
I've added unemployment and economic uncertainty to see if, with some new variables, my model could change, but it didn't.
Attached you will find my methodology.
Thanks, and hoping to received feedback soon.
Code:
tsset date
gen returns= log(equity/equity[_n-1])
label variable returns "Returns of the Bolsa the Madrid Index "
gen lnTPI= log(tpi/tpi[_n-1])
label variable lnTPI "Log of Total Production Index "
gen lnOil= log(oil/oil[_n-1])
label variable lnOil "Log of Oil prices "
gen lnM1= log(M1/M1[_n-1])
label variable lnM1 "Log of Money Supply (M1)"
gen lnR= log(interest/interest[_n-1])
label variable lnR "Log of interest rate"
gen lnXrate= log(exc/exc[_n-1])
label variable lnXrate "Log of Foreign Exchange Rate"
gen lnCPI= log(CPI/CPI[_n-1])
label variable lnCPI "Log of Inflation "
gen lnU= log(unem/unem[_n-1])
label variable lnU "First Difference in Unemployment "
gen lnEC= log(econ/econ[_n-1])
label variable lnEC "First Difference in Economic Policy Uncertainty "
gen lnS= log(shares)
label variable lnS "First Difference in Growth Returns -Spain "
*Generating the monthly data:
generate datem = mofd(date)
format datem %tm
************************************************** ****************************************
* 2. UNIT ROOT ANALYSIS
************************************************** ****************************************
*2. Analysing non-stationarity
* A. Returns
dfuller return , trend
dfuller price , trend
pperron price , trend
pperron return , trend
* Our p-value is 0.00, and thus, we reject the null hypothesis that our variable of interest contains a unit root, and we find that returns was generated by a stationary process (which makes sense since is I(1))
*B. oil
dfuller oil , trend
pperron oil , trend
dfuller lnOil , trend
pperron lnOil , trend
* Our p-value is 0.00, and thus, we reject the null hypothesis that our variable of interest contains a unit root, and we find that returns was generated by a stationary process (which makes sense since is I(1))
*C.
dfuller lnTPI , trend
pperron lnTPI , trend
dfuller tpi, trend
pperron tpi , trend
* Our p-value is 0.00, and thus, we reject the null hypothesis that our variable of interest contains a unit root, and we find that returns was generated by a stationary process (which makes sense since is I(1))
*D.
dfuller lnR , trend
pperron lnR , trend
dfuller interest , trend
pperron interest , trend
* Our p-value is 0.00, and thus, we reject the null hypothesis that our variable of interest contains a unit root, and we find that returns was generated by a stationary process (which makes sense since is I(1))
*E.
dfuller lnM1 , trend
pperron lnM1 , trend
dfuller M1, trend
pperron M1, trend
*F
dfuller lnCPI
dfuller CPI
pperron lnCPI
pperron CPI
*G.
dfuller returnNY, trend
dfuller price_ny
pperron returnNY, trend
pperron price_ny
*H Unemployment
dfuller unem
dfuller lnU
*I. Economic Uncertainty Inde
dfuller econ
dfuller lnEC
pperron shares
estat ic
************************************************** ****************************************
* 3. SELECTING LAG ORDER
************************************************** ****************************************
varsoc return lnR lnM1 lnOil lnTPI lnCPI lnXrate
*Optimal lag is 1
* Using AIC, optimal lag is 3 (doesn't matter if we include NY_R or not')
*Using SBIC, optimal lag is 1
************************************************** ****************************************
* 4. DIAGNOSTIC TESTS
************************************************** ****************************************
tsset date
regress price oil tpi M1 CPI interest exc unem econ price_ny
* A. Lagrange Multiplier Test
estat bgodfrey, lag(1)
* We reject H0 and thus, we conclude that there is no serial correlation
tsset date
regress return lnR lnM1 lnOil lnCPI lnTPI lnXrate returnNY lnU lnEC
* B. TEST FOR SKEWNESS
sktest return lnM1 lnOil lnR lnCPI lnTPI lnXrate returnNY lnU lnEC
* C. WHITE TEST
wntestb return
wntestq return // we don't reject H0, and thus, the variable follows a WN process
estat hettest // variable is homoscedastic
*D. RAMSEY'S RESET TEST
estat ovtest
* At the 5% level, we don't reject H0 and thus we conclude that there is no significant evidence that our regression suffers from OVB.
*P = 0.0738 , F=2.35
*If we used the non-log regression, we would have OVB
************************************************** ****************************************
* 4. ARDL APPLICATION
************************************************** ****************************************
*A. ARDL TEST
tsset date
ardl return lnR lnM1 lnOil lnCPI lnTPI lnXrate lnU lnEC , lag(3)
ardl return lnR lnM1 lnOil lnCPI lnTPI lnXrate lnU lnEC , ec lag(3)
* B. Bound test to look for L-R relationships
estat btest
*Results: We Reject H0 and conclude thate there exists statistically significant evidence that there are L-R relationships between our variables
*C. CUSUM
regress return lnR lnM1 lnOil lnCPI lnTPI lnXrate returnNY lnEC lnU
estat sbcusum
*At the 5% level, we get a t-stat= 0.5672 and a p-value of 0.94, thus not rejecting our H0 and concluding that there is not a structural break in our variable of interest.
Related Posts with ARDL Co-Integration Approach
Easier way to get casewise statistics using tabstat?Hi, I need a command/code that help me to get casewise descriptive statistics using "tabstat" witho…
Pairwise correlationsHi, I am a very new user in Stata and need help with obtaining only relevant correlation coefficien…
conflicting results with command ivprobit and marginsHi all! When I ran ivprobit, I got positive and significant coefficient for my endogenous independen…
error merge m:1 no? unique numbers in using dataHi there, I am trying to merge 2 datasets with m:1, on keyvar ID. i am getting an error that "variab…
Pooled OLS and Random EffectsHello everyone, Was just concerned as I have a set of panel data obvservations, and when running reg…
Subscribe to:
Post Comments (Atom)
0 Response to ARDL Co-Integration Approach
Post a Comment