Крайгинг-интерполяция
Крайгинг (kriging) был придуман в [таком-то] году [таким-то] человеком, отсюда и название метода. Интересными особенностями данного метода являются [особенности]. До крайгинга использовались [такие-то] методы. Крайгинг выгодно отличался от них [тем-то], поэтому стал очень популярен вскоре после своего изобретения.
Жирным шрифтом буду обозначать точки и векторы, чтобы не путать их с числами.Определение метода
Допустим, нам даны точки
,
, ... ,
в евклидовом пространстве
любой размерности, и в этих точках известны значения некоторой функции:
,
, ... ,
, причём сама функция
нам неизвестна. Требуется построить интерполяционную функцию
, являющуюся «хорошей» оценкой неизвестной функции
:
.
Как и другие классические методы интерполяции, крайгинг основан на вычислении для каждой нужной нам точки
весов
,
, ... ,
, и взятии линейной комбинации значений в известных точках с этими весами:
![]() | (1) |
Крайгинг — линейный метод. Это означает, что для вычисления коэффициентов
, ... ,
значения
, ... ,
не используются; используется положение точек
,
, ... ,
, и модель случайного процесса (вариограмма, о ней позже). Однако, если для построения вариограммы вы пользуетесь величинами
, ... ,
, то результат интерполяции будет нелинейно зависеть от этих величин.
В методе крайгинга предполагается, что функция
— это некоторый случайный процесс. Соответственно,
— случайные величины. Тогда их линейная комбинация
тоже является случайной величиной. Коэффициенты
вычисляются так, чтобы математическое ожидание результирующей величины
было равно математическому ожиданию значения случайного процесса в этой точке, а дисперсия разности
была минимальной:
![]() | (2) |
Такой подход был назван оптимальным линейным предсказанием.
Для выполнения предсказания метод крайгинга должен иметь некоторые знания о случайном процессе
(обладать моделью случайного процесса). В качестве модели используется функция
, характеризующая зависимость ожидаемого различия между значениями процесса в некоторых точках
и
от расположения этих точек. Мерой ожидаемого различия является условная дисперсия разности значений:
![]() | (3) |
Функция
называется вариограммой случайного процесса. Пока мы её не знаем (и вряд ли узнаем, так как функция
нам неизвестна и, вообще говоря, может не являться случайным процессом).
Предположим, что вариограмма
известна. Тогда значения весов
определяются следующим образом:
![]() | (4) |
где
![]() | (5) |
В формуле (5) имеется в виду теоретическая вариограмма, которая по определению равна нулю при совпадающих точках-аргументах. Это означает, что в матрице A на диагонали все элементы должны быть равны нулю, даже если ваша экспериментальная вариограмма, которую вы подставите в эту матрицу, не равна нулю при совпадающих точках.
Полученные веса можно подставить в формулу (1) и получить требуемое значение
. Величина
вспомогательная (это множитель Лагранжа); она может пригодиться для последующей оценки погрешности метода.
Важно, что если нужно вычислить значения интерполяционной функции во многих точках, то матрицу A достаточно разложить один раз, так как она не зависит от текущей точки
. Обратите внимание, что при практической реализации матрицу нужно именно разложить, а не обратить (разумные люди никогда не обращают матрицы). Можно, например, использовать LU-разложение. С разложенной матрицей система уравнений (4) будет решаться для каждой вычисляемой точки со скоростью умножения матрицы на вектор (то есть вы не теряете в скорости по сравнению с однократным обращением матрицы), однако точность решения будет выше, чем при обращении матрицы.
Крайгинг позволяет оценить погрешность самого себя. Погрешность вычисляется в виде дисперсии отклонения вычисленного значения от истинного неизвестного:
![]() | (6) |
Аналогично мы получаем заниженное значение выборочной дисперсии, если оцениваем её как среднее значение квадратов отклонений имеющихся реализаций случайной величины от их среднего значения. Причина этого в том, что среднее арифметическое реализаций имеет тенденцию отклоняться от математического ожидания, и это отклонение таково, чтобы минимизировать вычисляемую впоследствии дисперсию. В связи с этим обычно вводят поправку: при вычислении выборочной дисперсии сумму квадратов отклонений делят не на количество исходных реализаций, а на количество реализаций без единицы.
Резюмировать это можно следующим образом: оценка качества работы модели всегда завышена на тех данных, по которым подбирались параметры этой модели.
Следует иметь в виду, что если сами исходные точки были использованы для оценки вариограммы
, то значение дисперсии (6) является заниженным. Чем меньше точек было использовано для построения вариограммы, тем более занижена оценка (6).
Случай стационарного изотропного процесса
Расскажу про самую часто используемую модель, в которой предполагается, что случайный процесс
является стационарным и изотропным. Стационарность процесса означает, что его математическое ожидание не зависит от точки пространства, а корреляция значений в двух произвольных точках
и
зависит лишь от взаимного расположения этих точек (от разности между ними). Изотропность означает, что корреляция зависит лишь от расстояния между точками.
Вариограмма стационарного и изотропного случайного процесса является функцией одной переменной — расстояния между точками:
![]() | (7) |
Перейдём к самому интересному — оценке вариограммы
. Её можно примерно построить на основе анализа имеющихся исходных данных. Из стационарности процесса следует, что разность
имеет нулевое математическое ожидание. Дисперсия случайной величины, имеющей нулевое мат. ожидание — это математическое ожидание квадрата этой случайной величины:
![]() | (8) |
Математическое ожидание, как мы знаем, можно оценить средним арифметическим имеющихся реализаций случайной величины. Но у нас ситуация немного сложнее: дисперсия зависит от расстояния между точками. Поэтому в качестве оценки мат. ожидания у нас будет выступать не число, а некоторая кривая, которая представляет собой зависимость среднего арифметического от расстояния.
Посмотрим, какие реализации случайной величины
у нас имеются. В качестве точек
и
можно взять всевозможные пары
,
имеющихся у нас точек с известными значениями.
Итак, мы перебираем все пары точек
, для каждой пары вычисляем расстояние
и квадрат разности имеющихся значений в этих точках:
. Откладываем на графике точку
, и переходим к следующей паре имеющихся точек. В итоге получим что-нибудь типа этого:

