[R] Problem with systemfit 0.7-3 and transformed variables

John Fox jfox at mcmaster.ca
Wed May 25 14:54:20 CEST 2005


Dear Mikko,

You might try the tsls function in the sem package (which also does 2SLS).

Regards,
 John

--------------------------------
John Fox
Department of Sociology
McMaster University
Hamilton, Ontario
Canada L8S 4M4
905-525-9140x23604
http://socserv.mcmaster.ca/jfox 
-------------------------------- 

> -----Original Message-----
> From: r-help-bounces at stat.math.ethz.ch 
> [mailto:r-help-bounces at stat.math.ethz.ch] On Behalf Of Mikko Pakkanen
> Sent: Wednesday, May 25, 2005 4:43 AM
> To: r-help at stat.math.ethz.ch
> Subject: [R] Problem with systemfit 0.7-3 and transformed variables
> 
> The 'systemfit' function in systemfit 0.7-3 CRAN package 
> seems to have a problem with formulas that contain 
> transformed (eg. log) variables. If I have my data in a data 
> frame, apparently systemfit doesn't "pass" the information of 
> where the variables should be taken to the transforming function.
> 
> I'm not entirely sure if this is a bug or just a limitation, 
> I was just surprised when I attempted to estimate a model, 
> which I'd previously estimated with OLS using 'lm', with 2SLS 
> using 'systemfit' and it didn't accept those transformations 
> like 'lm' does.
> 
> Here's an example: this is, of course, OK:
> 
> > data(kmenta)
> > demand <- q ~ p + d
> > instr <- ~ d + f
> > fit1 <- systemfit("2SLS", eqns=list(demand), inst=instr, 
> data=kmenta)
> 
> But, now if I'd like to estimate a model with logarithm of p 
> as a regressor, an error occurs: 
> 
> > demand2 <- q ~ log(p) + d
> > fit2 <- systemfit("2SLS", eqns=list(demand2), inst=instr, 
> data=kmenta)
> Error in log(p) : Object "p" not found
> 
> However, estimating the same formula with OLS using the 
> regular 'lm' is OK:
> > fit2.ols <- lm(demand2, kmenta)
> 
> Transforming an instrument causes the same error too:
> 
> > instr2 <- ~ log(d) + f
> > fit3 <- systemfit("2SLS", eqns=list(demand), inst=instr2, 
> data=kmenta)
> Error in log(d) : Object "d" not found
> 
> One could certainly just create those transformed variables 
> to avoid the problem, but it would be much more convenient, 
> if it wasn't necessary, especially if several regressors are involved.
> 
> > version
>          _              
> platform i386-pc-mingw32
> arch     i386           
> os       mingw32        
> system   i386, mingw32  
> status                  
> major    2              
> minor    1.0            
> year     2005           
> month    04             
> day      18             
> language R 
> 
> Regards,
> 
> -Mikko Pakkanen
> 
> ______________________________________________
> 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




More information about the R-help mailing list