Eventus
Software


View User Guide

EventStream

Eventus Features

Eventus and
SAS


Who Uses
Eventus?

Order

Examples for Users

Upgrade
Information

FAQ

Support

Request a Quote

Fama-French Factors

Volume Indexes

Patches

View Documentation

Ordering
Information

Eventus ® FAQ

General

Software Capabilities

Long-horizon event study methods

Control-firm methods

CUSIP to CRSP PERMNO conversion

Tips, Tricks and Techniques

Control-firm event study approach

Fama-French factor data

Indexing data sets for the SASNONCRSP method

Indexing data sets for the companion portfolio approach

Basing the estimation period for one event on the date of a different event

Holding a firm-specific estimation period constant across multiple event studies

Retrieving index returns alone

Retrieving returns a fixed number of trading days before a given calendar date

Stock return variance

Stock return variance

Error Messages

"Statement is not valid" errors on all Eventus statements

Error messages from Extract statement with the BuyHold option

Interpretation of Results

Market index with SP500 option isn't S&P 500 ... ?

Meaning of Extract,  OutWin or FileWin weights

Output of RETURNS with SIZEINDX and BOTH options

Compatibility with Other Vendors

Compatibility with CRSP and how to handle updates of CRSP

Compatibility with Datastream

Compatibility with SAS v9


Cowan Research, L.C. Home Page

"Statement is not valid" errors on all Eventus statements

Q: We installed Eventus for Windows, but when we try to run a test program, the Eventus; statement and each subsequent statement is flagged with the message
ERROR 180-322 Statement is not valid or is used out of proper order.
What’s going on?

Solution: This typically is the result of installing Eventus in one user account (often the special login named Administrator in Windows XP Professional), then trying to use it from another without further ado. If you go back to the same login used for installation and find that you can successfully run Eventus, then only a few simple manual steps are needed to make Eventus available to other user accounts on the same computer.

To make Eventus available to another user on the same computer, please close SAS and copy the following files from the first user's My SAS Files folder (typically something like My Documents\My SAS Files\9.1) to the next user's My SAS Files folder:
formats.sas7bcat
nyupdat.sas7bdat  (if present)
nyupdat.sas7bndx (if present)
sasmacr.sas7bcat
templat.sas7bitm
If some of the above files exist, overwrite them with the newly installed copies, except in the rare event that the user has done advanced SAS programming to create stored compiled macros or custom SAS formats. In that very rare case, make a backup copy of the user's macro or format catalog (whichever the user created), then install Eventus from the CD while logged in as that user.

