EViews Training Dummy Variables Note Data and workfiles

EViews Training Dummy Variables Note: Data and workfiles for this tutorial are provided in: Ø Data: Data. xlsx Ø Results: Results. wf 1 Ø Practice Workfile: Data. wf 1

Data and Workfile Documentation • Data. wf 1 and Data. xlsx consist of two pages (tabs) with the following data: • Workfile Page: Dated (Data. xlsx tab Dated): daily, from Jan 1, 1950 – August 2, 2012 ü Volume – S&P 500 volume (source: St. Louis Federal Reserve Bank, FRED Database) ü Volume 1 - percent change in S&P 500 Volume ü Return – S&P 500 return (source: St. Louis Federal Reserve Bank, FRED Database) • Workfile Page: Cross_Section (Data. xlsx tab Cross_Section) data on 526 individuals ü wage – wage per hour (in dollars) ü educ – number of years of education ü exper – experience, number of years ü female – dummy variable, equal to 1 if female, 0 otherwise ü married – dummy variable, equal to 1 if married, 0 otherwise * These data are from Wooldridge, Introductory Econometrics (4 th Edition). 2

Data Series Objects: Series and Groups • It is fairly easy to create dummy variables in EViews by using sample commands or a number of EViews functions: ü smpl ü @recode ü @date ü @expand • This tutorial demonstrates how to create: ü ü Dummy Variables using samples Dummy Variables using the @recode function Date Dummy Variables using the @date function Categorical Dummy Variables using the @expand function 3

Creating Dummy Variables Using Samples

Creating Dummy Variables Using Samples: Example 1 • The easiest way to create dummy variables in EViews is by using samples (smpl command). • Let’s illustrate a few examples using the Dated page in Workfile Data. wf 1. • Suppose you would like to create a dummy variable equal to 1, if return>0. 2, and 0 otherwise. Dummies with samples: Example 1 1. Open Data. wf 1 workfile. Click on the Dated page. 2. Type in the command window: smpl if return>0. 2 series dummy 1=1 smpl if return<=0. 2 series dummy 1=0 3. Press Enter after each command line entry. 5

Creating Dummy Variables Using Samples: Example 1 (cont’d) • The original series (return) and the new dummy variable are both shown here. Original series Dummy Variable 6

Creating Dummy Variables Using Samples: Example 2 • Now suppose you would like to create a dummy variable equal to 1, if return>0. 3, or return<=-0. 3, and 0 otherwise. Dummies with samples: Example 2 1. Click on Dated workfile page. Type in the Original Series Dummy Variable command window: smpl if return>0. 3 or return<=-0. 3 series dummy 2=1 smpl if return>-0. 3 and return<0. 3 series dummy 2=0 2. Press Enter after each command line. 7

Creating Dummy Variables Using @recode function

Creating Dummy Variables Using @recode • Another way to create dummy variables in EViews is by using @recode function. Function Description @recode(s, x, y) Returns x if condition s is true; otherwise it returns y 9

Creating Dummy Variables Using @recode: Example 1 • Suppose you want to create a dummy equal to 1 if return<=0. 2, 0 otherwise. Dummies with @recode: Example 1 1. Click on the Dated workfile page. Let’s first set the sample equal to the entire range by typing in the command window smpl @all. Now, type in the command window: series dummy 4=@recode(return<=0. 2, 1, 0) 2. Press Enter. Alternatively: 1. Click on the top menu bar of and select Quick → Generate Series. 2. The Generate Series by Equation dialog box opens up. Specify here your dummy expression (as shown here). 3. Click OK. 10

Creating Dummy Variables Using @recode: Example 1 (cont’d) • The original series (return) and the new dummy variable are both shown here. Original series Dummy Variable 11

Creating Dummy Variables Using @recode: Example 2 • Create a dummy variable equal to 1 if -0. 2<return<1, 0 otherwise. Dummies with @recode: Example 2 1. Click on Dated workfile page. Type in the command window: series dummy 5=@recode(return>-0. 2 and return<1, 1, 0) 2. Press Enter. Original Series Dummy Variable 12

