Ошибка в сегментированном по времени анализе (значения слишком близки друг к другу. Пожалуйста, измените (уменьшите количество) начальных значений)

#r #time #segment #trend

#r #время #сегмент #тенденция

Вопрос:

Я использовал сегментированный по времени анализ, чтобы получить значение p для тенденции остановленных исследований, но это выдает ошибку

Используемый код

 data<-read.table(text="
Year    Stopped
2015    973
2016    1025
2017    1151
2018    1384
2019    4507
2020    15557
", header=T, sep="")
library(segmented)
dput(names(data))
q.lm<-lm(Stopped ~ Year,data);summary (q.lm)

o<-segmented(q.lm,seg.Z=~Year,  psi = c(2019)); summary(o)
#Error: psi values too close each other. Please change (decreases number of) starting values
#Alternatively I tried this
o<-segmented(q.lm,seg.Z=~Year,  psi = NA); summary(o)
#Error: psi values too close each other. Please change (decreases number of) starting values
o$psi;slope(o);confint.segmented(o)
o.fitted<-fitted(o)
o.model<-data.frame(Year = data$Year, Percent =o.fitted)
 

Вот мой график, на котором мне нужно получить значение p для его тренда
введите описание изображения здесь

Любые советы будут с благодарностью приняты.

Ответ №1:

Попробуйте выполнить подгонку log(Stopped) Year . График в вопросе предполагает, что, возможно, стоит попробовать. И это также указывает 2018 на точку останова, а не 2019 .

 library(segmented)

q.lm <- lm(log(Stopped) ~ Year, data)
summary(q.lm)

o <- segmented(q.lm, seg.Z = ~Year, psi = 2018)
summary(o)

plot(o)
points(log(Stopped) ~ Year, data)
 

введите описание изображения здесь