DATA Step, Macro, Functions and more

calculate t-stats for portfolio returns using White’s heteroskedasticity-adjusted standard errors

Accepted Solution Solved
Reply
Contributor
Posts: 66
Accepted Solution

calculate t-stats for portfolio returns using White’s heteroskedasticity-adjusted standard errors

Dear all,

 

Could you please advise me if there is a way to estimate t-stats for portfolio returns using White’s heteroskedasticity-adjusted standard errors, especially in proc means.

 

Thansk in advancefor your help.

 

Best Regards,

 

Cheema 


Accepted Solutions
Solution
‎09-22-2017 09:01 AM
SAS Super FREQ
Posts: 4,113

Re: calculate t-stats for portfolio returns using White’s heteroskedasticity-adjusted standard error

I can answer the second part of your question: convert the data from wide form to long form and then use BY-group processing to process all the variables with one procedure call. For your example that has two variables:

 


data stack;
set have(keep=date port1 rename=(port1=port))
    have(keep=date port2 rename=(port2=port) in=g);
group = g+1;
run;

ods graphics off;
proc model data=stack;
   by group;
   endo port ;
   instruments / intonly;
         port=b0;
   fit port / gmm kernel=(bart, 1, 0);
   run; 
quit;

View solution in original post


All Replies
SAS Super FREQ
Posts: 4,113

Re: calculate t-stats for portfolio returns using White’s heteroskedasticity-adjusted standard error

We'll need more details (structure of data?) to offer anything concrete.  I think these estimates are also called "sandwich estimates" (?). They aren't part of PROC MEANS but you can get them in SAS/STAT procedures such as GENMOD. 

Contributor
Posts: 66

Re: calculate t-stats for portfolio returns using White’s heteroskedasticity-adjusted standard error

Hi Rick,

 

Thanks for your response. Please find the data given below, basically its its average monthly returns of two portfolios (time-series). In the past, I used to estimate Newey West t-statistics and found online that t-stat using White’s heteroskedasticity-adjusted standard error is similar, but not sure since it provided me the same answer like simple t-stat. Furthermore, is it possible to code it in a way that I can get White’s heteroskedasticity-adjusted for both the portfolios at once instead of running the model for each portfolio seperately?

data have;
infile cards expandtabs truncover;
input date : yymmn6. port1 port2 ;
format date yymmn6.;
cards;
199501	-12.8774	-15.9533
199502	2.3605	1.2441
199503	11.3115	3.8817
199504	-7.5567	-6.0238
199505	4.861	1.463
199506	-8.4025	-5.5822
199507	7.877	10.0285
199507	3.8999	2.2173
199508	2.8722	5.5666
199508	4.7494	2.9481
199509	-0.1961	-0.967
199509	-0.906	-3.0715
199510	2.2826	1.3475
199510	1.2008	1.9409
199511	-7.8011	-7.7997
199511	-5.1886	-3.1171
199512	-12.0533	-12.5316
199512	-6.8809	-9.8692
199601	-2.6321	-3.3365
199601	-4.6634	-4.5228
199602	3.352	3.9263
199602	3.082	2.4645
199603	0.1532	2.1435
199603	-1.9428	0.0755
199604	27.5239	25.988
199604	34.4729	42.8569
199605	-5.9426	-9.9524
199605	1.3499	-0.6048
199606	21.3006	15.486
199606	18.1896	13.6956
199607	5.852	5.1746
199607	33.8655	42.5136
199608	-3.3695	0.6106
199608	5.7739	-1.5214
199609	5.857	5.1485
199609	6.3112	0.6669
199610	12.395	7.9307
199610	42.0208	51.5401
199611	5.7496	6.882
199611	15.4236	10.3373
199612	-12.608	-10.3824
199612	-21.5054	-29.4552
run;
**** proc means for simple t-stat; 
proc means data=have n mean t probt maxdec=5;
var port1 port2;
run;
**** proc model for White's heteroskedasticity adjusted t-stat of Port1; 

proc model data=have;ods graphics off;
         endo port1 ;
         instruments / intonly;
         		port1=b0;
         fit port1 / gmm kernel=(bart, 1, 0);
         run; 
         quit;
		**** proc model for White's heteroskedasticity adjusted t-stat of Port2; 

proc model data=have;ods graphics off;
         endo port2 ;
         instruments / intonly;
         		port2=b0;
         fit port2 / gmm kernel=(bart, 1, 0);
         run; 
         quit;

 Thanks for your help.

 

Regards,

 

Cheema 

Solution
‎09-22-2017 09:01 AM
SAS Super FREQ
Posts: 4,113

Re: calculate t-stats for portfolio returns using White’s heteroskedasticity-adjusted standard error

I can answer the second part of your question: convert the data from wide form to long form and then use BY-group processing to process all the variables with one procedure call. For your example that has two variables:

 


data stack;
set have(keep=date port1 rename=(port1=port))
    have(keep=date port2 rename=(port2=port) in=g);
group = g+1;
run;

ods graphics off;
proc model data=stack;
   by group;
   endo port ;
   instruments / intonly;
         port=b0;
   fit port / gmm kernel=(bart, 1, 0);
   run; 
quit;
☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 123 views
  • 1 like
  • 2 in conversation