Creating Dummy Variables Using @recode: Example 3 • Create a dummy variable equal to 1 if return<=-1. 2 or return>=1, 0 otherwise. Dummies with @recode: Example 3 1. Click on Dated workfile page. Type in the command window: series dummy 6=@recode(return<=-1. 2 or return>=1, 1, 0) 2. Press Enter. Original Series Dummy Variable 13

Creating Dummy Variables Using @recode: Example 4 • Suppose you would like to create two new series by separating an existing series (return) as follows; ü series 1 collects values of return for which -0. 3<return<0. 3 ü series 2 collects values of return for which return<=-0. 3 or return>=0. 3 Dummies with @recode: Example 4 1. Click on Dated workfile page. Type in the command window: series 1=@recode(return>-0. 3 and return<0. 3, return, 0) series 2=@recode(return<=-0. 3 or return>0. 3, return, 0) 2. Press Enter after each command line. 14

Creating Dummy Variables Using @recode: Example 4 (cont’d) • The original series (return) and the two new dummy variables are shown here. Original series Series 1 Series 2 15

Creating Dummy Variables Using @recode: Example 5 • Let’s create a total return index from daily S&P 500 returns. Dummies with @recode: Example 5 1. Click on Dated workfile page. Type in the command window: series index=@recode(@trend=0, 100, index(-1)*(1+return/100)) 2. Press Enter. Original Series Index 16

Creating Dummy Variables Using @recode: Example 6 • Lastly, suppose you want to create a series that excludes outliers from the return series in the previous example. • Specifically, suppose that the new series excludes the highest and the lowest 2. 5% values of returns. Dummies with @recode: Example 6 1. Click on Dated workfile page. Type in the command window: series no_outlier=@recode(return>@quantile(return, 0. 025) and return<@quantile(return, 0. 975), return, na) 2. Press Enter. 17

Creating Dummy Variables Using @recode: Example 6 (cont’d) • The original series (return) and the new series are shown here. Original series No Outlier 18

A Few Notes on Simple Dummy Variables • For simple dummies, you don’t need to use smpl or @recode. • You can create them simply by defining the logical expression directly in the command window, as shown in the following examples. • However, you may have to use smpl or @recode for more complex cases. 19

A few Notes on Simple Dummy Variables: Example 1 • Create a dummy equal to 1 if return<=0, and 0 otherwise. Simple Dummies: Example 1 1. Click on Dated workfile page. Type in the command window: Original Series Dummy Variable series d 1=return<=0 2. Press Enter. 20

A few Notes on Simple Dummy Variables: Example 2 • Create a dummy equal to 1 if return<=-0. 5 or return>=0. 1, and 0 otherwise. Simple Dummies: Example 2 1. Click on Dated workfile page. Type in the command window: series d 2=return<=-0. 5 or return>=0. 1 2. Press Enter. Original Series Dummy Variable 21

Date Dummy Variables

Creating Date Dummies • Dated dummies can be created by using @recode and @date or @dateval. • For more details on date functions, see tutorial on Date Functions. Main Functions Function Description @date Returns the date associated with each observation @dateval Returns the date associated with a text representation of a date @year Returns the year in which each observation begins @quarter Returns the quarter of the year in which each observation begins @month Returns the month of the year in which each observation begins @day Returns the day of the month in which each observations begins @weekday Returns the day of the week 23

Creating Date Dummies: Example 1 • Suppose you want to create a dummy variable equal to 1 for all dates after 1995/03/15 and 0 otherwise. Date Dummies: Example 1 1. Click on the Dated workfile page. Now, type in the command window: series dumdate 1=@recode(@date>@dateval("1995/3/15"), 1, 0) 2. Press Enter. Dummy Variable Alternatively, without @recode: 1. Type in the command window: series dumdate 1=@date>@dateval("1995/3/15") 2. Press Enter. 24

