[R-sig-Geo] (no subject)

Patrick Schwager p.schwager at gmx.at
Mon Apr 3 14:30:35 CEST 2017


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]]



More information about the R-sig-Geo mailing list