BookmarkSubscribeRSS Feed
deleted_user
Not applicable
I want to run Mishkin Test, the mode as belows
(1)y1= r0 + r1*x1 + r2*x2 +e
(2)y2= b0+b1(y1 - g0 -g1 *x1 -g2* x2 )+e

where g0~g2 is estimate r0~r2

As in Mishkin (1983) to estimate eq(1) and (2) jointly using an interative generalized nonlinear least squares estimation procedure.

Also, it need to report r1, g1, and r1-g1 (with Chi-sq, or likelihood ratio statistic) Message was edited by: hmc667888
4 REPLIES 4
deleted_user
Not applicable
http://personal.anderson.ucla.edu/judson.caskey/programs/mishkin.ado

This is STATA program. Who can rewrite it into SAS?
This is important for me, I really need it to do my research. Thanks.
Dale
Pyrite | Level 9
I neither know STATA nor do I know explicit details of the Mishkin test. However, for the problem as described on the page that you have linked to above, we can write a very short SAS program (compared to the STATA program which was given) that would fit the model and allow a test of whether one is operating in an efficient market. It should be noted that if the page that you linked to does not fully specify the model (for instance, if the residual v(t) is correlated with the residual v(t-1)), then the code presented below will not be appropriate.

Before proceeding to state the code, let me note that I the code presented below operates for the single predictor variable X and responses RETURN and EARN as employed in the linked page. You have written the model a bit differently (with more than one predictor and with specification of the equations for the responses seemingly reversed from what is described on the Judson Caskey page. You will have to revise the code that I present to accommodate differences between your model specification and the specification by Judson Caskey.

Also, let me note that for the solution which is proposed below, you will need to restructure a data set which has earnings and returns on one record so that a single response variable Y is employed with an indicator of whether the response Y represents returns or whether it represents earnings. We begin by restructuring the data.

data mydata_restruct;
  set mydata;
  record + 1;
  x_tm1 = lag(x);  /* Construct X(t-1) */
  y = return;  response='R';  output;
  y = earn;  response='E';  output;
run;

proc nlmixed data=mydata_restruct;
  if response='R' then
    eta = b*(earn - a0 - a1*x_tm1) + u_r;
  else
    eta = g0 + g1*x_tm1 + u_3;
  model y ~ normal(eta, exp(2*log_sd_common));
  random u_r,u_e ~ normal([0,0],
                                      [exp(2*log_sd_rspec),0,
                                        exp(2*log_sd_espec)]) subject=record;
  contrast "Market Efficiency" a0-g0, a1-g1;
  estimate "Var(v(t))" exp(2*log_sd_common) + exp(2*log_sd_rspec);
  estimate "Var(u(t))" exp(2*log_sd_common) + exp(2*log_sd_espec);
  estimate "Cov(v(t),u(t))" exp(2*log_sd_common);
  estimate "Corr(v(t),u(t))" exp(2*log_sd_common) /
                                      sqrt((exp(2*log_sd_common) + exp(2*log_sd_rspec)) *
                                            (exp(2*log_sd_common) + exp(2*log_sd_espec)));
run;


The above code is completely untested. However, it is fairly simple code to construct, so it should be pretty good code. Do you have access to some data where results have already been provided so that you could test the above model? If there are any other requirements for the model (such as serially correlated residuals), then the above code (as previously noted) would not be sufficient.
deleted_user
Not applicable
Hi, Dale,
Thanks a lot for your assistance.
I had done my work. Message was edited by: hmc667888
deleted_user
Not applicable
Hi,

I am a new user of Mishkin test and would need a bit of help getting my head around it. I am testing the accrual anomaly, so the code that I need is the same. This seems to be the only thread that I can find by googling.

Would appreciate any help.

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

Register now!

What is ANOVA?

ANOVA, or Analysis Of Variance, is used to compare the averages or means of two or more populations to better understand how they differ. Watch this tutorial for more.

Find more tutorials on the SAS Users YouTube channel.

Discussion stats
  • 4 replies
  • 3587 views
  • 0 likes
  • 2 in conversation