Creating Date Dummies: Example 2 • Create a dummy variable equal to 1 for all dates before April 1979 and after February 1994. Date Dummies: Example 2 1. Click on the Dated workfile page. Type in the command window: series dumdate 2=@recode(@date<@dateval("1979 m 4") or @date>@dateval("1994 m 2"), 1, 0) 2. Press Enter (please type the command in one line). Alternatively, without @recode: 1. Type in the command window: series dumdate 2=@date<@dateval("1979 m 4") or @date>@dateval("1994 m 2") 2. Press Enter (please type the command in one line). 25

Creating Date Dummies: Example 2 (cont’d) • A graph of the new dummy variable is shown here. • As you can see, it assumes a value of 1 prior to April 1979 and post February 1994. Dummy Variable 26

Creating Date Dummies: Example 4 • Dated dummies can also be created using @year, @month, @day date functions. • Create a dummy equal to 1 if the month is January or the day of the week is Friday. Date Dummies: Example 4 1. Click on the Dated workfile page. Now, type in the command window: series dumdate 4=@recode(@month=1 or @weekday=5, 1, 0) Press Enter. 2. Dummy Variable Alternatively, without @recode: 1. Type in the command window: series dumdate 4=@month=1 or @weekday=5 2. Press Enter. 27

Creating Date Dummies: Example 5 • Create a dummy equal to 1 for all years after 1994 if the month is January or the day of the week is Friday. Date Dummies: Example 5 1. Click on the Dated workfile page. Now, type in the command window: series dumdate 5=@recode(@year>1994 and (@month=1 or @weekday=5), 1, 0) 2. Press Enter. Alternatively, without @recode: 1. Type in the command window: series dumdate 5=@year>1994 and (@month=1 or @weekday=5) 2. Press Enter. 28

Creating Date Dummies: Example 6 • Create a dummy variable equal to 1 for all months when there is a presidential election. Date Dummies: Example 6 1. Click on the Dated workfile page. Now, type in the command window: smpl @all series dumpres=0 smpl if @mod(@year, 4)=0 and @month=11 series dumpres=1 smpl @all 2. Dummy Variable Press Enter after each command line. 29

Dummy Variables in Non-Dated Workfiles

Dummies in Non-dated Workfiles • You can follow the methodology used in “Dated Dummies” to create dummies in non-dated workfiles. • Simply use @obsnum (instead of @date) to create the dummy variables. 31

Creating Dummies in Non-Dated Workfiles: Example 1 • In the Cross-Section page, create a dummy variable equal to 1 after the 5 th observation, and 0 otherwise. Dummies in non-Dated Workfiles: Example 1 1. Click on the Cross-Section workfile page. Now, type in the command window: series dum 1=@recode(@obsnum>5, 1, 0) 2. Dummy Variable Press Enter. Alternatively, without @recode: 1. Type in the command window: series dum 1=@obsnum>5 2. Press Enter. 32

Creating Dummies in Non-Dated Workfiles: Example 2 • In the Cross-Section page, create a dummy variable equal to 1 for all the observations between the 7 th and 12 th observation Dummies in non-Dated Workfiles: Example 2 1. Click on the Cross-Section workfile page. Now, type in the command window: series dum 2=@recode((@obsnum>=7 and @obsnum<=12), 1, 0) 2. Press Enter. Dummy Variable Alternatively, without @recode: 1. Type in the command window: series dum 2=@obsnum>=7 and @ obsnum<=12 2. Press Enter. 33

Creating Dummy Variables Using @expand function

Creating Categorical Dummies • Categorical dummies can be easily created by using @expand function. Function Description @expand Allows you to create a group of dummy variables by expanding out one or more series into individual categories 35

Creating Dummy Variables using @expand: Example 1: Categorical Dummies • Let’s create a group of series as follows: ü One series with 1 if female and 0 if male ü One series with 1 if male and 0 if female Dummies using @expand: Example 1 1. Click on the Cross-Section workfile page. Type in the command window: group g 1 @expand(female) 2. Press Enter. • The group is shown here with the two series separating males from females. 36