Another possibility is that the SAS 9.1 configuration file arrangement was changed after SAS 9.1 was installed on the PC. To investigate this possibility, close SAS and use Notepad to check all files SASV9.CFG on your computer (use a desktop search tool such as those offered by Yahoo!, Google or X1 to find them). Typically there are two, in C:\Program Files\SAS\SAS 9.1\ and C:\Program Files\SAS\SAS 9.1\nls\en where en may be replaced by another two-letter language code. One of the files contains over 200 lines including the line
/* set default locations
If this line is the first non-blank line in the file, another SASV9.CFG should begin with five lines each starting with a hyphen. Copy these five lines to the top of the 200-plus line file, above the line shown above, save and close the file. Be careful not to make any change to any SASV9.CFG except for adding lines to the top of the file.

A third possibility is that the user's My Documents file has moved since SAS was installed. A variant of this is a laptop on which My Documents is defined one way when the laptop is docked or attached to a network and another way at other times. My SAS Files is usually a folder under My Documents and so is affected by this Hogwarts staircase problem. In this situation, close SAS and copy the files listed above for the multiple user account situation, from the My SAS Files folder in which they currently appear to the My SAS Files folder under the new or undocked My SAS Files.

Return to list of FAQ subjects

Extract with BUYHOLD doesn't work

Q. When I run the extract statement with the buyhold option, multiple error messages appear in the log window and the file of extracted returns is not created. The EvtStudy statement included buyhold.

Solution: Upgrade to Eventus 8, where you don't have to worry about this. In fact, you might not even want to use Extract, which typically can be replaced by the new OUTWIN= option of the EvtStudy statement. If you do run into this problem while using Eventus 7, on the EvtStudy statement that creates the data set to be extracted from, include the option package=defgp.

Return to list of FAQ subjects

Implementing a control-firm approach

Q: How can I use a control-firm approach, where each sample firm is pre-matched to a similar firm?

Solution: The control-firm approach as it commonly appears in the literature can be implemented using the SHORT and GROUP options on the REQUEST statement. Include the PERMNOs (or whatever security identifier is being used) for both the sample and control firms in the same request file. Include a grouping variable which has a unique value for each sample firm; each control firm should receive the same grouping variable value as its matched sample firm. See the documentation for the REQUEST statement option GROUP for details.  Also include a short-long indicator, 'S' for control firms and 'L' for sample firms. See the documentation of the REQUEST statement option SHORT for details. The simple paired difference test frequently used with the control-firm approach can be  invoked with the EvtStudy statement option CSECTERR. To suppress benchmark models, include the EvtStudy statement options RAW NOMM NOMAR. An estimation period still must be defined, but may be forced to overlap the event period using the EvtStudy statement option OVERLAP and appropriate specifications of the REQUEST statement options ESTand ESTLEN.

Return to list of FAQ subjects

Data set indexes for SASNONCRSP

Q: Could you explain further how the data statement index options needed for SASNONCRSP work?

Solution: Indexing allows a SAS data set to be used (by Eventus in this case) as if the data set were sorted by the index variable or variables. In Eventus 8, you no longer need to index the mini-database component data sets; Eventus builds the indexes for you automatically.

Return to list of FAQ subjects

Data set indexes for PORT1DS

Q: Could you explain how to index the portfolio assignment data set for the companion portfolio method?

Solution: In the code below, replace mydataset by the name of the data to which the PORT1DS option will point. If you are preparing the data set for a SASNONCRSP run, also change permno to the variable name of your security identifier.
proc sql;
 create index IssuYrKey on mydataset(permno,yy);
quit;

Return to list of FAQ subjects

Same estimation period for different events

Q: I want to run separate event studies on three different events using the same sample of firms (three events per firm, with a different event date for each firm). I want the estimation period to end 31 days before the first event date. I read about the est=specific option in the User's Guide. But exactly how do I use it, and how can I find out the estimation period ending date for the first event?

Solution: Run Eventus statements like the following.

* Convert calendar event date to CRSP trading day number;
filename request 'C:\My Request Files\File Name 1.txt';
Eventus;
 DateConv outsas=work.temp1;

* Move date back 31 trading days;
Eventus;
 DateConv insas=work.temp1 datefmt=crsp shift1=-31 outsas=work.temp2;

* Combine shifted and original dates into a new request file in SAS data set form;
data request_event1;
 merge temp1 temp2(rename=(eventdat=estend));
 by permno;
run;

* Print the request file for visual inspection;
proc print data=request_event1;
 id permno;
 format eventdat estend yymmddn8.;
run;

* Use the new request file to run the first event study;
Eventus;
 Request insas=work.request_event1 est=specific;
 EvtStudy;

* Set up the request file for the second event study;
filename request 'C:\My Request Files\File Name 2.txt';
Eventus;
 DateConv outsas=work.temp3;

data request_event2;
 merge temp3 temp2(rename=(eventdat=estend));
 by permno;
run;

* Run the second event study;
Eventus;
 Request insas=work.request_event2 est=specific;
 EvtStudy;

Further event studies can be run using the same estimation period for each firm as in the first event study using a request file setup process similar to that shown for the second event study above.

Any shift is calculated in terms of the input date units. When datefmt=crsp appears on the DateConv or Request statement, any shift1 or shift2 option on the same statement produces a shift of the specified number of trading days. Without datefmt=crsp, the shift is performed for the specified number of calendar days.

If you have options on the event study Request statement that further describe the request file contents, such as ID=... or CUSIPERM, the same options can be used on DateConv too. If using CUSIPERM or if there is more than one event with the same PERMNO, the use of ID=, and merging by the specified identifying variable instead of PERMNO, are recommended

Item revised 11 February 2004.

Return to list of FAQ subjects

Basing the estimation period for one event on the date of a different event

Q: Is there a way to set up the estimation period, for an event study around one event , relative to the date of a second event?

Solution: Yes. The Eventus statements below demonstrate how to set up the estimation period for a security offer registration as days +31,+150 relative to the actual offering date.

The request file contains the following lines, where the four fields are CUSIP, registration date, offering date and user-defined event ID number:

38141G10 20011127 20020107 2
00684810 20010629 20020115 5
67087210 20011205 20020117 9
70756910 20010625 20020213 30
17247410 20011128 20020219 34
57791410 20010518 20020312 63
91087320 20020125 20020314 69
88077910 20011210 20020418 103
32051K10 20020305 20020419 104
83186520 20020412 20020507 117
46072H10 20020418 20020508 119
73157210 20020227 20020508 122
12791410 20020506 20020521 134
03748R10 20011012 20020530 144
87316810 20020315 20020530 146
00493020 20011204 20020604 148
69351T10 20020906 20020912 201
80589M10 20020802 20021010 209
03738910 20011203 20021104 221
39116410 20020429 20021121 237

* Use the TWIN option and Dateconv statement to convert both dates (registration and offering) to CRSP trading day numbers;
filename request 'C:\My Request Files\File Name.txt';
Eventus twin;
 
DateConv cusiperm outsas=work.temp1 id=id;

* Use the TWIN option and Dateconv statement to read both dates and shift the second 150 trading days into the future, to create an estimation-period ending date of offering date+150;
Eventus twin;
 
DateConv insas=work.temp1 datefmt=crsp shift2=+150 outsas=work.request id=id;

* Rename the CRSP-date variables to the required column names for a single event date and specific estimation period ending date;
proc datasets library=work nolist;
 
modify request;
 
rename crspday1=crspday crspday2=crspest;
quit;

* Run the event study, using datefmt=crsp to use crspday as the event date, est=specific to use crspest as the last trading day of the estimation period (both specified as CRSP dates) and estlen=120 to specify a 120 trading day long estimation period;
Eventus;
 title 'Registration Date -- Estimation Period is Offering Date(+31,+150)
 
Request insas=work.request datefmt=crsp est=specific estlen=120 id=id;
 
EvtStudy;

Item created 11 February 2004.

Return to list of FAQ subjects

Retrieving index returns alone

Q: Is it possible to get returns for a market index alone?

Solution: Run a program like the following. It also will retrieve returns for Adams Express stock, but because Adams Express has been active every day and month of the CRSP database (so far), no calendar range will be excluded due to non-listing.

 data request;

  permno=10065; /* Adams Express */

  eventda1='01JAN1926'D; /* Starting date here */

  eventda2='01DEC2001'D; /* Ending date here */

  output;

  stop;

 run;

 

 Eventus getdata monthly; /* remove monthly if daily wanted */

  Request autodate insas=work.request;

  Returns index value outsas=work.indexdata;

 /* Note: CRSP value-weighted index will be variable Market in output SAS data set indexdata*/

