Возможна ли точечная множественная линейная регрессия в Matlab

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

У меня есть три независимых переменных и одна зависимая переменная. Каждая переменная представляет собой вектор-столбец с ~1,6 миллионами записей. Каждая точка данных представляет географическое местоположение; моя цель в том, чтобы сделать все это, чтобы попытаться увидеть влияние переменных-предикторов на переменную отклика для каждого пикселя.

Я уже успешно запустил fitlm, regress и mldivide; эти функции дают мне три коэффициента регрессии для моих данных. Однако я хочу провести множественную регрессию по всем моим точкам независимо, так что в итоге я получу три столбца коэффициентов регрессии по 1,6 миллиона записей в каждом.

Мои данные содержат немного NaN. Эти строки нельзя игнорировать; конечный вектор столбца должен быть того же размера, что и исходные векторы, поскольку местоположение точки данных связано с реальными координатами.

Я изучил код для bsxfun, но не верю, что он может мне помочь. Я также попытался использовать точечную запись, но это не сработало. Теперь я думаю создать цикл for и использовать mldivide по одной строке за раз. Однако, когда я попытался использовать "регресс" в скалярах (имитируя один ряд данных), я получил ошибку "X не соответствует рангу с точностью до машины". Я не получил эту ошибку, когда я использовал mldivide.

Возможно ли сделать точечную множественную линейную регрессию? Мне кажется, что мой размер выборки слишком мал. Будем весьма благодарны за любые отзывы о целесообразности этого и о том, является ли цикл for хорошим направлением.

0 ответов

Другие вопросы по тегам