Рисунок 1. Точки для построения вариограммы
Теперь строим по этим точкам плавную кривую (есть много методов сделать это):

Рисунок 2. Экспериментальная вариограмма
Эту кривую и используем в качестве функции
в формулах (4)–(5).
Кстати, метод позволяет учесть погрешность исходных данных:
есть ни что иное, как удвоенная дисперсия измеряемой величины. Если требуется, чтобы поверхность прошла точно по имеющимся точкам, то
должно быть равно нулю (кривая на рисунке 2 должна выходить из начала координат). Если же исходные данные неточны, и имеют дисперсию d, то должно быть
.
Ещё одно замечание. Гладкость результирующей интерполяционной функции
совпадает с гладкостью функции
. Если нам нужно, чтобы
была непрерывно дифференцируема (не имела «изломов»), то
должна быть тоже непрерывно дифференцируемой. Нетрудно видеть, что если
непрерывно дифференцируема, и
, то функция
будет тоже непрерывно дифференцируемой. В связи с этим вариограмму часто ищут в следующем виде:
![]() | (9) |
где коэффициенты
,
и
вычисляются методом наименьших квадратов по имеющимся точкам вариограммы. Если
, то
, и искать нужно только
и
.
Пример
[Здесь будет пример для нескольких точек]
Программная реализация
[Здесь будет будет пример программы с описанием]
Материалы по теме
[Здесь будут ссылки]