Return to list of FAQ subjects

Retrieving returns a fixed number of trading days before a given calendar date

Q: I want to use the returns statement to extract, from the CRSP daily stock database, the return 31 trading days before a date that varies from firm to firm. I have the dates in an ascii text request file named c:\myproject\request.dat, where each line contains the PERMNO and calendar date for one firm (for example, 12345 19980701). If I use the shift1=-31 option on the Request statement, I get the return 31 calendar days before the given date, as the User's Guide states. But I need to shift back an exact number of trading days, not calendar days. How can I do this?

Solution: Run Eventus statements like the following. The statements first produce a SAS data set format request file containing the specified event date in CRSP trading day number format, which is then used with the the shift1=-31 option on the Request statement to move back 31 trading days.

filename request 'c:\myproject\request.dat';
Eventus getdata;
 DateConv ndays=1 outsas=work.request;

Eventus getdata;
 Request insas=work.request datefmt=crsp shift1=-31 ndays=1;
 Returns;

Return to list of FAQ subjects

Fama-French Factor Data

Q: Where can I obtain Fama-French factor data for event study purposes?

Solution: Eventus for WRDS users can access the factor data, maintained by WRDS staff, through the SAS library name FF. Eventus 8.0 and greater for Windows users, please go to the Windows Start Menu folder for Eventus and select Fama-French Factor Installer, which downloads the factor data from Professor Ken French's web site and installs it in the SAS data set format expected by Eventus software. If your organization is an annual subscriber to Eventus and you have trouble obtaining the factors by the above methods or use Eventus for Solaris or Linux on your own organization's system, please our data sets page for other options.

Return to list of FAQ subjects

Stock return variance

Q: How can I get Eventus software to put the stock return variance in a SAS data set? I am not interested in event study results, just the return variance.

Solution: The following program creates a temporary SAS data set, work.volatile, that contains the variable OWNVAR, the variance of raw stock returns. It is assumed that the request file (read by the Request statement) contains the PERMNO of each stock and a stock-specific date that marks the end of the 253-day period for which you want the variance, and your own four-digit identifying number that you call "Item" for your security-events.

