URGENT-programming of Fama-Macbeth regression

For questions regarding programming in the EViews programming language.

Moderators: EViews Gareth, EViews Moderator, EViews Jason, EViews Matt

Coco Jia
Posts: 2
Joined: Mon Feb 15, 2016 6:57 am

URGENT-programming of Fama-Macbeth regression

Postby Coco Jia » Mon Feb 15, 2016 7:10 am

Dear all,
I used the code provided by Chris Brooks in his book Introductory econometrics for finance 2014 edition. But Eviews told me there is an error.
the complete code is :
'READ DATA
LOAD E:\DISSERTATION\FF_EXAMPLE.WF1
'TRANSFORM ACTUAL RETURNS INTO EXCESS RETURNS
sl=sl-rf
s2=s2-rf
s3=s3-rf
s4=s4-rf
sh=sh-rf
s2l=s2l-rf
s22=s22-rf
s23=s23-rf
s24=s24-rf
s2h=s2h-rf
m3l=m3l-rf
m32=m32-rf
m33=m33-rf
m34=m34-rf
m3h=m3h-rf
b4l=b4l-rf
b42=b42-rf
b43=b43-rf
b44=b44-rf
b4h=b4h-rf
bl=bl-rf
b2=b2-rf
b3=b3-rf
b4=b4-rf
bh=bh-rf
'DEFINE THE NUMBER OF TIME SERIES OBSEVARTIONS
!NOBS=363
'CREATE SERIES TO PUT BETAS FROM STAGE 1
'AND LAMBDAS FROM STAGE 2 INTO
SERIES BETA_C
SERIES BETA_RMRF
SERIES BETA_UMD
SERIES BETA_HML
SERIES BETA_SMB
SERIES LAMBDA_C
SERIES LAMBDA_RMRF
SERIES LAMBDA_UMD
SERIES LAMBDA_HML
SERIES LAMBDA_SMB
SERIES LAMBDA_R2
SCALAR LAMBDA_C_MEAN
SCALAR LAMBDA_C_TRATIO
SCALAR LAMBDA_RMRF_MEAN
SCALAR LAMBDA_RMRF_TRATIO
SCALAR LAMBDA_UMD_MEAN
SCALAR LAMBDA_UMD_TRATIO
SCALAR LAMBDA_HML_MEAN
SCALAR LAMBDA_HML_TRATIO
SCALAR LAMBDA_SMB_MEAN
SCALAR LAMBDA_SMB_TRATIO
SCALAR LAMBDA_R2_MEAN
'THIS LOOP CREATES THE SERIES TO PUT THE
'ROSS-SECTIONAL DATA IN
FOR !M=1 TO 363
SERIES TIME{%M}
NEXT
'NOW RUN THE FIRST STAGE TIME SERIES REGRESSIONS
'SEPARATELY FOR EACH PORTFOLIP AND
'PUT THE BETAS INTO THE APPROPRIATE SERIES
SMPL 1980:0 2010:12
!J=1
FOR %Y SL S2 S3 S4 SH S2L S22 S23 S24 S2H M3L M32 M33 M34 M3H B4L B42 B43 B44 B4H BL B2 B3 B4 BH
'THE PREVIOUS COMMAND WITH VARIABLE NAMES
'NEEDS TO ALL GO ON ONE LINE
EQUATION EQ1.LS {%Y} C RMRF UMD HML SMB
BETA_C(!J)=@COEFS(1)
BETA_RMRF(!J)=@COEFS(2)
BETA_UMD(!J)=@COEFS(3)
BETA_HML(!J)=@COEFS(4)
BETA_SMB(!J)=@COEFS(5)
!J=!J+1
NEXT
'NOW RESORT THE DATA SO THAT EACH COLUMNS IS A
'MONTH AND EACH ROW IS RETURNS ON PORTFOLIOS
FOR !K=1 TO 363
TIME!K(1)=SL(!K)
TIME!K(2)=S2(!K)
TIME!K(3)=S3(!K)
TIME!K(4)=S4(!K)
TIME!K(5)=SH(!K)
TIME!K(6)=S2L(!K)
TIME!K(7)=S22(!K)
TIME!K(8)=S23(!K)
TIME!K(9)=S24(!K)
TIME!K(10)=S2H(!K)
TIME!K(11)=M3L(!K)
TIME!K(12)=M32(!K)
TIME!K(13)=M33(!K)
TIME!K(14)=M34(!K)
TIME!K(15)=M3H(!K)
TIME!K(16)=B4L(!K)
TIME!K(17)=B42(!K)
TIME!K(18)=B43(!K)
TIME!K(19)=B44(!K)
TIME!K(20)=B4H(!K)
TIME!K(21)=BL(!K)
TIME!K(22)=B2(!K)
TIME!K(23)=B3(!K)
TIME!K(24)=B4(!K)
TIME!K(25)=BH(!K)
NEXT
'RUN 2ND STAGE CROSS-SECTIONAL REGRESSSIONS
FOR !Z=1 TO !NOBS
EQUATION EQ1.LS TIME!Z C BETA RMRF BETA UMD BETA HML BETA SMB
LAMBDA_C(!Z)=@COEFS(1)
LAMBDA_RMRF(!Z)=@COEFS(2)
LAMBDA_UMD(!Z)=@COEFS(3)
LAMBDA_HML(!Z)=@COEFS(4)
LAMBDA_SMB(!Z)=@COEFS(5)
LAMBDA_R2(!Z)=@R2
NEXT
'FINALLY, ESTIMATE THE MEANS AND T-RATIOS
'FOR THE LAMBDA ESTIMATES IN THE SECOND STAGE
LAMBDA_C_MEAN =@MEAN(LAMBDA_C)
LAMBDA_C_TRATIO=@SQRT(!NOBS)*@MEAN(LAMB DA_C)/@STDEV(LAMBDA_C)
LAMBDA_RMRF_MEAN=@MEAN(LAMBDA_RMRF) LAMBDA_RMRF_TRATIO=@SQRT(!NOBS)*@MEAN(LAMBDA_RMRF)/@STDEV(LAMBDA_RMRF)
LAMBDA_UMD_MEAN=@MEAN(LAMBDA_UMD) LAMBDA_UMD_TRATIO=@SQRT(!NOBS)*@MEAN(LAMBDA_UMD)/@STDEV(LAMBDA_UMD)
LAMBDA_HML_MEAN=@MEAN(LAMBDA_HML)
LAMBDA_HML_TRATIO=@SQRT(!NOBS)*@MEAN(LAMBDA_HML)/@STDEV(LAMBDA_HML)
LAMBDA_SMB_MEAN=@MEAN(LAMBDA_SMB)
LAMBDA_SMB_TRATIO=@SQRT(!NOBS)*@MEAN(LAM BDA_SMB)/@STDEV(LAMBDA_SMB)

The purpose of the part of code contains error is attached as a picture. The error is attached as a picture. Could anyone help me to fix this problem?
Attachments
purpose.PNG
purpose.PNG (18.72 KiB) Viewed 2241 times
error.PNG
error.PNG (59.7 KiB) Viewed 2241 times

Coco Jia
Posts: 2
Joined: Mon Feb 15, 2016 6:57 am

Re: URGENT-programming of Fama-Macbeth regression

Postby Coco Jia » Tue Feb 16, 2016 4:25 am

Problem Sovled

The code define SERIES TIME is wrong.
It should be SERIES TIME{!M} instead of SERIES TIME{%M}


Return to “Programming”

Who is online

Users browsing this forum: No registered users and 2 guests