Экстраполируйте ограниченные значения в матрице тепла

#r #matrix #extrapolation

Вопрос:

У меня есть несколько тепловых карт (пример ниже), из каждой из которых я извлекаю матрицу значений. Моя проблема в том, что на изображениях значения выше определенного порога (в данном случае 200) ограничиваются этим порогом и отображаются в виде цвета фушиа. Я пытаюсь экстраполировать эти значения. Я попытался заменить 200 на NA и использовать na.approx и na.сплайн из пакета zoo, approxExtrap из пакета Hmisc, а также использовать регрессию лесса по столбцам. Лесс был единственным методом, который вообще давал значения выше 200, но все еще далеко не приближался к фактическим значениям (у меня есть таковые для нескольких изображений). Есть какие-нибудь идеи?

тепловая карта со значениями выше 200 показана как fuschia

Ответ №1:

Хорошо, я смог сделать это с умеренным успехом, используя interp() функцию из akima пакета, используя флаги linear = FALSE, extrap = TRUE . Для каждого изображения требовалось целых 30 секунд, на некоторых изображениях оно работало идеально, но имело тенденцию к переоценке, когда область фушия была слишком большой.