Eventus;
 Request autodate id=item idfmt=4.0 estlen=253 est=-1 shift1=+1;
 EvtStudy overlap pre=252 post=0 noplist raw nomar nomm outsas=work.volatile;

proc print data=volatile;
id item permno;
var ownvar;

Notes on above

  • The identifying number is optional, and as with any Request statement, the id= and idfmt= options can be omitted.
  • Proc print is included above only as a simple example of SAS processing that can be performed on work.volatile. It is a normal SAS data set and can be used as input to any SAS procedure or set, merge or update data step statement.
  • est=-1 shift1=+1 is required because est=0 is ambiguous.
  • To make the period over which the return variance is computed different, change an appropriate combination of estlen, est, and possibly the shift1 option. Example #1: For a variance computation period starting on the date that you provide, use estlen=253 est=+1 shift1=-1 Example #2: To make the computation period 100 days long and starting three weeks (21 calendar days) after the stock-specific date that you provide, use estlen=100 est=+1 shift1=+20. Also change pre and post on the following line to match. For example #1, use pre=0 post=253. For example #2, use pre=0 post=100.
  • This example assumes that the user's PERMNOs, dates and Item numbers are in a text file pointed to by a previous filename request statement (or a SAS file shortcut request created in the Explorer pane of PC SAS). If they are already in a SAS data set, use the insas option on the Request statement.
  • For the standard deviation of market-model abnormal returns, omit raw and nomm; the variable in work.volatile is _RMSE_. For the standard deviation of market-adjusted returns, omit raw nomar on the EvtStudy statement and divide StDenom by the square root of (1+1/Ti) (both from data set work.volatile).
  • The code above prints event study results, which the researcher may prefer to discard because of the overlapping estimation and event periods. The noprint option on the EvtStudy statement can be used to suppress the event study output.
  • All the statements and options in this FAQ are in the Eventus® software User's Guide. This FAQ is only intended to present suggested uses, not to fully document the syntax and effects of all the statements and options mentioned.

Return to list of FAQ subjects

Standard errors of market model alpha and beta

Q: How can I get the standard error of market model alpha and beta (as regression coefficients) from the estimation period for each security-event in an event study?

Solution: The following program illustrates the addition of the OutSAS option to the
EvtStudy statement to put the parameter estimates that are available
directly into a SAS data set, followed by SAS code to calculate the standard errors of the coefficients and display them.

Eventus;
 Request;
 EvtStudy OutSAS=work.params Package=p;

data se;
 set params;
 s_alpha=_rmse_*sqrt(1/Ti+rmbar**2/ssrm);
 s_beta=_rmse_/sqrt(ssrm);
run;

proc print data=se;
 id permno; /* change permno to another identifier if applicable */
var alpha s_alpha beta s_beta;
run;

Notes on above
  • Proc print is included above only as a simple example of SAS processing that can be performed on work.se, which is an ordinary SAS data set that can be used as input to any SAS procedure or set, merge or update data step statement.
  • The Package=p specification is not essential; it only limits the contents of the output data set.
  • The NoPrint option also could be added to EvtStudy to suppress the usual listing output from the event study if desired.
  • Other Eventus, Request and EvtStudy statement options applicable to this type of event study, and a Windows statement, may be used in conjunction with OutSAS, of course.
  • Adding other benchmark methods such as MAR to EvtStudy will complicate the subsequent SAS data step code, so we suggest limiting the run in which coefficient standard errors are calculated to the market model as the only benchmark method.

Return to list of FAQ subjects

SP500 option doesn't retrieve S&P 500 return

Q. When I specify the SP500 option, I still get the default market index. Why?

Solution: As stated in the User's Guide, the SP500 option causes the Standard & Poor's 500 return from the CRSP stock database to replace the value-weighted index. This implies that to actually get the S&P 500, it is necessary to invoke the value-weighted index by using the VALUE option or BOTH option, for example:

   Eventus getdata;
     Request sp500;
     Returns index value;

Return to list of FAQ subjects

Meaning of Extract, OutWin or FileWin weights

Q. The weights produced by the OutWin or FileWin option of the EvtStudy statement, or by the Extract statement, look strange. How can I make sense out of them?

