View User Guide


Eventus Features

Eventus and

Who Uses


Examples for Users




Request a Quote

Fama-French Factors

Volume Indexes


View Documentation


Eventus ® FAQ


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

Interpretation of Results

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 Specific SAS Versions

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: The most common cause is installing Eventus in one user account (such as an administrator account used only for installing software), then trying to use it from another without following the additional steps advised by the setup program.

To make Eventus available to another user on the same computer, you may want to re-install Eventus in the account in which it will be used. (This advice is displayed at the beginning of the setup program). This is desirable because the user will then be able to check for and install hotfixes without switching accounts and manually copying files. If you are installing for multiple users or if the end user's account is not allowed to install software, please try the following instructions.

Please close SAS and copy the following files from the first user's My SAS Files folder (typically something like Documents\My SAS Files\9.2) to the next user's My SAS Files folder:
nyupdat.sas7bdat  (if present)
nyupdat.sas7bndx (if present)
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 while logged in as that user.  You will need to repeat this copying process every time you install an Eventus update.

A second possible explanation is that the SAS 9.2 (or 9.1) configuration file arrangement was changed after SAS was first installed on the PC. To investigate this possibility, close SAS and use Notepad to check all files SASV9.CFG on your computer (it may be helpful to use the newest version of Windows Search or a third party desktop search tool to find all the files with this name and type). If you are running 64-bit Windows, 64-bit SAS and Eventus 9, please contact us through http://support.sas.com. Eventus versions before 9.0 are not compatible with 64-bit SAS. If you are running 32-bit SAS in 64-bit Windows, the instructions below still apply.

Typically there are two copies of SASV9.CFG, in C:\Program Files\SAS\SAS 9.2\ and C:\Program Files\SAS\SAS 9.2\nls\en. If you use a non-English version of SAS, en may be replaced by another two-letter language code. Also, 9.2 may be replaced by 9.1, and (x86) may appear after Program Files. One of the SASV9.CFG 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 3-7 lines each starting with a hyphen. Copy these 3-7 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 Documents or My Documents folder has moved since Eventus was installed. The simplest solution in this case typically would be to re-install Eventus.

A fourth potential cause is that the user's Documents or My Documents folder has moved since SAS was installed. In this case, check SAS documentation or http://support.sas.com about how to move the SASUSER (My SAS Files) folder. Try to avoid having multiple folders named My SAS Files under (or usable by) one user account even if most are empty. You probably will need to re-install Eventus after taking care of this issue.

A fifth, quite uncommon situation is where a laptop has My Documents defined one way when the laptop is docked or attached to a network and another way at other times. SAS by default defines the My SAS Files folder as being under Documents or My Documents, so the My SAS Files location is automatically redefined -- but the contents not automatically copied from the original location -- if the documents folder is changed. If this situation applies, 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. You will need to repeat this step every time you install an Eventus update.

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 9, 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);

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';
 DateConv outsas=work.temp1;

* Move date back 31 trading days;
 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;

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

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

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

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

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

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;

* 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;
 title 'Registration Date -- Estimation Period is Offering Date(+31,+150)
Request insas=work.request datefmt=crsp est=specific estlen=120 id=id;

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? My study does not individual stocks.

Solution: In Eventus 9, you do this with the new IndexData statement as show in the example below. In Eventus 8 and earlier, you have to select a stock that traded for the period over which you want index data, and use the Returns statement with the Index option to get stock and index returns.

data request;
 input eventda1:yymmdd8. eventda2:yymmdd8.;
19891212 19900111
Eventus GetData;
 IndexData insas=request autodate outsas=some_ew_mkt_returns;

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;

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.

 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: Eventus 9 automatically includes them in the output data set created by the OutParam= option of the EvtStudy statement. (Some combinations of other options that change the type of event study might prevent this, however.) For Eventus 8 users, 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. In Eventus 9, just use OutParam instead of OutSAS, drop Package=p, and don't bother with the rest of the example. Eventus 9 also has options to put the parameters in an Excel, CSV or Stata file.

 EvtStudy OutSAS=work.params Package=p;

data se;
 set params;

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

Notes on above
  • Proc print is included above 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

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
    proc summary data=demo;
     weight w1;
     var winar1;
     outsas out=pwcaar mean=pwmean;
    proc print;
     var pwmean;

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?

Answer: Eventus 9 can directly read any recent release of the CRSP U.S. Stock Database if installed, from the DVD provided by CRSP, on the same computer as Eventus or accessible on a local network drive.

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: Copies of Eventus 9 now being delivered are compatible with SAS 9.3, 64-bit and 32-bit. Copies of Eventus 9 for Windows delivered before November 2011 are not fully compatible with SAS 9.3; annual subscribers may request an update to support SAS 9.3 at no charge through http://support.eventstudy.com. Eventus for WRDS may be run by remote access from any version of SAS for Windows; SAS 9.2 or greater is recommended for the fullest function of the rsubmit statement in SAS.

FAQ last updated 02 September 2012. Not every item is reviewed at each update. Please register with support.eventstudy.com to view other valuable information that we post in the forums there.

© 1999-2012 Cowan Research LC                             Site Search     Support     Sales     Home     Privacy    Legal