# Why likelihood based geostatistical modelling slower than non likelihood based counterpart

Likelihood based geo-statistics (geoR etc.) are usually slower than non-likelihood based geo-statistics (i.e. those based on just least square fitting, for example gstat.) It is slower in two respect: parameter estimation and the actual prediction exercise (kriging).

By 'slower' I really mean two things:

1. It literally takes more time to perform those steps, and
2. It can't handle large dataset.

What I don't mean is geoR being slower than gstat. I understand one is pure R whereas the other is in C, so they will naturally perform differently.

My questions is why is likelihood based method slower at both parameter estimation and prediction than non-likelihood based method?

What (I think) I know so far is that, in estimation, likelihood based method involves dealing with a NxN covariance matrix whereas non-likelihood based method doesn't have to deal with that. So that's time-saving.

But in prediction, I thought both models have to deal with the NxN covariance matrix (am I right?), so how can non-likelihood based method handle large dataset quicker than likelihood based methods?

• Estimation: Maximum likelihood estimation (MLE) normally involves optimization that requires iterating calculations until convergence, which is time consuming. Ordinary least squares (OLS) requires only matrix multiplication (very fast) and inversion (a little more complex); there are no iterations. Therefore, OLS is normally faster than MLE. Forecasting: Given an estimated model, estimation technique is no longer relevant. Producing a forecast only requires setting in concrete values in the model formula to obtain the outcome. ...ctd... – Richard Hardy Nov 18 '15 at 9:00
• ...ctd... However, I am not familiar with kriging. Perhaps it involves some extra estimation in the forecasting step, and thus forecasting is not really just forecasting, in a way? – Richard Hardy Nov 18 '15 at 9:01
• The kriging algorithm is the same in both cases, so the answer to the second part of your question is that it must lie in the specific R implementation. – whuber Nov 18 '15 at 16:08