Software Capabilities
Q: Does Eventus include features for long-horizon event studies? Answer: Yes, Eventus 8 offers buy-and-hold returns, a skewness-adjusted test, calendar-time portfolio regressions, the Regression Across Time and Securities approach inspired by Ibbotson (IRATS), a cross-sectional test, bootstrapped versions of the skewness-adjusted and several other tests. The Fama-French three-factor model, Fama-French-momentum four-factor model, and user-designed custom-factor models can be used with IRATS, calendar-time portfolio regressions and traditional two-step estimation and testing.
Q: The CUSIPs that I have are as of the event date (events occur over many years). Given that the CUSIPs of some firms have changed over time, will the CUSIPERM option give me the correct PERMNO? Answer: Yes, the design of CUSIPERM takes into account the fact that CUSIPs change over time. The PermnoUp program, which is run at Eventus installation and CRSP update installation, builds a conversion database by searching through the CRSP history of CUSIPs for each PERMNO. There should be no danger of obtaining an incorrect PERMNO for a given CUSIP. As the CRSP Data Description Guide states, “No header or historical CUSIPs are reused on our files.” Thus, each CUSIP is associated with a unique PERMNO. You may find that CUSIPERM fails to come up with any PERMNO in a few cases. There are two possible reasons for this. First, another database, from which the researcher obtained the CUSIP, may list the firm under a different CUSIP than CRSP does. This happens nontrivially often with a well-known financial statement database. In this case, one can manually search for the correct PERMNO
Error Messages
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. 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 DocumentsMy SAS Files9.2) to the next user’s My SAS Files folder: 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 FilesSASSAS 9.2 and C:Program FilesSASSAS 9.2nlsen. 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 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.
What’s going on?
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 while logged in as that user. You will need to repeat this copying process every time you install an Eventus update.
/* 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.
Tips and Tricks
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 theEvtStudy 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 optionOVERLAP and appropriate specifications of the REQUEST statement options EST and ESTLEN.
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.
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;
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 FilesFile Name 1.txt’; * Move date back 31 trading days; Eventus; * Combine shifted and original dates into a new request file in SAS data set form; data request_event1; * Print the request file for visual inspection; proc print data=request_event1; * Use the new request file to run the first event study; Eventus; * Set up the request file for the second event study; filename request ‘C:My Request FilesFile Name 2.txt’; data request_event2; * Run the second event study; Eventus; 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.
Eventus;
DateConv outsas=work.temp1;
DateConv insas=work.temp1 datefmt=crsp shift1=-31 outsas=work.temp2;
merge temp1 temp2(rename=(eventdat=estend));
by permno;
run;
id permno;
format eventdat estend yymmddn8.;
run;
Request insas=work.request_event1 est=specific;
EvtStudy;
Eventus;
DateConv outsas=work.temp3;
merge temp3 temp2(rename=(eventdat=estend));
by permno;
run;
Request insas=work.request_event2 est=specific;
EvtStudy;
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 * Use the TWIN option and Dateconv statement to convert both dates (registration and offering) to CRSP trading day numbers: filename request ‘C:My Request FilesFile Name.txt’; * 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; * 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; * 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; Item created 11 February 2004.
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
Eventus twin;
DateConv cusiperm outsas=work.temp1 id=id;
DateConv insas=work.temp1 datefmt=crsp shift2=+150 outsas=work.request id=id;
modify request;
rename crspday1=crspday crspday2=crspest;
quit;
title ‘Registration Date — Estimation Period is Offering Date(+31,+150)
Request insas=work.request datefmt=crsp est=specific estlen=120 id=id;
EvtStudy;
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.;
datalines;
19891212 19900111
run;
Eventus GetData;
IndexData insas=request autodate outsas=some_ew_mkt_returns;
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:myprojectrequest.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:myprojectrequest.dat’; Eventus getdata;
Eventus getdata;
DateConv ndays=1 outsas=work.request;
Request insas=work.request datefmt=crsp shift1=-31 ndays=1;
Returns;
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.
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; proc print data=volatile; Notes on above:
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;
id item permno;
var ownvar;
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 Eventus; data se; proc print data=se; Notes on above
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.
Request;
EvtStudy OutSAS=work.params Package=p;
set params;
s_alpha=_rmse_*sqrt(1/Ti+rmbar**2/ssrm);
s_beta=_rmse_/sqrt(ssrm);
run;
id permno; /* change permno to another identifier if applicable */
var alpha s_alpha beta s_beta;
run;
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, tosimplify 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 theOutWin=work.demo option, but not the SERIAL and STDCSECT options. Then run the following statements: data demo; proc summary data=demo; proc print; The weighted average pwmean is equal to the corresponding precision-weighted cumulative average abnormal return in the original event study output.
set demo
w1=sqrt(CAR_Weight1);
run;
weight w1;
var winar1;
outsas out=pwcaar mean=pwmean;
run;
var pwmean;
run;
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.
Compatibility with Other Vendors
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.
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.
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.