Как ускорить процесс R для определения мультиколлинеарии в 22 биоклиматических c переменных - PullRequest
0 голосов
/ 26 мая 2020

У меня есть 22 предиктора в растрах, которые я хочу использовать при моделировании распространения видов. Используя R, я сложил их в стопку. Теперь я пытаюсь определить мультиколлинеарность среди них, чтобы проверить переменные. Но код занимает слишком много времени, и я не уверен, когда он вернется с результатом. У меня есть следующий код:

k <- layerStats (p, 'pearson', na.rm = T) ## «p» - стек растров. </p>

Подскажите пожалуйста, как ускорить процесс? После вышеуказанного шага я хочу сделать матрицу корреляции и коэффициент инфляции дисперсии.

Заранее большое спасибо за вашу помощь!

Сангай

Ответы [ 2 ]

0 голосов
/ 07 июня 2020

Чтобы легко вычислить VIF, есть также функция vif() из пакета usdm : https://github.com/babaknaimi/usdm.

/ Emilio

0 голосов
/ 26 мая 2020

Если вы этого не сделаете, то сначала сделайте это с небольшой выборкой. Судя по вашему описанию, это не то, что вам нужно. Вы можете сделать

library(raster)
r <- raster(system.file("external/test.grd", package="raster") )
s <- stack(r, 1/r, sqrt(r))
pairs(s)

Или для более формального анализа

set.seed(321)
x  <- sampleRegular(s, 10000)
cor(x, use="complete.obs")
#           test.1     test.2      layer
#test.1  1.0000000 -0.8505059  0.9886518
#test.2 -0.8505059  1.0000000 -0.9155957
#layer   0.9886518 -0.9155957  1.0000000

Когда вы задаете вопрос, всегда старайтесь включить минимальный, самодостаточный, воспроизводимый пример, как я сделал выше .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...