[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