Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

What is the difference between Universal Kriging and Regression Kriging? #172

Closed
keua opened this issue Nov 19, 2020 · 5 comments
Closed
Assignees
Labels

Comments

@keua
Copy link

keua commented Nov 19, 2020

Hello guys, I'm currently using the Pykrige library for doing traffic volume interpolation in a road network Currently I use ordinary kriging, but I would like to improve my estimations by adding extra information, so I'm thinking on use Universal Kriging or Regression Kriging. From the link, you provide in the documentation https://en.wikipedia.org/wiki/Regression-kriging, it seems that these two techniques are equivalent, so I would like to understand whether in your implementation this is the case, or if there is something different when using one or the other.
I really appreciate your answer and thanks for the awesome work you are doing by maintaining this package.

@MuellerSeb MuellerSeb self-assigned this Nov 19, 2020
@MuellerSeb
Copy link
Member

An answer was given here: #167

Universal- and Regression-Kriging both deal with a given drift or trend.

In literature, the term detrending is handled very differently in terms of kriging. We have several algorithms that deal with this:

  • Universal Kriging (UK): an internal/functional drift is given and represented in the kriging matrix. The drift terms can be evaluated functional from input and output points by the given drift-functions (e.g. regional linear...). The term drift is the better one here, since the data is not detrended but is assumed to have a linear correlation to the given drift.
  • External drift Kriging (EDK): the drift at the input/conditioning data as well as at the output points is given by an external source (for example a digital elevation model DEM) and again a linear correlation of the target variable to this drift is assumed
  • Regression Kriging (RK): Here we actually deal with residuals. A trend model is fitted to the data and afterwards, we apply ordinary kriging (OK) to the residuals.

Does that help?

Cheers, Sebastian

@keua
Copy link
Author

keua commented Nov 20, 2020

Thank you very much, the differences are clear now. Just to be sure, EDK is not implemented in Pykrige, right? Is there any other package to implement EDK?
Again thanks for your answer,
Keneth

@keua
Copy link
Author

keua commented Nov 20, 2020

Hello again,
Going through the issues I found this #155

I can give you a short survey:

  • regional linear drift is a functional drift, where a linear regional model is fitted automatically with universal kriging (classical case)
  • point-logarithmic drift is used for water level kriging (see here)
  • external Z drift is a special feature, where you can provide grided data in 2D, where the z-value (for example the DEM data) is interpolated to your target points
  • specified drift is the classical form of external drift kriging, where a linear correlated second variable needs to given at all conditioning points AND at the target points for kriging (this could also be used for DEM data, but you have to provide the data at the exact points, where you want to krige the temperature)
  • functional drift is like the regional linear drift, but you can give a set of self defined functions, that depend on the spatial position to generate the drift terms (for regional linear drift in 3D for example, you have 3 functions: f1(x,y,z)=x, f2(x,y,z)=y, f3(x,y,z)=z)

If your DEM data is grided and you don't have the elevation data at your target points, you should use external Z drift otherwise use specified drift.

Does that help?

Cheers, Sebastian

I will specifically point out to the specified drift where you mention that this option is the classical form of external drift kriging. Is it correct then, to say that using the implementation of UK with specified drift corresponds to EDK?

@MuellerSeb
Copy link
Member

That is correct! 😉

@keua
Copy link
Author

keua commented Nov 23, 2020

Thanks again for your answer and for your work with the package.

@keua keua closed this as completed Nov 23, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants