spatstatcox

Fisher transformation


I have data on earthquake epicenters. While I am trying to fit a LGCP to it, I get the error message as below when I print the result of my model:

Inhomogeneous Cox point process model
Fitted to point pattern dataset ‘Y’
Fitted by maximum second order composite likelihood
        rmax = 153.75
        weight function: Indicator(distance <= 76.875)

Error in solve.default(M) : 
  system is computationally singular: reciprocal condition number = 4.3093e-22
Error in solve.default(M) : 
  system is computationally singular: reciprocal condition number = 4.3093e-22
In addition: Warning message:
Cannot compute variance: Fisher information matrix is singular 
Log intensity:  ~DF + DP + (x + y + I(x^2) + I(x * y) + I(y^2))

Fitted trend coefficients:
  (Intercept)            DF            DP             x             y 
-1.025219e+03 -3.115902e-02 -2.003711e-02 -1.016590e-01  4.949720e-01 
       I(x^2)      I(x * y)        I(y^2) 
-3.557955e-05  2.898502e-05 -6.005674e-05 

Cox model: log-Gaussian Cox process
        Covariance model: exponential
Fitted covariance parameters:
      var     scale 
 2.024728 18.913952 
Fitted mean of log of random intensity: [pixel image]
Warning message:
Cannot compute variance: Fisher information matrix is singular

Can some one please help me figure out the problem and suggest the solution. Many thanks in advance.

I rescaled my data as Y<=rescale(X,1000), tried to fit the model without covariates but get the same result. For LGCP I am not trying using likelihood, instead the applicable mincon, palm and clik methods as suggested in Spatial Point Patterns Book by Adrian Baddeley, Ege Rubak and Rolf Turner.


Solution

  • The code is attempting to calculate confidence intervals for the coefficients for the trend (the coefficients of the terms in your model formula). The calculation requires the variance-covariance matrix of the coefficients, which is obtained by finding the inverse matrix of the Fisher information matrix. If the Fisher information matrix is singular (has determinant equal to zero) then the inverse cannot be computed, and an error is signalled.

    This usually happens when either (a) some of the terms in the model formula are linearly dependent on each other, or (b) the numerical values of the coordinates are too large or too small, causing numerical problems. I see that you have already tried rescaling the coordinates. So it is likely to be (a) which is the problem. In earthquake data, I guess it is possible for most of the points to be located along a line (eg a fault) which could provoke this problem.

    Try looking at the Fisher information matrix by typing

    vcov(m, what="fisher")
    

    (where m is your fitted model). This may tell you which of the terms are linearly dependent.

    If that's not illuminating, then I suggest you remove some of the terms in the model formula - starting with the terms of higher order like x^2.