(no subject)

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
2 messages Options
Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

(no subject)

pschwager
Dear list,

I am currently working on modelling species distribution and try to account
spatial autocorrelation. I use R and I successfully managed to incorporate
moran's eigenvectors as predictor to my species distribution model using
GLM (logit). I followed Dormann et al. (2007
<https://www2.unil.ch/biomapper/Download/Dormann-EcoGra-2007.pdf>) and the
appendix
<http://www.ecography.org/sites/ecography.org/files/appendix/e5171.pdf>. I
think I got corrected statistics in the moran.test() of model residuals as
the p-value increases. Also the AIC score indicates a better spatial model.


*Normal model glm:*

Moran I test under randomisation



data:  residuals(model)

weights: priclus.listw



Moran I statistic standard deviate = 7.5632, p-value = 1.966e-14

alternative hypothesis: greater

sample estimates:

Moran I statistic       Expectation          Variance

      0.264335666      -0.007633588       0.001293086



*Spatial model:*

Moran I test under randomisation



data:  residuals(model)

weights: priclus.listw



Moran I statistic standard deviate = 1.5572, p-value = 0.05972

alternative hypothesis: greater

sample estimates:

Moran I statistic       Expectation          Variance

      0.045968614      -0.007633588       0.001184932



*See the summary for both models below:*

> summary(priclus8<- glm(pb_train ~ gesteine + schnee_tag_1 + rs_hospso, family= binomial(link="logit"), data=envtrain))



        Call:

        glm(formula = pb_train ~ gesteine + schnee_tag_1 + rs_hospso,

            family = binomial(link = "logit"), data = envtrain)



        Deviance Residuals:

             Min        1Q    Median        3Q       Max

        -2.76552  -0.18741  -0.00449   0.34032   2.03205



        Coefficients:

                     Estimate Std. Error z value Pr(>|z|)

        (Intercept)  75.89890   20.21051   3.755 0.000173 ***

        gesteine1     2.05287    0.55421   3.704 0.000212 ***

        schnee_tag_1 -0.03328    0.01685  -1.975 0.048223 *

        rs_hospso    -1.56444    0.37856  -4.133 3.59e-05 ***

        ---

        Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1



        (Dispersion parameter for binomial family taken to be 1)



            Null deviance: 387.96  on 284  degrees of freedom

        Residual deviance: 129.56  on 281  degrees of freedom

        AIC: 137.56

        Number of Fisher Scoring iterations: 7



> sevm1 <- fitted(ME(pb_train ~ gesteine + schnee_tag_1 + rs_hospso, data=envtrain, family= binomial(link="logit"),listw=ME.listw))

> summary(priclus8_mem<- glm(pb_train ~ gesteine + schnee_tag_1 + rs_hospso+ I(sevm1), family= binomial(link="logit"), data=envtrain) )



    Call:

    glm(formula = pb_train ~ gesteine + schnee_tag_1 + rs_hospso +

        I(sevm1), family = binomial(link = "logit"), data = envtrain)



    Deviance Residuals:

        Min       1Q   Median       3Q      Max

    -3.6095  -0.1415  -0.0025   0.0784   2.5099



    Coefficients:

                   Estimate Std. Error z value Pr(>|z|)

    (Intercept)   102.50545   28.27283   3.626 0.000288 ***

    gesteine1       0.80346    0.79373   1.012 0.311417

    schnee_tag_1   -0.06435    0.02448  -2.628 0.008586 **

    rs_hospso      -1.99483    0.52879  -3.772 0.000162 ***

    I(sevm1)vec8   35.86461    8.38806   4.276 1.91e-05 ***

    I(sevm1)vec25 -46.33209    8.82448  -5.250 1.52e-07 ***

    ---

    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1



    (Dispersion parameter for binomial family taken to be 1)



        Null deviance: 387.959  on 284  degrees of freedom

    Residual deviance:  69.198  on 279  degrees of freedom

    AIC: 81.198



    Number of Fisher Scoring iterations: 8



Now I would like to compare the results of evaluate() and the
predictions between the normal model and the spatial model.
For the spatial model I get an error: "there are different length for
the variables".
I also want to plot the SAC-corrected predicted model to visualize the
distribution.

>e.priclus8_mem<-evaluate(test_pres_val, test_abs_val, priclus8_mem)



#Error in model.frame.default(Terms, newdata, na.action = na.action,

#xlev = object$xlevels) :  Variablenlängen sind unterschiedlich

#(gefunden für 'I(sevm1)') In addition: Warning message:'newdata' had

#120 rows but variables found have 285 rows



> plot(pclus8_mem<-predict(env_data, priclus8_mem, type="response"), main="GML priclu8_mem")



#Error in model.frame.default(Terms, newdata, na.action = na.action,

#xlev = object$xlevels):Variablenlängen sind unterschiedlich (gefunden

#für 'I(sevm1)')



Is this error caused by points with no neighbour? I used zero.polycy=TRUE
to accept no neighbours in the nb object. What else could be the problem?

I also read Bivand et al. (2008): Applied Spatial Data Analysis with R and
Borcard et al. (2011): Numerical Ecology with R. The given examples always
refer to vector data but I am working with raster data…

I am new in the matter and cannot get any further here. I have certainly
overlooked something or misunderstood. Any help and further reading is
appreciated!

Many thanks,

Patrick

        [[alternative HTML version deleted]]

_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Threaded
Open this post in threaded view
|  
Report Content as Inappropriate

Re: (no subject)

Roger Bivand
Administrator
On Mon, 3 Apr 2017, Patrick Schwager wrote:

> Dear list,
>
> I am currently working on modelling species distribution and try to account
> spatial autocorrelation. I use R and I successfully managed to incorporate
> moran's eigenvectors as predictor to my species distribution model using
> GLM (logit). I followed Dormann et al. (2007
> <https://www2.unil.ch/biomapper/Download/Dormann-EcoGra-2007.pdf>) and the
> appendix
> <http://www.ecography.org/sites/ecography.org/files/appendix/e5171.pdf>. I
> think I got corrected statistics in the moran.test() of model residuals as
> the p-value increases. Also the AIC score indicates a better spatial model.
>
Please post text-only messages: posting HTML has severely modified your
code and output.

Please provide a reproducible example, preferably from built-in data.

Please state clearly where evaluate() and predict() are coming from. I
think predict is stats::predict, but evaluate is from which package?
dismo?

Most likely they expect the ME fitted matrix is not being found in the
scope of newdata. Note that out of sample prediction for SF/ME models is
not defined, as the weights are not the same, so the eigenvectors will not
be either.

Hope this clarifies,

Roger

>
> *Normal model glm:*
>
> Moran I test under randomisation
>
>
>
> data:  residuals(model)
>
> weights: priclus.listw
>
>
>
> Moran I statistic standard deviate = 7.5632, p-value = 1.966e-14
>
> alternative hypothesis: greater
>
> sample estimates:
>
> Moran I statistic       Expectation          Variance
>
>      0.264335666      -0.007633588       0.001293086
>
>
>
> *Spatial model:*
>
> Moran I test under randomisation
>
>
>
> data:  residuals(model)
>
> weights: priclus.listw
>
>
>
> Moran I statistic standard deviate = 1.5572, p-value = 0.05972
>
> alternative hypothesis: greater
>
> sample estimates:
>
> Moran I statistic       Expectation          Variance
>
>      0.045968614      -0.007633588       0.001184932
>
>
>
> *See the summary for both models below:*
>
>> summary(priclus8<- glm(pb_train ~ gesteine + schnee_tag_1 + rs_hospso, family= binomial(link="logit"), data=envtrain))
>
>
>
>        Call:
>
>        glm(formula = pb_train ~ gesteine + schnee_tag_1 + rs_hospso,
>
>            family = binomial(link = "logit"), data = envtrain)
>
>
>
>        Deviance Residuals:
>
>             Min        1Q    Median        3Q       Max
>
>        -2.76552  -0.18741  -0.00449   0.34032   2.03205
>
>
>
>        Coefficients:
>
>                     Estimate Std. Error z value Pr(>|z|)
>
>        (Intercept)  75.89890   20.21051   3.755 0.000173 ***
>
>        gesteine1     2.05287    0.55421   3.704 0.000212 ***
>
>        schnee_tag_1 -0.03328    0.01685  -1.975 0.048223 *
>
>        rs_hospso    -1.56444    0.37856  -4.133 3.59e-05 ***
>
>        ---
>
>        Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
>
>
>        (Dispersion parameter for binomial family taken to be 1)
>
>
>
>            Null deviance: 387.96  on 284  degrees of freedom
>
>        Residual deviance: 129.56  on 281  degrees of freedom
>
>        AIC: 137.56
>
>        Number of Fisher Scoring iterations: 7
>
>
>
>> sevm1 <- fitted(ME(pb_train ~ gesteine + schnee_tag_1 + rs_hospso, data=envtrain, family= binomial(link="logit"),listw=ME.listw))
>
>> summary(priclus8_mem<- glm(pb_train ~ gesteine + schnee_tag_1 + rs_hospso+ I(sevm1), family= binomial(link="logit"), data=envtrain) )
>
>
>
>    Call:
>
>    glm(formula = pb_train ~ gesteine + schnee_tag_1 + rs_hospso +
>
>        I(sevm1), family = binomial(link = "logit"), data = envtrain)
>
>
>
>    Deviance Residuals:
>
>        Min       1Q   Median       3Q      Max
>
>    -3.6095  -0.1415  -0.0025   0.0784   2.5099
>
>
>
>    Coefficients:
>
>                   Estimate Std. Error z value Pr(>|z|)
>
>    (Intercept)   102.50545   28.27283   3.626 0.000288 ***
>
>    gesteine1       0.80346    0.79373   1.012 0.311417
>
>    schnee_tag_1   -0.06435    0.02448  -2.628 0.008586 **
>
>    rs_hospso      -1.99483    0.52879  -3.772 0.000162 ***
>
>    I(sevm1)vec8   35.86461    8.38806   4.276 1.91e-05 ***
>
>    I(sevm1)vec25 -46.33209    8.82448  -5.250 1.52e-07 ***
>
>    ---
>
>    Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
>
>
>
>    (Dispersion parameter for binomial family taken to be 1)
>
>
>
>        Null deviance: 387.959  on 284  degrees of freedom
>
>    Residual deviance:  69.198  on 279  degrees of freedom
>
>    AIC: 81.198
>
>
>
>    Number of Fisher Scoring iterations: 8
>
>
>
> Now I would like to compare the results of evaluate() and the
> predictions between the normal model and the spatial model.
> For the spatial model I get an error: "there are different length for
> the variables".
> I also want to plot the SAC-corrected predicted model to visualize the
> distribution.
>
>> e.priclus8_mem<-evaluate(test_pres_val, test_abs_val, priclus8_mem)
>
>
>
> #Error in model.frame.default(Terms, newdata, na.action = na.action,
>
> #xlev = object$xlevels) :  Variablenlängen sind unterschiedlich
>
> #(gefunden für 'I(sevm1)') In addition: Warning message:'newdata' had
>
> #120 rows but variables found have 285 rows
>
>
>
>> plot(pclus8_mem<-predict(env_data, priclus8_mem, type="response"), main="GML priclu8_mem")
>
>
>
> #Error in model.frame.default(Terms, newdata, na.action = na.action,
>
> #xlev = object$xlevels):Variablenlängen sind unterschiedlich (gefunden
>
> #für 'I(sevm1)')
>
>
>
> Is this error caused by points with no neighbour? I used zero.polycy=TRUE
> to accept no neighbours in the nb object. What else could be the problem?
>
> I also read Bivand et al. (2008): Applied Spatial Data Analysis with R and
> Borcard et al. (2011): Numerical Ecology with R. The given examples always
> refer to vector data but I am working with raster data…
>
> I am new in the matter and cannot get any further here. I have certainly
> overlooked something or misunderstood. Any help and further reading is
> appreciated!
>
> Many thanks,
>
> Patrick
>
> [[alternative HTML version deleted]]
>
> _______________________________________________
> R-sig-Geo mailing list
> [hidden email]
> https://stat.ethz.ch/mailman/listinfo/r-sig-geo
--
Roger Bivand
Department of Economics, Norwegian School of Economics,
Helleveien 30, N-5045 Bergen, Norway.
voice: +47 55 95 93 55; e-mail: [hidden email]
Editor-in-Chief of The R Journal, https://journal.r-project.org/index.html
http://orcid.org/0000-0003-2392-6140
https://scholar.google.no/citations?user=AWeghB0AAAAJ&hl=en
_______________________________________________
R-sig-Geo mailing list
[hidden email]
https://stat.ethz.ch/mailman/listinfo/r-sig-geo
Roger Bivand
Department of Economics
Norwegian School of Economics
Helleveien 30
N-5045 Bergen, Norway
Loading...