Две линии тренда для одной и той же серии

#r #time-series #trendline

#r #временные ряды #линия тренда

Вопрос:

Здравствуйте, у меня есть годовой ряд с ВВП на душу населения с 1950 по 2017 год, и я хочу построить две линии тренда за разные периоды на одной диаграмме рассеяния, чтобы показать изменение траектории роста Баланса, одна линия тренда будет для 1950-1977 годов, а другая — с 1995 по 2016 год. Возможно ли это?

 gdp_mex_ts<-ts(data$log_pib_mex, start = 1950, end =2017 )
trend<-lm(data$log_pib_mex~data$ï..Year)
plot(gdp_mex_ts,type= "o")
abline(trend)
  

Я хочу добавить две разные линии тренда (с 1950 по 1977 год и с 1995 по 2016 год) на эту диаграмму рассеяния, чтобы сравнить их.

вот пример данных:

 head(data)

 ï..Year log_pib_us log_pib_mex
1    1950   10.49388    9.699450
2    1951   10.52621    9.766078
3    1952   10.55047    9.802166
4    1953   10.58458    9.764262
5    1954   10.59741    9.858383
6    1955   10.64326    9.926464
  

Комментарии:

1. Пожалуйста, предоставьте минимальный воспроизводимый пример.

2. Да, это возможно. На самом деле невозможно показать вам, как это сделать, если мы не знаем, в каком формате находятся ваши данные, в каких единицах измерения время, какие пакеты вы используете и т.д.

3. Я действительно новичок в R, поэтому я просто нарисовал линию тренда с 1950 по 2017 год

Ответ №1:

Я решил это, используя следующий код:

 gdp_mex_ts<-ts(data$log_pib_mex, start = 1950, end =2017 )
df1<-subset(data, date <= 1977)
trend1<-lm(df1$log_pib_mex~df1$date)
df2<-subset(data, date>=1995)
trend2<-lm(df2$log_pib_mex~df2$date)

plot(gdp_mex_ts,type= "o", xaxt = "n")
axis(1, at = seq(1950, 2017, by = 5), las=2)
abline(trend1, col="red")
abline(trend2, col="blue")
  

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