#r #matrix #time-series
#r #матрица #временные ряды
Вопрос:
У меня есть два ts
объекта.
structure(c(5.92, 5.97, 5.92, 6.04, 6.32, 6.43, 6.48, 6.04, 6.2,
6.09, 5.29, 5.05, 5.13, 5, 4.81, 4.86, 5.42, 5.22, 5.19, 5.06,
4.95, 4.88, 4.93, 5.03, 4.99, 4.97, 5.1, 4.89, 4.74, 4.56, 4.43,
4.35, 4.22, 4.3, 4.71, 4.76, 4.95, 4.84, 4.84, 4.64, 4.51, 4.54,
4.27, 4.11, 4.07, 3.99, 3.96, 3.92, 3.89, 3.95, 3.91, 3.8, 3.67,
3.55, 3.6, 3.5, 3.38, 3.35, 3.34, 3.41, 3.53, 3.56, 3.45, 3.54,
4.07, 4.37, 4.46, 4.49, 4.19, 4.26, 4.46, 4.43, 4.3, 4.34, 4.34,
4.19, 4.16, 4.13, 4.12, 4.16, 4.04, 4, 3.86, 3.67, 3.71, 3.77,
3.67, 3.84, 3.98, 4.05, 3.91, 3.89, 3.8, 3.94, 3.96, 3.87, 3.66,
3.69, 3.6, 3.6, 3.57, 3.44, 3.44, 3.46, 3.47, 3.77, 4.2, 4.15,
4.17, 4.2, 4.04, 4.01, 3.9, 3.97, 3.88, 3.8, 3.9, 3.92, 3.95,
4.03, 4.33, 4.44, 4.47, 4.59, 4.57, 4.53, 4.55, 4.63, 4.83, 4.87,
4.64, 4.46, 4.37, 4.26, 4.14, 4.07, 3.8, 3.77, 3.62, 3.6, 3.69,
3.7, 3.72, 3.62, 3.47, 3.45, 3.31, 3.23, 3.16, 3.02, 2.94), .Tsp = c(2008.08333333333,
2020.58333333333, 12), class = "ts")
и
structure(c(250000, 246000, 249000, 250000, 255000, 258500, 255000,
245000, 235000, 225000, 226000, 215000, 205000, 215000, 215000,
218000, 225000, 220300, 220000, 211000, 202000, 200000, 200000,
196000, 187000, 200000, 201000, 207500, 220000, 210000, 216600,
200000, 199700, 190000, 190750, 180000, 178000, 171500, 185000,
184000, 195000, 200000, 195000, 175000, 170000, 163000, 160000,
153000, 150000, 165000, 175000, 180500, 198000, 195000, 186000,
177000, 162000, 166000, 165000, 153000, 149000, 164000, 179000,
192000, 213750, 213000, 208500, 197500, 185400, 182000, 180000,
175000, 167000, 183000, 192500, 207500, 225000, 220000, 222500,
206000, 192500, 190000, 190000, 182000, 179000, 199000, 212000,
220000, 228500, 224900, 218000, 210000, 203000, 198000, 199000,
190000, 185995, 206250, 223000, 227750, 232000, 230000, 223000,
210000, 210000, 207500, 208000, 205500, 204000, 222500, 235000,
235000, 245000, 240000, 229700, 222000, 218000, 215000, 219875,
215000, 217500, 230000, 239000, 240000, 249900, 243000, 233000,
229000, 222000, 223000, 220000, 216000, 222000, 232500, 240000,
246000, 249500, 249000, 242000, 235000, 231000, 231250, 230000,
223000, 225000, 248000, 260000, 251000, 254000, 262000, 270000
), .Tsp = c(2008.08333333333, 2020.58333333333, 12), class = "ts")
Оба импортируются как ts
объекты.
Median_price_ts <- ts(chicago$Median_price, start = c(2008, 2), end = c(2020, 8), frequency = 12)
Average_rate_ts <- ts(mortgage_data_monthly$Average_rate, start = c(2008, 2), end = c(2020, 8), frequency = 12)
Когда я cbind()
их объединял, это давало мне следующее:
class(Median_price_ts)
class(Average_rate_ts)
foo <- cbind(Median_price_ts, Average_rate_ts)
class(foo)
Я получаю:
[1] "ts"
[1] "ts"
[1] "mts" "ts" "matrix"
и вместо этого я просто хочу
"mts" "ts"
Почему это важно? Я создаю модель VAR, и, по-видимому, мои данные должны быть только в "mts" "ts"
формате для прогнозирования.
VAR хорошо работает с dataframe
и "mts" "ts" "matrix"
.
Этот учебник выполняет cbind()
и получает только "mts" "ts"
. Я также работал с другими такими наборами данных раньше и мог делать прогнозы с помощью just "mts" "ts"
, но нет "mts" "ts" "matrix"
.
Цените советы!
Ответ №1:
Вы можете принудительно включить класс foo
:
class(foo) <- c('mts', 'ts')
class(foo)
#[1] "mts" "ts"
foo
# Median_price_ts Average_rate_ts
#Feb 2008 5.92 250000
#Mar 2008 5.97 246000
#Apr 2008 5.92 249000
#May 2008 6.04 250000
#Jun 2008 6.32 255000
#Jul 2008 6.43 258500
#Aug 2008 6.48 255000
#Sep 2008 6.04 245000
#Oct 2008 6.20 235000
#...
#...