Я пытаюсь подгонять модель с помощью лёсса, и я получаю такие ошибки, как «псевдоинверсия, используемая в 3», «радиус окрестности 1» и «число обратных условий 0». Вот MWE:Понимание ошибок лёсса в R
x = 1:19
y = c(NA,71.5,53.1,53.9,55.9,54.9,60.5,NA,NA,NA
,NA,NA,178.0,180.9,180.9,NA,NA,192.5,194.7)
fit = loess(formula = y ~ x,
control = loess.control(surface = "direct"),
span = 0.3, degree = 1)
x2 = seq(0,20,.1)
library(ggplot2)
qplot(x=x2
,y=predict(fit, newdata=data.frame(x=x2))
,geom="line")
Я понимаю, что могу исправить эти ошибки, выбирая большее значение диапазона. Тем не менее, я пытаюсь автоматизировать эту подгонку, так как у меня около 100 000 временных рядов (каждая из них около 20), подобных этому. Есть ли способ, который я могу автоматически выбрать значение диапазона, которое предотвратит эти ошибки, сохраняя при этом достаточно гибкое соответствие данным? Или может кто-нибудь объяснить, что означают эти ошибки? Я немного задумался в функциях loess() и simpleLoess(), но я отказался от того, когда был вызван код C.
Вы можете найти этот пост полезным: https://stat.ethz.ch/pipermail/r-help/2005-November/082853.html. Вы можете вычислить AIC для лёссовых приемов с несколькими различными пролетами и выбрать диапазон с минимальным AIC. – bdemarest
@bdemarest Спасибо за эту ссылку! Тем не менее, я пытаюсь найти способ «математически» выбрать диапазон, а не через AIC/cross-validation/etc. Для моего сценария слишком сложно вычислить дорогостоящие сценарии, которые можно использовать каждый раз несколько раз. –
Пожалуйста, дайте мне знать, какое решение вы в конечном итоге используете. Мои собственные усилия заставили меня поверить, что решения закрытой формы для проблем с лёссовой оптимизацией просто невозможны, но я хотел бы узнать лучший/более быстрый способ выбора диапазона. – bdemarest