Hi Tim,
So if I understand you correctly, you are talking about 7! models, that's
hell of alot, are you considering model-selection/multiple-comparisons
issues when you are picking your models ?
If you are hoping to do cross validation on such a variaty of models, you
might find out it wouldn't scale for larger problems.

 There is the
regsubsets from the {leaps} package.
Which can also work with biglm and bigglm objects.  I am not sure what
alternative exists for other glm objects, but it's worth checking.

I can imagine you can write a function that will create all the variable
combinations using a combo of the functions combn (to create all the
combinations) with eval+parse.
But asI wrote, I think you're issue here is the model selection, not just
the creation of all the models.

Best,
Tal





----------------Contact
Details:-------------------------------------------------------
Contact me: tal.gal...@gmail.com |  972-52-7275845
Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) |
www.r-statistics.com (English)
----------------------------------------------------------------------------------------------




On Wed, May 19, 2010 at 2:00 PM, Tim Clark <mudiver1...@yahoo.com> wrote:

> Not necessarily.  In the example I included:
>
> manta~year*site
>
> in the model, which includes both first order terms and interactions:
>
> manta~year+site+year:site
>
> I am just wanting to know if there is an easier way than writing out all
> the possible models long-hand given a full model with all desired terms,
> where some terms may have interactions and others don't.
>
>
>
>
>
>
> Tim Clark
> Department of Zoology
> University of Hawaii
>
> --- On *Tue, 5/18/10, Tal Galili <tal.gal...@gmail.com>* wrote:
>
>
> From: Tal Galili <tal.gal...@gmail.com>
> Subject: Re: [R] Generating all possible models from full model
> To: "Tim Clark" <mudiver1...@yahoo.com>
> Cc: r-help@r-project.org
> Date: Tuesday, May 18, 2010, 9:40 PM
>
>
> Do you mean only all of the FIRST order models (that is, without
> interactions) ?
>
>
>
>
> ----------------Contact
> Details:-------------------------------------------------------
> Contact me: tal.gal...@gmail.com<http://mc/compose?to=tal.gal...@gmail.com>|  
> 972-52-7275845
> Read me: www.talgalili.com (Hebrew) | www.biostatistics.co.il (Hebrew) |
> www.r-statistics.com (English)
>
> ----------------------------------------------------------------------------------------------
>
>
>
>
> On Wed, May 19, 2010 at 7:38 AM, Tim Clark 
> <mudiver1...@yahoo.com<http://mc/compose?to=mudiver1...@yahoo.com>
> > wrote:
>
>> Is there a function that will allow me to run all model iterations if I
>> specify a full model?  I am using information criteria to choose between
>> possible candidate models.  I have been writing out all possible model
>> combinations by hand, and I am always worried that I am missing models or
>> have made a mistake somewhere.  It is also difficult to alter models if I
>> want to change a term.  For example, below are the set of models I would
>> like to run.  Is there a way to specify the full model and have R generate
>> the rest?  I.e. specify
>>
>>  
>> m1234567<-glm.convert(glm.nb(mantas~site*year+cosmonth+sinmonth+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>> and have R run all the other models.
>>
>>
>> library(MASS)
>>
>> #Intercept only
>>  m0<-glm.convert(glm.nb(mantas~1,data=mydata))
>>
>> #One term - 7 models
>>  #Manta abundance is greater at one of the two sites
>>  m1<-glm.convert(glm.nb(mantas~site,data=mydata))
>>  #Manta abundance increases each year as the population increases in size
>> due to births or immigration being greater than deaths and emmigration
>>  m2<-glm.convert(glm.nb(mantas~year,data=mydata))
>>  #Manta abundances increases during part of the year due to seasonal
>> cycles in resources (mates, food)
>>  m3<-glm.convert(glm.nb(mantas~cosmonth,data=mydata))
>>  m4<-glm.convert(glm.nb(mantas~sinmonth,data=mydata))
>>  #Manta abundance decreases with increased lunar phase
>>  m5<-glm.convert(glm.nb(mantas~coslunar, data=mydata))
>>  m6<-glm.convert(glm.nb(mantas~sinlunar, data=mydata))
>>  #Manta abundance increases with increased levels of plankton
>>  m7<-glm.convert(glm.nb(mantas~plankton,data=mydata))
>>
>> #Two terms - 21 models
>>  m12<-glm.convert(glm.nb(mantas~site*year, data=mydata))   #Interaction
>> term to account for hotel being closed at Keauhou for some years
>>  m13<-glm.convert(glm.nb(mantas~site+cosmonth,data=mydata))
>>  m14<-glm.convert(glm.nb(mantas~site+sinmonth,data=mydata))
>>  m15<-glm.convert(glm.nb(mantas~site+coslunar,data=mydata))
>>  m16<-glm.convert(glm.nb(mantas~site+sinlunar,data=mydata))
>>  m17<-glm.convert(glm.nb(mantas~site+plankton,data=mydata)) #Should this
>> have an interaction term?  Plankton may varry by site
>>
>>  m23<-glm.convert(glm.nb(mantas~year+cosmonth,data=mydata))
>>  m24<-glm.convert(glm.nb(mantas~year+sinmonth,data=mydata))
>>  m25<-glm.convert(glm.nb(mantas~year+coslunar,data=mydata))
>>  m26<-glm.convert(glm.nb(mantas~year+sinlunar,data=mydata))
>>  m27<-glm.convert(glm.nb(mantas~year+plankton,data=mydata))
>>
>>  m34<-glm.convert(glm.nb(mantas~cosmonth+sinmonth,data=mydata))
>>  m35<-glm.convert(glm.nb(mantas~cosmonth+coslunar,data=mydata))
>>  m36<-glm.convert(glm.nb(mantas~cosmonth+sinlunar,data=mydata))
>>  m37<-glm.convert(glm.nb(mantas~cosmonth+plankton,data=mydata))
>>  #Interaction term?  Plankton may vary by season
>>
>>  m45<-glm.convert(glm.nb(mantas~sinmonth+coslunar, data=mydata))
>>  m46<-glm.convert(glm.nb(mantas~sinmonth+sinlunar, data=mydata))
>>  m47<-glm.convert(glm.nb(mantas~sinmonth+plankton, data=mydata))
>> #Interaction term?  Plankton may vary by season
>>
>>  m56<-glm.convert(glm.nb(mantas~coslunar+sinlunar, data=mydata))
>>  m57<-glm.convert(glm.nb(mantas~coslunar+plankton, data=mydata))
>>
>>  m67<-glm.convert(glm.nb(mantas~sinlunar+plankton, data=mydata))
>> #Interaction term?  Plankton may have lunar cycles
>>
>> #Three terms - 35 models
>>  m123<-glm.convert(glm.nb(mantas~site*year+cosmonth, data=mydata))
>>  m124<-glm.convert(glm.nb(mantas~site*year+sinmonth, data=mydata))
>>  m125<-glm.convert(glm.nb(mantas~site*year+coslunar, data=mydata))
>>  m126<-glm.convert(glm.nb(mantas~site*year+sinlunar, data=mydata))
>>  m127<-glm.convert(glm.nb(mantas~site*year+plankton, data=mydata))
>>
>>  m134<-glm.convert(glm.nb(mantas~site+cosmonth+sinmonth,data=mydata))
>>  m135<-glm.convert(glm.nb(mantas~site+cosmonth+coslunar,data=mydata))
>>  m136<-glm.convert(glm.nb(mantas~site+cosmonth+sinlunar,data=mydata))
>>  m137<-glm.convert(glm.nb(mantas~site+cosmonth+plankton,data=mydata))
>>
>>  m145<-glm.convert(glm.nb(mantas~site+sinmonth+coslunar,data=mydata))
>>  m146<-glm.convert(glm.nb(mantas~site+sinmonth+sinlunar,data=mydata))
>>  m147<-glm.convert(glm.nb(mantas~site+sinmonth+plankton,data=mydata))
>>
>>  m156<-glm.convert(glm.nb(mantas~site+coslunar+sinlunar,data=mydata))
>>  m157<-glm.convert(glm.nb(mantas~site+coslunar+plankton,data=mydata))
>>
>>  m167<-glm.convert(glm.nb(mantas~site+sinlunar+plankton,data=mydata))
>>
>>  m234<-glm.convert(glm.nb(mantas~year+cosmonth+sinmonth,data=mydata))
>>  m235<-glm.convert(glm.nb(mantas~year+cosmonth+coslunar,data=mydata))
>>  m236<-glm.convert(glm.nb(mantas~year+cosmonth+sinlunar,data=mydata))
>>  m237<-glm.convert(glm.nb(mantas~year+cosmonth+plankton,data=mydata))
>>
>>  m245<-glm.convert(glm.nb(mantas~year+sinmonth+coslunar,data=mydata))
>>  m246<-glm.convert(glm.nb(mantas~year+sinmonth+sinlunar,data=mydata))
>>  m247<-glm.convert(glm.nb(mantas~year+sinmonth+plankton,data=mydata))
>>
>>  m256<-glm.convert(glm.nb(mantas~year+coslunar+sinlunar,data=mydata))
>>  m257<-glm.convert(glm.nb(mantas~year+coslunar+plankton,data=mydata))
>>
>>  m267<-glm.convert(glm.nb(mantas~year+sinlunar+plankton,data=mydata))
>>
>>  m345<-glm.convert(glm.nb(mantas~cosmonth+sinmonth+coslunar,data=mydata))
>>  m346<-glm.convert(glm.nb(mantas~cosmonth+sinmonth+sinlunar,data=mydata))
>>  m347<-glm.convert(glm.nb(mantas~cosmonth+sinmonth+plankton,data=mydata))
>>
>>  m356<-glm.convert(glm.nb(mantas~cosmonth+coslunar+sinlunar,data=mydata))
>>  m357<-glm.convert(glm.nb(mantas~cosmonth+coslunar+plankton,data=mydata))
>>
>>  m367<-glm.convert(glm.nb(mantas~cosmonth+sinlunar+plankton,data=mydata))
>>
>>  m456<-glm.convert(glm.nb(mantas~sinmonth+coslunar+sinlunar,data=mydata))
>>  m457<-glm.convert(glm.nb(mantas~sinmonth+coslunar+plankton,data=mydata))
>>
>>  m467<-glm.convert(glm.nb(mantas~sinmonth+sinlunar+plankton,data=mydata))
>>
>>  m567<-glm.convert(glm.nb(mantas~coslunar+sinlunar+plankton,data=mydata))
>>
>> #Four terms - 34 models
>>  m1234<-glm.convert(glm.nb(mantas~site*year+cosmonth+sinmonth,
>> data=mydata))
>>  m1235<-glm.convert(glm.nb(mantas~site*year+cosmonth+coslunar,
>> data=mydata))
>>  m1236<-glm.convert(glm.nb(mantas~site*year+cosmonth+sinlunar,
>> data=mydata))
>>  m1237<-glm.convert(glm.nb(mantas~site*year+cosmonth+plankton,
>> data=mydata))
>>
>>  m1245<-glm.convert(glm.nb(mantas~site*year+sinmonth+coslunar,
>> data=mydata))
>>  m1246<-glm.convert(glm.nb(mantas~site*year+sinmonth+sinlunar,
>> data=mydata))
>>  m1247<-glm.convert(glm.nb(mantas~site*year+sinmonth+plankton,
>> data=mydata))
>>
>>  m1256<-glm.convert(glm.nb(mantas~site*year+coslunar+sinlunar,
>> data=mydata))
>>  m1257<-glm.convert(glm.nb(mantas~site*year+coslunar+plankton,
>> data=mydata))
>>
>>  m1267<-glm.convert(glm.nb(mantas~site*year+sinlunar+plankton,
>> data=mydata))
>>
>>
>>  
>> m1345<-glm.convert(glm.nb(mantas~site+cosmonth+sinmonth+coslunar,data=mydata))
>>
>>  
>> m1346<-glm.convert(glm.nb(mantas~site+cosmonth+sinmonth+sinlunar,data=mydata))
>>
>>  
>> m1347<-glm.convert(glm.nb(mantas~site+cosmonth+sinmonth+plankton,data=mydata))
>>
>>
>>  
>> m1356<-glm.convert(glm.nb(mantas~site+cosmonth+coslunar+sinlunar,data=mydata))
>>
>>  
>> m1357<-glm.convert(glm.nb(mantas~site+cosmonth+coslunar+plankton,data=mydata))
>>
>>
>>  
>> m1367<-glm.convert(glm.nb(mantas~site+cosmonth+sinlunar+plankton,data=mydata))
>>
>>
>>  
>> m1456<-glm.convert(glm.nb(mantas~site+sinmonth+coslunar+sinlunar,data=mydata))
>>
>>  
>> m1457<-glm.convert(glm.nb(mantas~site+sinmonth+coslunar+plankton,data=mydata))
>>
>>
>>  
>> m1467<-glm.convert(glm.nb(mantas~site+sinmonth+sinlunar+plankton,data=mydata))
>>
>>
>>  
>> m1567<-glm.convert(glm.nb(mantas~site+coslunar+sinlunar+plankton,data=mydata))
>>
>>
>>  
>> m2345<-glm.convert(glm.nb(mantas~year+cosmonth+sinmonth+coslunar,data=mydata))
>>
>>  
>> m2346<-glm.convert(glm.nb(mantas~year+cosmonth+sinmonth+sinlunar,data=mydata))
>>
>>  
>> m2347<-glm.convert(glm.nb(mantas~year+cosmonth+sinmonth+plankton,data=mydata))
>>
>>
>>  
>> m2356<-glm.convert(glm.nb(mantas~year+cosmonth+coslunar+sinlunar,data=mydata))
>>
>>  
>> m2357<-glm.convert(glm.nb(mantas~year+cosmonth+coslunar+plankton,data=mydata))
>>
>>
>>  
>> m2367<-glm.convert(glm.nb(mantas~year+cosmonth+sinlunar+plankton,data=mydata))
>>
>>
>>  
>> m2456<-glm.convert(glm.nb(mantas~year+sinmonth+coslunar+sinlunar,data=mydata))
>>
>>  
>> m2457<-glm.convert(glm.nb(mantas~year+sinmonth+coslunar+plankton,data=mydata))
>>
>>
>>  
>> m2467<-glm.convert(glm.nb(mantas~year+sinmonth+sinlunar+plankton,data=mydata))
>>
>>
>>  
>> m2567<-glm.convert(glm.nb(mantas~year+coslunar+sinlunar+plankton,data=mydata))
>>
>>
>>  
>> m3456<-glm.convert(glm.nb(mantas~cosmonth+sinmonth+coslunar+sinlunar,data=mydata))
>>
>>  
>> m3457<-glm.convert(glm.nb(mantas~cosmonth+sinmonth+coslunar+plankton,data=mydata))
>>
>>
>>  
>> m3567<-glm.convert(glm.nb(mantas~cosmonth+coslunar+sinlunar+plankton,data=mydata))
>>
>>
>>  
>> m4567<-glm.convert(glm.nb(mantas~sinmonth+coslunar+sinlunar+plankton,data=mydata))
>>
>> #Five terms - 21 models
>>  m12345<-glm.convert(glm.nb(mantas~site*year+cosmonth+sinmonth+coslunar,
>> data=mydata))
>>  m12346<-glm.convert(glm.nb(mantas~site*year+cosmonth+sinmonth+sinlunar,
>> data=mydata))
>>  m12347<-glm.convert(glm.nb(mantas~site*year+cosmonth+sinmonth+plankton,
>> data=mydata))
>>
>>  m12356<-glm.convert(glm.nb(mantas~site*year+cosmonth+coslunar+sinlunar,
>> data=mydata))
>>  m12357<-glm.convert(glm.nb(mantas~site*year+cosmonth+coslunar+plankton,
>> data=mydata))
>>
>>  m12367<-glm.convert(glm.nb(mantas~site*year+cosmonth+sinlunar+plankton,
>> data=mydata))
>>
>>  m12456<-glm.convert(glm.nb(mantas~site*year+sinmonth+coslunar+sinlunar,
>> data=mydata))
>>  m12457<-glm.convert(glm.nb(mantas~site*year+sinmonth+coslunar+plankton,
>> data=mydata))
>>
>>  m12467<-glm.convert(glm.nb(mantas~site*year+sinmonth+sinlunar+plankton,
>> data=mydata))
>>
>>  m12567<-glm.convert(glm.nb(mantas~site*year+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>>  m13456<-glm.convert(glm.nb(mantas~site+cosmonth+sinmonth+coslunar+sinlunar,
>> data=mydata))
>>  m13457<-glm.convert(glm.nb(mantas~site+cosmonth+sinmonth+coslunar+plankton,
>> data=mydata))
>>
>>  m13467<-glm.convert(glm.nb(mantas~site+cosmonth+sinmonth+sinlunar+plankton,
>> data=mydata))
>>
>>  m13567<-glm.convert(glm.nb(mantas~site+cosmonth+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>>  m14567<-glm.convert(glm.nb(mantas~site+sinmonth+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>>  m23456<-glm.convert(glm.nb(mantas~year+cosmonth+sinmonth+coslunar+sinlunar,
>> data=mydata))
>>  m23457<-glm.convert(glm.nb(mantas~year+cosmonth+sinmonth+coslunar+plankton,
>> data=mydata))
>>
>>  m23467<-glm.convert(glm.nb(mantas~year+cosmonth+sinmonth+sinlunar+plankton,
>> data=mydata))
>>
>>  m23567<-glm.convert(glm.nb(mantas~year+cosmonth+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>>  m24567<-glm.convert(glm.nb(mantas~year+sinmonth+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>>  
>> m34567<-glm.convert(glm.nb(mantas~cosmonth+sinmonth+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>> #Six terms - 7 models
>>  
>> m123456<-glm.convert(glm.nb(mantas~site*year+cosmonth+sinmonth+coslunar+sinlunar,
>> data=mydata))
>>  
>> m123457<-glm.convert(glm.nb(mantas~site*year+cosmonth+sinmonth+coslunar+plankton,
>> data=mydata))
>>
>>  
>> m123467<-glm.convert(glm.nb(mantas~site*year+cosmonth+sinmonth+sinlunar+plankton,
>> data=mydata))
>>
>>  
>> m123567<-glm.convert(glm.nb(mantas~site*year+cosmonth+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>>  
>> m124567<-glm.convert(glm.nb(mantas~site*year+sinmonth+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>>  
>> m134567<-glm.convert(glm.nb(mantas~site+cosmonth+sinmonth+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>>  
>> m234567<-glm.convert(glm.nb(mantas~year+cosmonth+sinmonth+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>> #Seven terms - 1 model
>>  
>> m1234567<-glm.convert(glm.nb(mantas~site*year+cosmonth+sinmonth+coslunar+sinlunar+plankton,
>> data=mydata))
>>
>>
>> Tim Clark
>> Department of Zoology
>> University of Hawaii
>>
>> ______________________________________________
>> R-help@r-project.org <http://mc/compose?to=r-h...@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.
>>
>
>
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@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.

Reply via email to