Я использую пакет strucchange , чтобы определить, где мои сегменты модели кривой.
Мой код выглядит так:
l.fit <- loess(data$y~data$x)
px <- predict(l.fit,newdata=data$x)
bp <- breakpoints(px~1)
Теперь вывод bp:
Optimal 6-segment partition:
Call:
breakpoints.formula(formula = px ~ 1)
Breakpoints at observation number:
161 254 347 440 533
Corresponding to breakdates:
0.2571885 0.4057508 0.5543131 0.7028754 0.8514377
Брейкдаты отчасти бесполезны, так как моя шкала х идет от 1 до 700 или около того. Но сами точки останова - это именно то, чего я хочу, особенно последняя, 533.
Если я наберу:
bp[1]
Я получаю:
$breakpoints
[1] 161 254 347 440 533
но если я попытаюсь присвоить bp[1]
новому вектору, я ничего не получу. Можно ли в любом случае изолировать последнюю точку останова, т.е. 533, и назначить ее переменной, чтобы я мог построить вертикальную линию в точке останова? Мне нужно сделать это для пары сотен наборов данных, поэтому возможность изолировать точки останова была бы действительно полезной.
Спасибо!