Solution: The weights created by OutWin, FileWin and Extract are designed to meet the requirements of the WEIGHT statement in SAS regression procedure PROC REG, to simplify weighted least squares (WLS) cross-sectional regressions. The weights are designed to make the WLS estimation conform to the same assumptions about the variance as are used in the development of the Patell and Standardized Cross-Sectional tests. The weights may seem strangely proportioned because a) they are not intended to be portfolio weights, and do not sum to 1; and b) they are reciprocals of variance, not standard deviation, because that is appropriate for the way that PROC REG works, given the desired variance assumptions.

Nevertheless, the weighting scheme is consistent with portfolio weights based on the reciprocals of standard deviations. The following experiment demonstrates that this is so. When the SERIAL and STDCSECT options are not specified on the EvtStudy statement, the precision-weighted cumulative average abnormal return printed in the default event study output is equivalent to taking a weighted-average CAR using the square roots of the OutWin, FileWin or Extract weights. Run an event study using the OutWin=work.demo option, but not the SERIAL and STDCSECT options. Then run the following statements:
    data demo;
     set demo
     w1=sqrt(CAR_Weight1);
    run;
    proc summary data=demo;
     weight w1;
     var winar1;
     outsas out=pwcaar mean=pwmean;
    run;
    proc print;
     var pwmean;
    run;

The weighted average pwmean is equal to the corresponding precision-weighted cumulative average abnormal return in the original event study output.

Return to list of FAQ subjects

Output of RETURNS with SIZEINDX and BOTH options

Q. When I run Eventus using the GETDATA option on EVENTUS statement, the SIZEINDX option on the REQUEST statement, and the option BOTH on the RETURNS statement, I get two sets of index returns, labeled EQUAL and VALUE. Do I assume that these are the value-weighted and equal-weighted indices for the size-decile index?

Solution: No. Keep in mind that Eventus itself does not calculate the index returns, it just reads them from the CRSPINDX and SIZEINDX files. The returns in the SIZEINDX file are whatever they are, equal- or value-weighted. Traditionally the CRSP indices/decile product included only equal-weight size decile portfolios, and that is also what the size-index maker included in the Eventus installation kit produces.

When using SIZEINDX on the REQUEST statement with the statement RETURNS INDEX BOTH; the output contains:
Index labeled 'EQUAL' = size-matched decile portfolio return;
Index labeled 'VALUE' = CRSP value-weighted index from the main index file.

Return to list of FAQ subjects

Compatibility with CRSP™ and how to handle updates of CRSP

Q: Is Eventus® software compatible with the current CRSP U.S. stock database? Should we install the X-cut or the Z-cut of the CRSP data?

Answer: Eventus 8.0 can directly read any recent release of the CRSP U.S. Stock Database if installed on the same computer as Eventus or accessible on a local network drive. Eventus 8.0 is compatible with both the X-cut and Z-cut and automatically detects which one is being used.

Q: CRSP was recently updated on our local network, but unless I use the dbfnstmt option of the Eventus statement, Eventus for Windows still uses the previous version of the CRSP data.

Answer:  Except when the dbfnstmt option is present, Eventus uses the Windows environment variables CRSP_DSTK and CRSP_MSTK to locate the CRSP daily and monthly databases respectively. The dbfnstmt option bypasses the environment variables. When a CRSP update is installed, the environment variables are updated automatically on the PC or server on which the update is performed. Individual PCs accessing CRSP on a network drive need to have their environment variables updated manually. The environment variables are simple text strings containing the folder locations of the daily and monthly databases. Here is how to get to a screen where you can enter the new folder locations. If you have a Windows Start menu folder named CRSPAccess, try CRSP Client Environment. Otherwise, open My Computer using the corresponding desktop or Start menu icon, click on View System Information, go to the Advanced tab, and click the Environment Variables button. These steps are for XP; Vista may be a little different.

Return to list of FAQ subjects

Compatibility with Thomson Financial Datastream

Q: Can Eventus® software use Datastream data?

Answer: Yes, users have two options for doing this. One is to manually download the needed Datastream data and format it according to Eventus requirements for non-CRSP event studies, as described in the User's Guide. Another option is to use our EventStream software in conjunction with Eventus.

Return to list of FAQ subjects

Compatibility with versions of The SAS® System

Q: With which versions of SAS does Eventus software work?

Answer: Eventus 8.0 requires SAS 9.1 or 9.2. We currently recommend using either SAS 9.2 or SAS 9.1.3 Service Pack 4 and the current Base SAS hotfix bundle.

Home Up Next

FAQ last updated 19 June 2008.

© 1999-2007 Cowan Research LC                             Site Search     Contact Us     Home     Privacy    Legal