Вход CSV в R Прогноз с датами через R studio?
У меня есть очень простой CSV-файл, который я пытаюсь поэкспериментировать с различными методами прогноза.
Year total UnemplRt
1 12/31/2013 NA 7.1
2 12/31/2012 39535 8.3
3 12/31/2011 36965 10.0
4 12/31/2010 36234 10.9
5 12/31/2009 37918 8.5
6 12/31/2008 42235 4.3
7 12/31/2007 55698 3.7
8 12/31/2006 58664 3.8
9 12/31/2005 59674 4.7
10 12/31/2004 51439 5.7
Когда я импортирую его с помощью R studio, я получаю этот список. (выше), который просто имеет имя списка. и заголовки Col, на которые я не могу ссылаться.
Я новичок в R, но я понимаю, что у меня должен быть Dataframe, и что в первом столбце должен быть тип даты. Не знаю, как добраться отсюда.. и потом.. И это правильный макет для ввода в прогноз?
Как использовать прогноз (Mutli-модели), чтобы использовать строки 10-4 для прогнозирования "общего" на 3, используя UnemplRt на 3 (который известен заранее и т. Д. 10-3 для прогнозирования 2 и 10-2 для прогнозирования 1) что, конечно, будет прогнозом на предстоящий год... Я получил его из прямой линейной регрессии в электронной таблице, но она выходит слишком высокой, поэтому я ищу методы, которые будут учитывать последние данные лучше и обращайте внимание на кривую, а не просто на прямую.
Это ужасно упрощенно, но, надеюсь, достаточно обобщенно, чтобы другие тоже сочли ответ полезным.
1 ответ
Я не уверен на 100%, о чем вы спрашиваете, но я предполагаю, что вы хотели бы создать модель временного ряда с некоторой регрессией, включенной в нее. Ниже представлен обзор построения простой модели временных рядов и модели с включенным регрессором.
# load the base data as presented in the question
Workbook1 <- structure(list(Year = structure(1:10, .Label = c("31-Dec-04",
"31-Dec-05", "31-Dec-06", "31-Dec-07", "31-Dec-08", "31-Dec-09",
"31-Dec-10", "31-Dec-11", "31-Dec-12", "31-Dec-13"), class = "factor"),
total = c(51439L, 59674L, 58664L, 55698L, 42235L, 37918L,
36234L, 36965L, 39535L, NA), UnemplRt = c(5.7, 4.7, 3.8,
3.7, 4.3, 8.5, 10.9, 10, 8.3, 7.1)), .Names = c("Year", "total",
"UnemplRt"), class = "data.frame", row.names = c(NA, -10L))
# Make a time series out of the value
dependent <- ts(Workbook1[1:9,]$total, start=c(2004), frequency=1)
# load forecast package
require(forecast)
# make a model that fits, you can get other models as well. Think it is best to some studying of the forecast package documentation.
fit <- auto.arima(dependent)
# do the actual forecast
fcast <- forecast(fit)
# here some results of the forecast
fcast
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
2013 39535 31852.42 47217.58 27785.501 51284.50
# You can make a plot as following:
plot(fcast)
Поскольку вы включаете некоторые показатели уровня безработицы, я предполагаю, что вы, возможно, захотите включить это в свой прогноз в какую-то регрессионную модель. Ниже модель о том, как вы можете подойти к этому:
# load independent variables in variables.
unemployment <- ts(Workbook1[1:9,]$UnemplRt, start=c(2004), frequency=1)
unemployment_future <- ts(Workbook1[10:10,]$UnemplRt, start=c(2004), frequency=1)
# make a model that fits the history
fit2 <- auto.arima(dependent, xreg=unemployment)
# generate a forecast with the already known unemployment rate for 2013.
fcast2 <- forecast(fit2,xreg=unemployment_future)
Вот результат прогноза, опять же вы можете составить из него сюжет, как указано выше.
fcast2
Point Forecast Lo 80 Hi 80 Lo 95 Hi 95
2013 45168.02 38848.92 51487.12 35503.79 54832.25
Надежды на вышесказанное помогают.