Линейная регрессия с петлей - PullRequest
0 голосов
/ 21 января 2019

В настоящее время я делаю регрессионный анализ для каждой компании на норвежском фондовом рынке, где я регрессирую возвраты акций для каждой компании по контрольным показателям.Период 2009-2018 гг.Мне удалось сделать регрессию для каждой компании в течение всего периода, но я также хочу сделать регрессию для каждого месяца для каждой компании.Наш набор данных содержит ежемесячные биржевые возвраты.

Исходный набор данных состоит из 26000 наблюдений, которые я затем преобразовал в подмножества с общим количеством 390 элементов (компаний).

Что я сделал такдалеко показано ниже:

data_subset <- by(data,data$Name, subset)
data_lm <-lapply(data_subset,function(data) lm(data$CompanyReturn~data$DJReturn))
data_coef <- lapply(data_lm, coef)
data_tabell <- matrix(0,length(data_subset),2)
for (i in 1:length(data_subset)) {
data_tabell[i,]<-coef(data_lm[[i]])
}
colnames(data_tabell)<-c("Intercept","Coefficient")
rownames(data_tabell)<-names(data_subset)

Кто-нибудь знает, как я могу указать, что я хочу делать регрессию только для компании за определенный период, например, каждый год или каждый месяц для каждой компании?

Заранее спасибо за помощь!

1 Ответ

0 голосов
/ 22 января 2019

Если вы используете пакет tidyverse в этом случае, вам будет намного легче делать все эти вещи. Допустим, у вас есть данные в следующей структуре,

data:

| CompanyID | CompanyName | Date       | CompanyReturn | DJReturn |
|-----------|-------------|------------|---------------|----------|
| 1         | abc         | 01-01-2002 | 500           | 250      |
|           |             |            |               |          |
|           |             |            |               |          |

Используя tidyVerse, вы можете просто использовать group_by, чтобы создать подмножество и запустить регрессию,

data %>%
  group_by(CompanyID, month = month(as.Date(Date))) %>%
  nest() %>%
  mutate(model = map(data, ~lm(CompanyReturn ~ DJReturn, data = .)))

Это даст вам таблицу со столбцами CompanyID, month и model, где столбец model называется столбцом списка и содержит соответствующую подогнанную модель линейной регрессии.

...