[R] apply model predictions over larger area with predict()

ONKELINX, Thierry Thierry.ONKELINX at inbo.be
Wed Oct 15 09:57:29 CEST 2008


Dear Katrin,

Store the "old" data in a dataframe instead of vectors and supply the
name of that dataframe to your model. eg  
Model <- glm(species ~ temp + prec + elev, data = your.data.frame,
family = binomial(link = logit))

Notice that I've added some spaces which makes your code more easy to
read.

I think this will solve your problem.

HTH,

Thierry


------------------------------------------------------------------------
----
ir. Thierry Onkelinx
Instituut voor natuur- en bosonderzoek / Research Institute for Nature
and Forest
Cel biometrie, methodologie en kwaliteitszorg / Section biometrics,
methodology and quality assurance
Gaverstraat 4
9500 Geraardsbergen
Belgium 
tel. + 32 54/436 185
Thierry.Onkelinx op inbo.be 
www.inbo.be 

To call in the statistician after the experiment is done may be no more
than asking him to perform a post-mortem examination: he may be able to
say what the experiment died of.
~ Sir Ronald Aylmer Fisher

The plural of anecdote is not data.
~ Roger Brinner

The combination of some data and an aching desire for an answer does not
ensure that a reasonable answer can be extracted from a given body of
data.
~ John Tukey

-----Oorspronkelijk bericht-----
Van: r-help-bounces op r-project.org [mailto:r-help-bounces op r-project.org]
Namens K. Fleischer
Verzonden: woensdag 15 oktober 2008 9:34
Aan: r-help op r-project.org
Onderwerp: [R] apply model predictions over larger area with predict()

Dear all,

I have built glm models based on presences/absences and a number of 
predictor maps and would like to compute habitat suitability based on 
the modelled coefficients. 

I thought this is pretty straight forward and wanted to use predict() 
and supply the new data in a data frame, with one column for each 
predictor. 

However, I do get an error msg warning me that the number of rows for 
old and new data do not match. 

the script looks like that:

model<-glm(species~temp+prec+elev,family=binomial(link=logit))
#whereby temp,prec,elev are in vector format and contain the elements 
on species presence/absence; species is vector of 0's and 1's 
(length=319)

wholearea<-data.frame(cbind(as.vector(temperature),as.vector
(precipitation),as.vector(elevation))  # (length=7526)

predict(model, newdata=wholearea,type="response")

Warning message: 'newdata' had 7526 rows but variable(s) found have 
319 rows.

Ive searched quite a while for the answer now, has anyone encountered 
that problem before?? thanx in advance.

Katrin Fleischer
MSc Student 
Computational Geo-ecology
University of Amsterdam

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

Dit bericht en eventuele bijlagen geven enkel de visie van de schrijver weer 
en binden het INBO onder geen enkel beding, zolang dit bericht niet bevestigd is
door een geldig ondertekend document. The views expressed in  this message 
and any annex are purely those of the writer and may not be regarded as stating 
an official position of INBO, as long as the message is not confirmed by a duly 
signed document.



More information about the R-help mailing list