У меня есть датафрейм, который выглядит примерно так:
company_name co_stkdate dailyreturns marketreturn
A 01-01-2000 5.67 4.54
A 02-01-2000 3.43 1.23
A 03-01-2000 -1.01 -0.53
.
.
.
A 30-12-2018 5.65 3.45
A 31-12-2018 2.32 1.32
B 01-01-2000 -2.34 -1.12
B 02-01-2000 1.32 0.34
.
.
.
Есть сотни таких компаний. Я хочу провести регрессию OLS в компании с переходным окном в 1 год.
модель регрессии
dailyreturn = альфа + бета * marketreturn
После выполнения регрессии. Я хочу получить бета-значение для каждого года.
Вывод должен выглядеть примерно так.
company_name year beta
A 2000 0.87
A 2001 0.99
A 2002 0.76
A 2003 0.65
.
.
.
это то, что я сделал до сих пор.
betas <- dbdf %>% group_by(co_code,company_name) %>% do(model=lm(formula=dailylogrtn~niftyreturns,data=.))
Это помогло мне получить одну бета-версию для компании на 2000-2018 годы. Я не уверен, как выполнить регрессионный анализ с движущимися окнами от 1 года.
Регрессионный анализ должен быть с 01-01-2000 по 31-12-2000, затем новое окно с 01-01-2001 по 31-12-2001, затем с 01-01-2002 по 31-12-2002 и т. Д.