Объединение данных для регрессии в R - PullRequest
0 голосов
/ 11 апреля 2020

Я делаю свою диссертацию о производительности акций после контроля французско-французской модели. Концепция состоит в том, что у меня есть несколько акций в моем портфеле с ежемесячной доходностью в столбце. (каждая акция может начинаться с / заканчиваться в разные периоды.) Я хотел бы получить простой средний доход, представляющий данные за этот день. Например, в 1997/08/29 возвращение должно быть (-0,02787 + 0,12) / 2. После создания нового набора данных (y) я запусту линейную регрессию с французской моделью fama (x).

Итак, мой вопрос: (1) как я могу создать новый набор данных со средней доходностью? (2) Как сделать линейную регрессию? (Я думаю, что я могу понять это, найдя материал в Интернете, но я был бы признателен, если бы вы могли мне помочь)

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

Я новичок в R ...

enter image description here

Ответы [ 2 ]

0 голосов
/ 11 апреля 2020

Опция также aggregate из base R

aggregate(Return ~ Date, df, mean)

data

set.seed(12)
df <- data.frame(
  Date = c(19970630,19970731,19970829,19970930,19970731,19970829),
  Ticker = c(rep("A", 4), rep("B", 2)),
  Return = rnorm(6)
)
0 голосов
/ 11 апреля 2020

Предполагая, что, как вы говорите, вы сами определите линейную регрессию, вот ответ на вопрос № 1:

Чтобы рассчитать среднее (арифметическое c) значение Return на Date используйте, например, tapply:

tapply(df$Return, df$Date, mean)

  19970630   19970731   19970829   19970930 
-1.4805676 -0.2102363 -0.6145203 -0.9200052 

Данные:

set.seed(12)
df <- data.frame(
  Date = c(19970630,19970731,19970829,19970930,19970731,19970829),
  Ticker = c(rep("A", 4), rep("B", 2)),
  Return = rnorm(6)
)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...