1

Уважаемый переполнение стека сообщества,Нужна помощь в создании простой модели для прогнозирования уровня безработицы с использованием данных из Google Trends

Я новичок в мире статистического программирования с использованием R. Я поставлена ​​задача создания простого авторегрессии модель, с помощью которой можно было бы прогнозировать или, если можно так выразиться, прогнозировать уровень безработицы в стране, используя только данные из Google Trends. Чтобы создать модель, мне был предоставлен файл .csv, содержащий уровень безработицы между 2011 и 2015 годами (5 лет) и CSV-файл, содержащий значения Google Trends для темы «Безработица» (2011-2015).

Как можно представить, я импортировал оба файла в RStudio и преобразовал их во временные ряды (60 месяцев). Вот краткий обзор:

Unemployment Rates vs Google Trends

Я бы сейчас нужна помощь в создании этой модели AR. Пожалуйста, имейте в виду, что эта модель должна оставаться как можно более простой и не должна быть идеальной. Вот мои вопросы:

  • Должен ли я использовать разложенные временные ряды, даже если значения разложенного временного ряда не настолько убедительны (значения p по-прежнему высоки).
  • Каким будет самый простой способ создания авторегрессионной модели с использованием R и двух временных рядов (безработица, google). Затем эту модель следует использовать для прогнозирования фактического уровня безработицы с использованием фактического значения Google Trends.

Поскольку я не очень опытен с R, я немного теряюсь. Помощь будет принята с благодарностью!

Большое спасибо!

Вот data (образцы представлены в коде ниже)
Вот мой код до сих пор:

# Import required libraries 
library(lubridate) 
library(tseries) 
library(xts) 
library(forecast) 
library(readr) 

# # # # # # # # # # # Unemployment Rate # # # # # # # # # # # 

unemploymentRate <- read_csv("~/Desktop/UnemploymentRates_2011-2015.csv") 

# Unemployment sample: structure(list(`Month` = 1:10, Year = c(2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L, 2011L), UnemploymentRate = c(7.9, 7.9, 7.6, 7.3, 7, 6.9, 7, 7, 6.6, 6.5)), .Names = c("Month", "Year", "UnemploymentRate"), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame")) 

# Create monthly time series for unemployment rates 
tsUnemployment <- ts(unemploymentRate$UnemploymentRate, start = c(2011,1), frequency = 12) 

# # # # # # # # # # # Google Trends TopiC# # # # # # # # # # # 


google <- read_csv("~/Desktop/google.csv", col_types = cols(Woche = col_date(format="%Y-%m-%d"))) 
colnames(google)[2] <- "googleTrend" 

#Google sample: structure(list(Week = structure(c(14976, 14983, 14990, 14997, 15004, 15011, 15018, 15025, 15032, 15039), class = "Date"), Unemployment = c(88L, 89L, 100L, 91L, 88L, 88L, 87L, 91L, 89L, 78L)), .Names = c("Week", "Unemployment"), row.names = c(NA, -10L), class = c("tbl_df", "tbl", "data.frame")) 

# Extract month and year from date 
google$Month <- month(google$Week, abbr = FALSE) 
google$Year <- year(google$Week) 

# Aggregate weeks into months using the mean 
aggGoogle <- aggregate(google$googleTrends ~ Month + Year , google, mean) 
colnames(aggGoogle)[3] <- "aggGoogleTrends" 

# Create monthly time series for the Google Trends 
tsGoogle <- ts(aggGoogle$aggGoogleTrends, start = c(2011,1), frequency = 12) 

# # # # # # # # # # # Decomposition + Analysis # # # # # # # # # # # 

decompose_Unemployment <- decompose(tsUnemployment, "additive") 
decompose_Google <- decompose(tsGoogle, "additive") 

finalUnemployment <- decompose_Unemployment$seasonal + decompose_Unemployment$trend + decompose_Unemployment$random 
finalGoogle <- decompose_Google$seasonal + decompose_Google$trend + decompose_Google$random 

Теперь я готов выполнить статистические тесты:

adf.test(tsUnemployment, alternative = "stationary") 
Box.test(tsUnemployment, type = "Ljung-Box") 
Box.test(finalUnemployment, type = "Ljung-Box") 

adf.test(tsGoogle, alternative = "stationary") 
Box.test(tsGoogle, type = "Ljung-Box") 
Box.test(finalGoogle, type = "Ljung-Box") 
+2

Этот вопрос звучит лучше, подходит для [crossvalidated] (http://stats.stackexchange.com/), который является сайтом Q & A для статистических консультаций. – eipi10

+0

Добро пожаловать в Stackoverflow! Это будет полезно, если вы можете предоставить исполняемый файл ... –

+0

@DavidC. Привет, Дэвид, большое спасибо за быстрый ответ. Как вы поняли, я новичок в Stackoverflow, и я не совсем уверен, что вы подразумеваете под «предоставлением исполняемого файла»? Вы хотите, чтобы я загрузил свой R-скрипт? Пока я только преобразовал данные в временные ряды, создал несколько графиков и попытался разложить указанные временные ряды. –

ответ

0

(Как @ eipi10 прокомментировал, это скорее вопрос для Cross Validated, Data Science, или Mathematics, особенно у вас нет проблем с проверкой кода и стата. Если answe rs, вы здесь не поможете, вы должны рассмотреть вопрос в тех местах)

Предложение по вопросу 1: Этот вопрос особенно сложно ответить, поскольку он настолько зависит от ваших данных. Основываясь на this page, если вы решите использовать AR, то применение модели декомпозиции - это подходящие вещи. Однако это не означает, что декомпозиция является вашим единственным вариантом.

Предложение по вопросу 2: Для реализации моделей авторегрессии (AR) в R самый простой подход - от stats. Функция stats::ar должна работать на вас, при условии, что у вас есть набор временных рядов. Если ваши данные составляют data.frame, но не временные ряды (ts), вы можете использовать функцию stats::ts для преобразования.