510 likes | 622 Views
Learn how to create dummy variables in EViews using samples, @recode function, @date function, and @expand function. Step-by-step examples provided for easy understanding. Enhance your econometric skills with this detailed tutorial.
E N D
EViews Training Dummy Variables Note: Data and workfiles for this tutorial are provided in: • Data: Data.xlsx • Results: Results.wf1 • Practice Workfile: Data.wf1
Data and Workfile Documentation * These data are from Wooldridge, Introductory Econometrics (4th Edition). • Data.wf1 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) • Volume1- percent change in S&P500 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
Data Series Objects: Series and Groups • It is fairly easy to create dummy variables in EViews by using sample commandsor a number of EViews functions: • smpl • @recode • @date • @expand • This tutorial demonstrates how to create: • Dummy Variables using samples • Dummy Variables using the @recodefunction • Date Dummy Variables using the @datefunction • Categorical Dummy Variables using the @expandfunction
Creating Dummy Variables Using Samples
Creating Dummy Variables Using Samples: Example 1 Dummies with samples: Example 1 • Open Data.wf1workfile. Click on the Dated page. • Type in the command window:smplif return>0.2series dummy1=1smplif return<=0.2series dummy1=0 • Press Enter after each command line entry. • The easiest way to create dummy variables in EViews is by using samples (smplcommand). • Let’s illustrate a few examples using the Dated page in Workfile Data.wf1. • Suppose you would like to create a dummy variable equal to 1, if return>0.2, and 0 otherwise.
Creating Dummy Variables Using Samples: Example 1 (cont’d) • The original series (return) and the new dummy variable are both shown here. Original seriesDummy Variable
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 • Click on Dated workfile page. Type in the command window: smpl if return>0.3 or return<=-0.3 series dummy2=1 smpl if return>-0.3 and return<0.3 series dummy2=0 • Press Enter after each command line. Original SeriesDummy Variable
Creating Dummy Variables Using @recode function
Creating Dummy Variables Using @recode • Another way to create dummy variables in EViews is by using @recode function.
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 • Click on the Datedworkfile 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 dummy4=@recode(return<=0.2,1,0) • Press Enter. Alternatively: • Click on the top menu bar of and select Quick → Generate Series. • The Generate Series by Equation dialog box opens up. Specify here your dummy expression (as shown here). • Click OK.
Creating Dummy Variables Using @recode: Example 1 (cont’d) • The original series (return) and the new dummy variable are both shown here. Original seriesDummy Variable
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 • Click on Dated workfile page. Type in the command window: series dummy5=@recode(return>-0.2 and return<1,1,0) • Press Enter. Original SeriesDummy Variable
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 • Click on Dated workfile page. Type in the command window: series dummy6=@recode(return<=-1.2 or return>=1,1,0) • Press Enter. Original SeriesDummy Variable
Creating Dummy Variables Using @recode: Example 4 • Suppose you would like to create two new series by separating an existing series (return) as follows; • series1 collects values of return for which -0.3<return<0.3 • series2 collects values of return for which return<=-0.3 or return>=0.3 Dummies with @recode: Example 4 • Click on Dated workfile page. Type in the command window: series series1=@recode(return>-0.3 and return<0.3,return,0) series series2=@recode(return<=-0.3 or return>0.3,return,0) • Press Enterafter each command line.
Creating Dummy Variables Using @recode: Example 4 (cont’d) • The original series (return) and the two new dummy variables are shown here. Original seriesSeries 1Series 2
Creating Dummy Variables Using @recode: Example 5 • Let’s create a total return index from daily S&P500 returns. Dummies with @recode: Example 5 • Click on Dated workfile page. Type in the command window: series index=@recode(@trend=0,100, index(-1)*(1+return/100)) • Press Enter. Original SeriesIndex
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 • 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) • Press Enter.
Creating Dummy Variables Using @recode: Example 6 (cont’d) • The original series (return) and the new series are shown here. Original seriesNo Outlier
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.
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 • Click on Dated workfile page. Type in the command window: series d1=return<=0 • Press Enter. Original SeriesDummy Variable
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 • Click on Dated workfile page. Type in the command window: series d2=return<=-0.5 or return>=0.1 • Press Enter. Original SeriesDummy Variable
Creating Date Dummies Main Functions • Dated dummies can be created by using@recode and @date or @dateval. • For more details on date functions, seetutorial on Date Functions.
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 • Click on the Datedworkfile page. Now, type in the command window: series dumdate1=@recode(@date>@dateval("1995/3/15"),1,0) • Press Enter. Dummy Variable Alternatively, without @recode: • Type in the command window: series dumdate1=@date>@dateval("1995/3/15") • Press Enter.
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 • Click on the Datedworkfile page. Type in the command window: series dumdate2=@recode(@date<@dateval("1979m4") or @date>@dateval("1994m2"),1,0) • Press Enter (please type the command in one line). Alternatively, without @recode: • Type in the command window: series dumdate2=@date<@dateval("1979m4") or @date>@dateval("1994m2") • Press Enter(please type the command in one line).
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
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 • Click on the Datedworkfile page. Now, type in the command window: series dumdate4=@recode(@month=1 or @weekday=5,1,0) • Press Enter. Dummy Variable Alternatively, without @recode: • Type in the command window: series dumdate4=@month=1 or @weekday=5 • Press Enter.
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 • Click on the Datedworkfile page. Now, type in the command window: series dumdate5=@recode(@year>1994 and (@month=1 or @weekday=5),1,0) • Press Enter. Alternatively, without @recode: • Type in the command window: series dumdate5=@year>1994 and (@month=1 or @weekday=5) • Press Enter.
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 • Click on the Datedworkfile 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 • Press Enter after each command line. Dummy Variable
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.
Creating Dummies in Non-Dated Workfiles:Example 1 • In the Cross-Section page, create a dummy variable equal to 1 after the 5th observation, and 0 otherwise. Dummies in non-Dated Workfiles: Example 1 • Click on the Cross-Sectionworkfile page. Now, type in the command window: series dum1=@recode(@obsnum>5,1,0) • Press Enter. Dummy Variable Alternatively, without @recode: • Type in the command window: series dum1=@obsnum>5 • Press Enter.
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 7th and 12th observation Dummies in non-Dated Workfiles: Example 2 • Click on the Cross-Sectionworkfile page. Now, type in the command window: series dum2=@recode((@obsnum>=7 and @obsnum<=12),1,0) • Press Enter. Dummy Variable Alternatively, without @recode: • Type in the command window: series dum2=@obsnum>=7 and @ obsnum<=12 • Press Enter.
Creating Dummy Variables Using @expand function
Creating Categorical Dummies • Categorical dummies can be easily created by using @expand function.
Creating Dummy Variables using @expand: Example 1: Categorical Dummies Dummies using @expand: Example 1 • Click on the Cross-Sectionworkfile page. Type in the command window: group g1 @expand(female) • Press Enter. • The group is shown here with the two series separating males from females. • 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
Creating Dummy Variables using @expand: Example 2: Categorical Dummies Dummies using @expand: Example 2 • Click on the Cross-Sectionworkfile page. Type in the command window: group g2 @expand(female, married) • Press Enter. • 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 1if “female” and “married”.
Creating Dummy Variables using @expand: Example 3: Categorical Dummies Dummies using @expand: Example 3 • Click on the Cross-Sectionworkfile page. Type in the command window: group g3 educ*@expand(female) • 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. • 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).
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 • Click on the Datedworkfile page. Type in the command window: group g1 @expand(@weekday) • Press Enter.
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 • Click on the Datedworkfile page. Type in the command window: group g2 @expand(@year) • Press Enter.
Dummies in Regressions: Example 1 Dummies in Regressions: Example 1 • Click on the Datedworkfile page. Type in the command window: equation eq1.ls return c volume1 @date>@dateval("1994/12/2") • Press Enter (type the command in one line). Alternatively: • Select Quick → Estimate Equation from the top menu bar. • The Equation Estimation box opens up. Specify here your equation (as shown in the figure) • Click OK. • 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 returnon volume1 and a dummy variable equal to 1 for all dates after 1994/12/2.
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.
Dummies in Regressions: Example 2 Dummies in Regressions: Example 2 • Click on the Datedworkfile page. Type in the command window: equation eq2.ls return c volume1 (@date>@dateval("1994/12/2") and @month=1) • Press Enter. • Note that there are no spaces in the logical expression: • @month=1 is correct • @month = 1 is not correct • Now suppose you would like to estimate a regression of returnon volume1 and a dummy variable equal to 1 for all Januaries since 1994/12/2.
Dummies in Regressions: Example 3 • Now let’s carry out a regression in the Cross_Sectionworkfile page. • Suppose we want to regress wage on exper, educ and four dummy variables created by @expand(female,married). Dummies in Regressions: Example 3 • Click on the Cross_Sectionworkfile page. Type in the command window: equation eq1.ls wage expereduc @expand(female, married) • Press Enter (type command in one line).
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 • Type in the command window: equation eq1.ls wage c expereduc @expand(female, married) • 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.
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 • Type in the command window: equation eq2.ls wage c expereduc @expand(female, married,@dropfirst) • Press Enter (type command in one line).