[R] Factor variables with GAM models

Gavin Simpson gavin.simpson at ucl.ac.uk
Wed Apr 14 20:00:18 CEST 2010


On Fri, 2010-03-19 at 20:37 -0700, Steven McKinney wrote:
> Hi Noah
> 
> GAM models were developed to assess the functional form
> of the relationship of continuous predictor variables to the
> response, so weren't really meant to handle factor variables
> as predictor variables.  GAMs are of the form
> E(Y | X1, X2, ...) = So + S(X1) + S(X2) + ...
> where S(X) is a smooth function of X.

But there is absolutely nothing wrong with including factors in
mgcv::gam - they get expanded into the usually dummy variables depending
on the current contrasts as part of the model set-up routines just like
they do in lm(). Perhaps semiparametric might be a better description of
such a model but at least one implementation of GAMs in R can certainly
handle factors.

I haven't used gam::gam so can't comment on that and the OP doesn't say
which gam he is using.

HTH

G

> Hence you might want to rethink why you'd want a
> factor variable as a predictor variable in a GAM.
> This is why the gam machinery doesn't just do the
> factor conversion to indicator variables as is done in
> lm.
> 
> HTH
> 
> Steven McKinney
> 
> ________________________________________
> From: r-help-bounces at r-project.org [r-help-bounces at r-project.org] On Behalf Of Noah Silverman [noah at smartmediacorp.com]
> Sent: March 19, 2010 12:54 PM
> To: r-help at r-project.org
> Subject: [R] Factor variables with GAM models
> 
> I'm just starting to learn about GAM models.
> 
> When using the lm function in R, any factors I have in my data set are
> automatically converted into a series of binomial variables.
> 
> For example, if I have a data.frame with a column named color and values
> "red", "green", "blue".   The lm function automatically replaces it with
> 3 variables colorred, colorgreen, colorblue which are binomial {0,1}
> 
> When I use the gam function, R doesn't do this so I get an error.
> 
> 1) Is there a way to ask the gam function to do this conversion for me?
> 2) If not, is there some other tool or utility to make this data
> transformation easy?
> 3) Last option - can I use lm to transform the data and then extract it
> into a new data.frame to then pass to gam?
> 
> Thanks!!!
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.
> 
> ______________________________________________
> R-help at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

-- 
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%
 Dr. Gavin Simpson             [t] +44 (0)20 7679 0522
 ECRC, UCL Geography,          [f] +44 (0)20 7679 0565
 Pearson Building,             [e] gavin.simpsonATNOSPAMucl.ac.uk
 Gower Street, London          [w] http://www.ucl.ac.uk/~ucfagls/
 UK. WC1E 6BT.                 [w] http://www.freshwaters.org.uk
%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%~%



More information about the R-help mailing list