DATA Step, Macro, Functions and more

cross sectional regression by month- NOT Rolling regression

Reply
Contributor
Posts: 21

cross sectional regression by month- NOT Rolling regression

Hi

I have a panel data shown below with "id" identifies different stocks and "month" is monthly dates column. The data set is sorted by id and month. 

 

data have; 
  input id month x1 x2 y;
  datalines;
45  09/30/2004  -0.30  1.34  1
45  09/30/2004  -0.30  1.34  1
45  05/31/2005  -0.08  0.78  0
45  12/31/2008    .     .    0
48  09/30/2001  -0.01  1.88  1
48  02/28/2004   0.78  1.50  0
48  05/31/2005    .    0.54  1
49  01/31/2002   0.05   .    1     
51  03/31/2001  -0.06  1.48  0
55  05/31/2005   0.30  1.21  1
55  05/31/2005   0.30  1.21  1
55  11/30/2007   .      .    0
; run;

I need to run cross sectional regression (proc reg) "by month". So the purpose is to observe variations in coefficient (beta) of "x2" over time i.e. over various months. I am using following proc but there is an Error saying "month" is not sorted in ascending order. When I sort the data by month and run the regression, resulting output gives "0" coefficients for missing values.

proc reg data=have;
 model y=x1 x2;
by month; run;
 

 Kindly guide me in this regard. I also need to know how to create a data set based on time variant coefficients of only x2 along-with their corresponding months (date), and how to ultimately draw their graph.

 

Thanks.

Super User
Posts: 9,867

Re: cross sectional regression by month- NOT Rolling regression

If I was right, you need make a new variable to flag MONTH.

 

new_month=month(month);

 

then use it as a BY variable.

 

proc reg data=have;
 model y=x1 x2; by new_month; run; 

 

But I noticed your Y variable is 0 or 1. Maybe you need check PROC LOGISTIC . 

Contributor
Posts: 21

Re: cross sectional regression by month- NOT Rolling regression

@Ksharp thanks for the reply. Can I use the same By month statement in PROC LOGISTIC? Secondly how to create a data set & graph of only x2 betas (over time)?
Super User
Posts: 9,867

Re: cross sectional regression by month- NOT Rolling regression

Yes. I think so.

for your second question, use OUTEST= option of PROC LOGISTIC to save the betas and use PROC SGPLOT to display it by month.

Contributor
Posts: 21

Re: cross sectional regression by month- NOT Rolling regression

@Ksharp right, thanks.

Ask a Question
Discussion stats
  • 4 replies
  • 122 views
  • 0 likes
  • 2 in conversation