14 отзывов на запись «Крайгинг-интерполяция»
Автор: Игорь Хрупин. Дата: 28-го декабря 2009 г. Время: 20:03.
Спасибо большое!!! Очень информативная и доходчивая статья. Лучшее, что пока я видел. Благодарю за скорый ответ на .Хотелось бы увидеть продолжение ее в виде примеров. Еще раз благодарю Вас!!!!
Автор: Дан. Дата: 3-го июня 2010 г. Время: 00:27.
Да, на самом деле на русском языке про кригинга больше чем здесь я еще не встречал… но хочется продолжения…
Автор: Ольга. Дата: 3-го ноября 2010 г. Время: 08:01.
Отличная статья, ООО4ень понятно. Программку бы увидеть!!!
Автор: ildario. Дата: 26-го ноября 2010 г. Время: 14:29.
Допустим на экспериментальной вариограмме полудисперсия с ростом шага сначала увеличивается до какого-то значения, а далее перестает расти, начинает резко или постепенно уменьшаться.
Если например, максимума в распределении свойства полудисперсия достигает при лаге 4 м, значит ли это что имеется неоднородность с шагом 4 м, или шаг другой?
Автор: Антон. Дата: 8-го августа 2011 г. Время: 23:15.
Если в вариограмме имеются «ямы», то это очень неприятная ситуация. Обычно при аппроксимации таких вариограмм от ям избавляются. Шаг неоднородности, по-видимому, равен расстоянию от нуля до минимума первой ямы (не до максимума).
Автор: Вера. Дата: 14-го января 2011 г. Время: 17:53.
Посмотрите описание Geostatistical Analyst из ArcGis — очень подробно и наглядно все описано. А по поводу кригинга есть большая книга Ж. Матерон., Введение в геостатистику, 1969 г.
Автор: Денис. Дата: 10-го марта 2011 г. Время: 18:35.
A нет желания поместить статью в Wikipedia?
Обидно, что на Английском так много информации, а на русском нет ничего…
http://en.wikipedia.org/wiki/Kriging
Автор: Ярослав. Дата: 13-го мая 2011 г. Время: 15:47.
Отличный обзор, лаконично и как раз то, что нужно.
Данный метод математически был детально разработан Жоржем Матероном в 1961-62 гг, он и дал ему это название в честь южноафриканского геолога Даниэля Крайга — насколько я понял из краткой английской справки, тот применял какие-то приближенные поправки для той же задачи.
Автор: Юрий. Дата: 21-го сентября 2011 г. Время: 15:57.
Здравствуйте.
Прочитал. Зашел в английскую вики. Ничего себе… мда…
Почему же я раньше не слышал об этом?
Повторенье — мать ученья.
Приглашаю сюда: сайт http://www.machinelearning.ru
Раздел — «Регрессионный анализ».
Статья на «М» — «Многомерная интерполяция и аппроксимация на основе теории случайных функций».
Фактически теперь уже переоткрытие, хотя…
Есть специалисты по крайнингу? Насколько он успел продвинуться вперед за последнее время по сравнению с тем что в en.winipedia?
У меня в статье в дополнение есть разбор многомерной аппроксимации и вывод универсальной вариограммы (так оказывается это называется…), насколько это ново? Могу развить теорию дальше, интерполяцию/аппроксимацию с учетом известных производных любого порядка в любых точках где известно.
Автор: Антон. Дата: 22-го сентября 2011 г. Время: 10:09.
Юрий, у вас очень хорошая статья.
Рекомендую также посмотреть программу MLDemos, она содержит визуализацию популярных алгоритмов машинного обучения. Там есть картинки, похожие на ваши.
Многомерная аппроксимация и универсальная вариограмма — не ново, а вот про учёт известных производных любого порядка я не слышал. Хотя, для уверенности надо будет посмотреть какой-нибудь учебник по крайгингу.
К сожалению, многие области науки и технологии напрочь отсутствуют в нашей (российской) образовательной программе. Получается так, что этих разделов для нас как бы не существует. Вот и происходят переоткрытия. Причём статьи с переоткрытиями успешно проходят процедуру рецензирования, что связано с тем, что сами рецензенты учились в Советском союзе, а после его распада не потрудились «заново получить образование» по иностранным учебникам. Я сам с удивлением узнал о крайгинге пару лет назад, когда писал статью по интерполяции (догадываюсь, что мой подход также давно известен).
P.S. Я прочёл вашу статью, и увидел в ней элемент, с которым раньше не встречался при изучении крайгинга. Если я правильно понял, вы можете однозначно определить автокорреляционную функцию, введя (в дополнение к стационарности и изотропности) предположение о равной вероятности «разномасштабных» реализаций случайного процесса.
К сожалению, это предположение не выполняется для большинства задач интерполяции (особенно в геостатистике, где крайгинг наиболее распространён), именно поэтому вариограмма выходит на константу начиная с какого-то расстояния, и поэтому выбор модели для вариограммы обычно остаётся за пользователем метода. Но в обработке изображений (чем я занимаюсь) это предположение иногда можно принять с высокой точностью, поэтому оно меня заинтересовало.
Автор: Ярослав. Дата: 26-го сентября 2011 г. Время: 11:19.
Может, я чего-то не понял… Но после собственноручной реализации кригинга обнаружил, что в качестве коэффициентов матрицы надо брать не вариограмму, а автоковариационную функцию (в нуле — единица, на бесконечности стремится к нулю). Я брал гауссову функцию
Причем её растянутость по горизонтали (коэффициент а) произвольная — в зависимости от этого будет меняться вид результирующей поверхности, а именно — насколько острые будут пики в опорных точках.
Автор: Юрий. Дата: 26-го сентября 2011 г. Время: 14:59.
Попробуй взять
t и n можно устремить в бесконечность. Только надо корректно обработать в окрестностях нуля.
Автор: Ярослав. Дата: 29-го сентября 2011 г. Время: 16:09.
Прочитал в книжке у Дюбрула.
работает.
В качестве коэффициэнтов можно использовать как тренд из вариограммы, так и автокорреляцию.
Проверил. действительно, можно.
Только тогда получается вы слегка вводите людей в заблуждение таким пристальным вниманием к вариограмме и что тренд надо получать непременно из неё.
Автор: Student. Дата: 8-го октября 2011 г. Время: 15:35.
Спасибо, статья просто спасает, я почти отчаялся искать что-либо адекватное на эту тему.