Hi, all! Anyone know an easy way to specify the following model. Panel dataset, with stock through time, by firm. I want to run a model of y on a bunch of explanatory variables, and one dummy for each firm, which is 1 for observations that come from firm i, and 0 everywhere else. I have over 200 firms (and a factor variable that contains a firm identifier). Any easy way of going about this, without having to define all these dummies? I checked lme() with random = ~ 1|firm, but the problem is that these are random effects, i.e. that there are firm-by-firm disturbance terms and overall disturbance terms, whereas I want just overall disturbance terms. This is generally called a "fixed effects" model, although it seems like the term "fixed effects" is being used somewhat differently in the context of the nlme package. Toby -- ************************************************************************** When Thomas Edison invented the light bulb he tried over 2000 experiments before he got it to work. A young reporter asked him how it felt to have failed so many times. He said "I never failed once. I invented the light bulb. It just happened to be a 2000-step process."
Hi If you'd like to fit a fixed effect model without random effects, you can use lm() or aov() (see ?lm and ?aov). If your variable is a factor (?factor) then you can specify your model in lm() without coding all dummy variables. Regards, Christoph Buser -------------------------------------------------------------- Christoph Buser <buser at stat.math.ethz.ch> Seminar fuer Statistik, LEO C13 ETH (Federal Inst. Technology) 8092 Zurich SWITZERLAND phone: x-41-44-632-4673 fax: 632-1228 http://stat.ethz.ch/~buser/ -------------------------------------------------------------- Tobias Muhlhofer writes: > Hi, all! > > Anyone know an easy way to specify the following model. > > Panel dataset, with stock through time, by firm. > > I want to run a model of y on a bunch of explanatory variables, and one > dummy for each firm, which is 1 for observations that come from firm i, > and 0 everywhere else. I have over 200 firms (and a factor variable that > contains a firm identifier). > > Any easy way of going about this, without having to define all these > dummies? I checked lme() with random = ~ 1|firm, but the problem is that > these are random effects, i.e. that there are firm-by-firm disturbance > terms and overall disturbance terms, whereas I want just overall > disturbance terms. This is generally called a "fixed effects" model, > although it seems like the term "fixed effects" is being used somewhat > differently in the context of the nlme package. > > Toby > > -- > ************************************************************************** > When Thomas Edison invented the light bulb he tried over 2000 > experiments before he got it to work. A young reporter asked > him how it felt to have failed so many times. He said > "I never failed once. I invented the light bulb. > It just happened to be a 2000-step process." > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > > > !DSPAM:431c4675196241771238468!
You can turn the identity vector of the firms into a factor and do lm .... Jean On Mon, 5 Sep 2005, Tobias Muhlhofer wrote:> Hi, all! > > Anyone know an easy way to specify the following model. > > Panel dataset, with stock through time, by firm. > > I want to run a model of y on a bunch of explanatory variables, and one > dummy for each firm, which is 1 for observations that come from firm i, > and 0 everywhere else. I have over 200 firms (and a factor variable that > contains a firm identifier). > > Any easy way of going about this, without having to define all these > dummies? I checked lme() with random = ~ 1|firm, but the problem is that > these are random effects, i.e. that there are firm-by-firm disturbance > terms and overall disturbance terms, whereas I want just overall > disturbance terms. This is generally called a "fixed effects" model, > although it seems like the term "fixed effects" is being used somewhat > differently in the context of the nlme package. > > Toby > > -- > ************************************************************************** > When Thomas Edison invented the light bulb he tried over 2000 > experiments before he got it to work. A young reporter asked > him how it felt to have failed so many times. He said > "I never failed once. I invented the light bulb. > It just happened to be a 2000-step process." > > ______________________________________________ > R-help at stat.math.ethz.ch mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html >
So are you guys saying to me that if I have variable firm which is the factor of all firm identifiers, I could just go lm(y ~ x + firm) and that will implicitly include a dummy for each level of factor firm, thus making this a fixed effects (aka LSDV) model? T Jean Eid wrote:> You can turn the identity vector of the firms into a factor and do lm .... > > Jean > > On Mon, 5 Sep 2005, Tobias Muhlhofer wrote: > > >>Hi, all! >> >>Anyone know an easy way to specify the following model. >> >>Panel dataset, with stock through time, by firm. >> >>I want to run a model of y on a bunch of explanatory variables, and one >>dummy for each firm, which is 1 for observations that come from firm i, >>and 0 everywhere else. I have over 200 firms (and a factor variable that >> contains a firm identifier). >> >>Any easy way of going about this, without having to define all these >>dummies? I checked lme() with random = ~ 1|firm, but the problem is that >>these are random effects, i.e. that there are firm-by-firm disturbance >>terms and overall disturbance terms, whereas I want just overall >>disturbance terms. This is generally called a "fixed effects" model, >>although it seems like the term "fixed effects" is being used somewhat >>differently in the context of the nlme package. >> >>Toby >> >>-- >>************************************************************************** >>When Thomas Edison invented the light bulb he tried over 2000 >>experiments before he got it to work. A young reporter asked >>him how it felt to have failed so many times. He said >>"I never failed once. I invented the light bulb. >>It just happened to be a 2000-step process." >> >>______________________________________________ >>R-help at stat.math.ethz.ch mailing list >>https://stat.ethz.ch/mailman/listinfo/r-help >>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html >> > > >-- ************************************************************************** When Thomas Edison invented the light bulb he tried over 2000 experiments before he got it to work. A young reporter asked him how it felt to have failed so many times. He said "I never failed once. I invented the light bulb. It just happened to be a 2000-step process."
You will need to ensure that firm is a factor and not numerical (i.e. continuous). Here is an example firm <- factor( sample(1:3, 20, replace=T) ) x1 <- runif(20) y <- rnorm(20) summary( fit <- lm( y ~ -1 + x1 + firm ) ) ... Coefficients: Estimate Std. Error t value Pr(>|t|) x1 -0.04964 0.74861 -0.066 0.948 firm1 0.10732 0.48269 0.222 0.827 firm2 0.27548 0.48781 0.565 0.580 firm3 -0.07651 0.53384 -0.143 0.888 NB : The "-1" in the formula forces each firm to have its own intercept. Use model.matrix, you will see the dummy variables created within lm(). model.matrix( fit ) x1 firm1 firm2 firm3 1 0.6641647 0 1 0 2 0.5142712 1 0 0 3 0.2197956 1 0 0 4 0.3211675 0 1 0 5 0.1892449 1 0 0 6 0.7740754 0 0 1 7 0.3486932 0 1 0 8 0.2116816 0 0 1 9 0.2426825 0 1 0 10 0.2219768 1 0 0 11 0.9328514 1 0 0 12 0.7880405 0 0 1 13 0.8673492 0 1 0 14 0.1777998 0 1 0 15 0.3178498 1 0 0 16 0.3379726 0 0 1 17 0.9193359 1 0 0 18 0.6998152 0 1 0 19 0.2825702 0 0 1 20 0.6139586 1 0 0 Regards, Adai On Mon, 2005-09-05 at 15:53 +0100, Tobias Muhlhofer wrote:> So are you guys saying to me that if I have variable firm which is the > factor of all firm identifiers, I could just go > > lm(y ~ x + firm) > > and that will implicitly include a dummy for each level of factor firm, > thus making this a fixed effects (aka LSDV) model? > > T > > > Jean Eid wrote: > > You can turn the identity vector of the firms into a factor and do lm .... > > > > Jean > > > > On Mon, 5 Sep 2005, Tobias Muhlhofer wrote: > > > > > >>Hi, all! > >> > >>Anyone know an easy way to specify the following model. > >> > >>Panel dataset, with stock through time, by firm. > >> > >>I want to run a model of y on a bunch of explanatory variables, and one > >>dummy for each firm, which is 1 for observations that come from firm i, > >>and 0 everywhere else. I have over 200 firms (and a factor variable that > >> contains a firm identifier). > >> > >>Any easy way of going about this, without having to define all these > >>dummies? I checked lme() with random = ~ 1|firm, but the problem is that > >>these are random effects, i.e. that there are firm-by-firm disturbance > >>terms and overall disturbance terms, whereas I want just overall > >>disturbance terms. This is generally called a "fixed effects" model, > >>although it seems like the term "fixed effects" is being used somewhat > >>differently in the context of the nlme package. > >> > >>Toby > >> > >>-- > >>************************************************************************** > >>When Thomas Edison invented the light bulb he tried over 2000 > >>experiments before he got it to work. A young reporter asked > >>him how it felt to have failed so many times. He said > >>"I never failed once. I invented the light bulb. > >>It just happened to be a 2000-step process." > >> > >>______________________________________________ > >>R-help at stat.math.ethz.ch mailing list > >>https://stat.ethz.ch/mailman/listinfo/r-help > >>PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html > >> > > > > > > >