Dummy Variables

For technical questions regarding estimation of single equations, systems, VARs, Factor analysis and State Space Models in EViews. General econometric questions and advice should go in the Econometric Discussions forum.

Moderators: EViews Gareth, EViews Moderator

EViews Gareth
Fe ddaethom, fe welon, fe amcangyfrifon
Posts: 13294
Joined: Tue Sep 16, 2008 5:38 pm

Dummy Variables

Postby EViews Gareth » Tue Mar 08, 2011 10:30 am

We get asked questions on dummy variable creation in EViews fairly regularly, so I thought I'd write up a quick all-inclusive guide.
Simple Dummies
The easiest way to create a dummy variable is with the @recode function. @recode lets you specify a logical test, and the values a variable should take if that test is true, or if it is false:

Code: Select all

series dummy1 = @recode(X>0.5, 1, 0)

This will create a series called dummy1 that is equal to 1 whenever the series X is greater than 0.5, and equal to 0 otherwise. You can use the AND or OR operators to make more complicated logical tests:

Code: Select all

series dummy2 = @recode(X>=0.5 and X<=1, 1, 0)

will create a dummy that is equal to 1 whenever X is between 0.5 and less than 1.

Date Dummies
You can use @recode to create dummy variables based upon dates too. In dated workfiles there are a collection of keywords you can use to refer to the date of each observation. The first of these is the @date keyword that returns the date number associated with each observation's date. You can couple this with the @dateval command to create a date number based upon the text representation of a date, in order to create dummy variables based upon dates:

Code: Select all

series dummy3 = @recode(@date>@dateval("2010/03/02"), 1, 0)

This will create a dummy variable, dummy3 that is equal to 1 for all dates after 2010/03/02.

You can extend this with ANDs and ORs too:

Code: Select all

series dummy4 = @recode(@date>@dateval("2010/03/02") and @date<@dateval("2010/06/02"), 1, 0)

creates a dummy variable equal to 1 between 2010/03/02 and 2010/06/02.

Code: Select all

series dummy5 = @recode(@date<@dateval("1980") or @date>@dateval("1990"), 1, 0)

creates a dummy equal to 1 for all dates before 1980 or after 1990.

You can use other date keywords to create dummies too. The @year specifies the year part of each observations. Thus:

Code: Select all

series dummy6 = @recode(@year>1990, 1, 0)

creates a dummy equal to 1 for all observations which lie after 1990.

Code: Select all

series dummy7 = @recode(@month=1, 1, 0)

creates a dummy equal to 1 for all observations in January.

Code: Select all

series dummy8 = @recode(@weekday=3, 1, 0)

creates a dummy equal to 1 for all observations on a Wednesday.

Dummies in Equations
Note you do not have to actually create the dummy series inside the workfile to use dummy variables in an equation, rather you can enter the dummy expression directly in the equation specification, either via command:

Code: Select all

equation eq1.ls Y C X @date>@dateval("1990")

or via dialog:
Image

Note that in both cases you should not have spaces in the logical expression. @year>1990 is fine, but @year > 1990 is not.

Categorical Dummies
If you have a categorical variable and wish to create dummy variables for each unique values in that variable, you can do so easily using the @expand command. For example, say you have a variable called "Sex" that is either "M" or "F", you could create an equation with the following specification:
Image
which would give the following output:
Image