Creating Dummy Variables using @expand: Example 2: Categorical Dummies • Now let’s create a new group of series as follows: ü One series containing 1 if “male” and “single”. ü One series containing 1 if “male” and “married”. ü One series containing 1 if “female” and “single”. ü One series containing 1 if “female” and “married”. Dummies using @expand: Example 2 1. Click on the Cross-Section workfile page. Type in the command window: group g 2 @expand(female, married) 2. Press Enter. 37

Creating Dummy Variables using @expand: Example 3: Categorical Dummies • Now let’s create a new group of series as follows: ü One series equal to educ (years of education) if male (female=0). ü One series equal to educ if female (female =1). Dummies using @expand: Example 3 1. Click on the Cross-Section workfile page. Type in the command window: group g 3 educ*@expand(female) 2. Press Enter. • The group is shown here with the two series showing the years of education for males separately from years of education for females. 38

Creating Dummy Variables using @expand: Example 4: Date Dummies • Dummies can also be created by using @expand in conjunction with other date functions (@year, @month, @day, etc. ). • For example, suppose you would like to create a dummy variable for each day of the week. Dummies using @expand: Example 4 1. Click on the Dated workfile page. Type in the command window: group g 1 @expand(@weekday) 2. Press Enter. 39

Creating Dummy Variables using @expand: Example 5: Date Dummies • Suppose that now you would like to create a dummy variable for each year. Dummies using @expand: Example 5 1. Click on the Dated workfile page. Type in the command window: group g 2 @expand(@year) 2. Press Enter. 40

Dummy Variables in Regressions

Dummies in Regressions: Example 1 • In EViews you can use dummy variable expressions in regressions without having to first create and save the dummies. • Suppose you would like to estimate a regression of return on volume 1 and a dummy variable equal to 1 for all dates after 1994/12/2. Dummies in Regressions: Example 1 1. Click on the Dated workfile page. Type in the command window: equation eq 1. ls return c volume 1 @date>@dateval("1994/12/2") 2. Press Enter (type the command in one line). Alternatively: 1. Select Quick → Estimate Equation from the top menu bar. 2. The Equation Estimation box opens up. Specify here your equation (as shown in the figure) 3. Click OK. 42

Dummies in Regressions: Example 1 (cont’d) • The estimation output is shown here. • As you can see EViews estimates the coefficient of the dummy variable directly without us having to create and save the date dummy first. *Note: see tutorial on Basic Estimation for details on regression analysis in EViews. 43

Dummies in Regressions: Example 2 • Now suppose you would like to estimate a regression of return on volume 1 and a dummy variable equal to 1 for all Januaries since 1994/12/2. Dummies in Regressions: Example 2 1. Click on the Dated workfile page. Type in the command window: equation eq 2. ls return c volume 1 (@date>@dateval("1994/12/2") and @month=1) 2. Press Enter. • Note that there are no spaces in the logical expression: ü @month=1 is correct ü @month = 1 is not correct 44

Dummies in Regressions: Example 3 • Now let’s carry out a regression in the Cross_Section workfile page. • Suppose we want to regress wage on exper, educ and four dummy variables created by @expand(female, married). Dummies in Regressions: Example 3 1. Click on the Cross_Section workfile page. Type in the command window: equation eq 1. ls wage exper educ @expand(female, married) 2. Press Enter (type command in one line). 45

Dummies in Regressions: Example 3 (cont’d) • In the previous example, notice that the constant was not included. • If you include a constant, then EViews will be unable to estimate the regression and return an error message because of perfect collinearity (the dummy variable trap). Dummies in Regressions: Example 3 1. Type in the command window: equation eq 1. ls wage c exper educ @expand(female, married) 2. Press Enter (type command in one line). • You will receive an error message (shown here). • In order to estimate the regression with a constant, you should exclude one of the dummies. 46

Dummies in Regressions: Example 3 (cont’d) • Let’s exclude one of the dummies. You can use either one of the following commands: ü @dropfirst (drops the first dummy). ü @droplast (drops the last dummy). Dummies in Regressions: Example 3 1. Type in the command window: equation eq 2. ls wage c exper educ @expand(female, married, @dropfirst) 2. Press Enter (type command in one line). 47
- Slides: 47