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.
See the code in Chapter 4 of Using SAS in Financial Research (Boehmer, Broussard, and Kallunki, 2002) Code from the book is available for free from the book's website.
@Rick_SAS Thanks. The book is quite useful with example codes. But I do not need a rolling regression. I have edited my question and will be grateful if you kindly help me in the context of this question.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.
Learn how use the CAT functions in SAS to join values from multiple variables into a single value.
Find more tutorials on the SAS Users YouTube channel.
Ready to level-up your skills? Choose your own adventure.