Note that by default the @expand keyword will create a full set of dummies, thus you should not include a constant in your equation (since you'll create a singular matrix problem).

Alternatively, @expand lets you drop certain values from the expansion to avoid the singularity problem. You can use @dropfirst or @droplast to drop the first or the last categorisation. Thus:

Code: Select all

Y C X @expand(sex, @dropfirst)

Would regress Y on a constant, X and SEX=M, and not SEX=F.

Fixed Effect Dummies
Fixed effects in panel estimation can be thought of as having a dummy variable for each cross-section. In most cases you don't need to worry about that, since EViews will add the fixed effects for you as an option during estimation. But sometimes you might want to create the dummy variables yourself. To do so is relatively simple, using @expand. Simply include this:

Code: Select all

@expand(@crossid)

in your specification to include cross-section fixed effects. For period fixed effects, simply include:

Code: Select all

@expand(@obsid)


Remember to be careful of the dummy variable trap. You might want to drop one of the dummies, as outlined above.
Follow us on Twitter @IHSEViews

esse0001
Posts: 4
Joined: Mon Mar 14, 2011 12:44 pm

Re: Dummy Variables

Postby esse0001 » Mon Mar 14, 2011 1:06 pm

Dear there

Thanks for your help first.

I want to create seasonal dummies for month 8 and month 9( August and September) together for my time series data. When I use the formula m8=@seas (8) or m9=@seas(9) it creates me individually but not together. on the other hand when I use the formula sea_dummy = @seas(8) and then at seas(9), it does not create to together rather only it accepts the last creating dummies.

Could please help me how I can create dummies for month 8 and month 9 together? (with one spreadsheet) and make the reaining months 0

best regards
Menge

EViews Gareth
Fe ddaethom, fe welon, fe amcangyfrifon
Posts: 13294
Joined: Tue Sep 16, 2008 5:38 pm

Re: Dummy Variables

Postby EViews Gareth » Mon Mar 14, 2011 1:10 pm

Following the Date Dummies section above:

Code: Select all

series dummy = @recode(@month=8 or @month=9, 1, 0)
Follow us on Twitter @IHSEViews

trinhndt
Posts: 8
Joined: Mon Mar 07, 2011 11:46 pm

Re: Dummy Variables

Postby trinhndt » Wed Mar 23, 2011 7:38 am

EViews Gareth wrote:Following the Date Dummies section above:

Code: Select all

series dummy = @recode(@month=8 or @month=9, 1, 0)


Hi Gareth,

How can we set Year dummy variables in panel workfile. Year range is 2006 to 2009 and I choose 2006 is based year. So, what do I set year dummy in this case?
Thanks for your support!

EViews Gareth
Fe ddaethom, fe welon, fe amcangyfrifon
Posts: 13294
Joined: Tue Sep 16, 2008 5:38 pm

Re: Dummy Variables

Postby EViews Gareth » Wed Mar 23, 2011 7:53 am

I'm not sure I understand the question. If you just want dummies for each year, aren't you just doing period fixed effects?
Follow us on Twitter @IHSEViews

trinhndt
Posts: 8
Joined: Mon Mar 07, 2011 11:46 pm

Re: Dummy Variables

Postby trinhndt » Wed Mar 23, 2011 7:33 pm

EViews Gareth wrote:I'm not sure I understand the question. If you just want dummies for each year, aren't you just doing period fixed effects?


Hi Gareth, I mean that I perform data with panel workfile form. So, I want to test whether year variable effects to dependent variable if I observe in 4 years from 2006 to 2009. How can I code year dummy variable in Eviews for this test?

EViews Gareth
Fe ddaethom, fe welon, fe amcangyfrifon
Posts: 13294
Joined: Tue Sep 16, 2008 5:38 pm

Re: Dummy Variables

Postby EViews Gareth » Wed Mar 23, 2011 9:01 pm

Code: Select all

if @year=2006 or @year=2009

etc...?
Follow us on Twitter @IHSEViews

oybar
Posts: 2
Joined: Fri Mar 25, 2011 3:03 am

Re: Dummy Variables

Postby oybar » Fri Mar 25, 2011 3:18 am

Hi!

Thanks for the guide Gareth! I was wondering on how to construct a dummy variable representing several periods of a sample period.
For. ex i want a dummy variable to represent the period from "1980/01/01 to 1983/09/01" and the period from "1991/04/01 to 1993/01/01"

I have tried this code: series dummy4 = @recode(@date>@dateval("1980/01/01") and @date<@dateval("1983/09/01"), and @date>@dateval("1991/04/01") and @date<@dateval("1993/01/01"),1, 0)

Best,

Oystein

EViews Gareth
Fe ddaethom, fe welon, fe amcangyfrifon
Posts: 13294
Joined: Tue Sep 16, 2008 5:38 pm

Re: Dummy Variables

Postby EViews Gareth » Fri Mar 25, 2011 7:51 am

Code: Select all

 series dummy4 = @recode((@date>@dateval("1980/01/01") and @date<@dateval("1983/09/01")) or (@date>@dateval("1991/04/01") and @date<@dateval("1993/01/01")),1, 0)
Follow us on Twitter @IHSEViews

rogierhanselaar
Posts: 6
Joined: Sat Jun 11, 2011 10:29 am

Re: Dummy Variables

Postby rogierhanselaar » Wed Jun 15, 2011 5:27 am

Hello there,

I have had a peak at the forum and it has helped me a lot already. Currently I'm still stuck with the following issue: I want to run a regression on a series that consists of observations made every hour of every day for 19 years. I suspect hourly effects and weekly effects. How can I best create dummies to check the relevance of these effects? I'd appreciate your advice.

Best,
Rogier

EViews Gareth
Fe ddaethom, fe welon, fe amcangyfrifon
Posts: 13294
Joined: Tue Sep 16, 2008 5:38 pm

Re: Dummy Variables

Postby EViews Gareth » Wed Jun 15, 2011 8:04 am

Assuming you have your workfile structured as an hourly workfile, then you can add hourly dummies to your equation with:

Code: Select all

@expand(@hour, @dropfirst)

Which will create dummy variables for every hour (apart from the first).

You'll have to define what you mean by weekly dummies.
Follow us on Twitter @IHSEViews

jlbrillet
Posts: 49
Joined: Mon Feb 16, 2009 6:03 am

Re: Dummy Variables

Postby jlbrillet » Wed Jun 15, 2011 9:02 am

Hello from Paris,

In my experience I find it modre convenient to create a time variable called, let us say, t, with rhe value of the year. For quarterly models I start with the year for the 1st quarter, and increment by 0.25 for each quarter (this does not work if 1/periocity is not a decimal fraction, as with months).

Using this technique:

1 - I can manage logical dummies easily, like :

(t>=1990.25)*(t=<2000) meaning from 1990Q2 to 200Q4;

2 - used in a regression, the coefficient of t represents a yearly trend (like yearly labor productivity growth). No need to multiply by 4.

Jean Louis Brillet.

ParisEllen
Posts: 1
Joined: Sat May 12, 2012 3:47 am

Re: Dummy Variables

Postby ParisEllen » Sat May 12, 2012 4:11 am

I am totally stumped. I have tried a whole lot of different methods for creating a dummy variable, but nothing quite works. I have a whole set of data, which has been given, and I need to create a dummy variable. I have 40 observations, the first 20 of which are for one company and the last 20 are for a second company. The first company has to equal 0 and the second 1. I initially tried view-descriptive statistics- histogram and stats -sample -@all if D=1, sample size 21-40. But this results in the first 20 values given the value of N/A. Then I tried some of your suggestions, c @expand(name) resulted in both having a value of one. Then I tired a variety of series dummy1= @recode(@name=company1 @name=company2, 1, 0). I just have no idea what to do... Thanks for any help.

EViews Gareth
Fe ddaethom, fe welon, fe amcangyfrifon
Posts: 13294
Joined: Tue Sep 16, 2008 5:38 pm

Dummy Variables

Postby EViews Gareth » Sat May 12, 2012 6:54 am

Sounds like all the things you've tried should work. Perhaps you could post your workfile.
Follow us on Twitter @IHSEViews

toa
Posts: 3
Joined: Fri May 18, 2012 4:10 am

Re: Dummy Variables

Postby toa » Sat May 19, 2012 12:46 am

Help needed please! I'm fairly new to eview (using eveiw6) and econometrics altogether so will greatly appreciate any help.
I have tried a number of ways as suggested on this forum but keep getting error messages.
I need to create a dummy variable representing a certain county (which contains the number of votes for each candidate) from 67 counties. The problem is, there is no variable for county itself. My variables are the candidates (and each observation is the number of votes received in each county).
Thanks in advance for any help


Return to “Estimation”

Who is online

Users browsing this forum: No registered users and 13 guests