Вычисление корреляции по группам в R с ddply - PullRequest
0 голосов
/ 14 мая 2019

Я новичок здесь и новичок в R. У меня есть вопрос, и я надеюсь, что, возможно, кто-то может мне помочь. Это снимок набора данных, с которым я работаю

head(Clearing_Dates_CDS_Spreads)  
  date       average_correlation                            Reference_Entity
1 2009-02-12           0.4631034            EDP - Energias de Portugal, S.A.
2 2009-02-12           0.4631034 International Business Machines Corporation
3 2009-02-12           0.4631034                          Domtar Corporation
4 2009-02-12           0.4631034                               MetLife, Inc.
5 2009-02-12           0.4631034                            Caterpillar Inc.
6 2009-02-12           0.4631034                            GKN HOLDINGS PLC
  Days_Left_Until_Clearing
1                     -333
2                     -431
3                    -2349
4                     -788
5                     -368
6                    -1845

Итак, у меня есть строки столбцов: дата - средняя корреляция - ссылочный объект - осталось дней до очистки.

Всего у меня 1.076.435 записей: дата варьируется от 12.02.2009 до 04.06.2018 и повторяется в ее столбце в общей сложности 461 раз, потому что у нас есть 461 ссылочная сущность, у каждой из которых есть определенное количество дней. осталось, пока они не будут очищены. Средняя корреляция, которая уже есть в наборе данных, является средней из ежедневных корреляций четырнадцати банков, которые были частью моей выборки для этого анализа.

Теперь мне нужно вычислить среднюю корреляцию для всех корреляций, перечисленных как имеющие, например, 300 дней до очистки. И затем средняя корреляция для всех корреляций, которые имеют 299 дней, оставшихся до очистки и так далее, и так далее. Мне сказали, что пакет ddply - тот, с которым нужно работать, но, поскольку я новичок во всем этом, я не смог заставить его работать.

Я пытался:

Clearing_Dates_CDS_Spreads_Average_Correlation <- ddply(Clearing_Dates_CDS_Spreads$date, 
  Clearing_Dates_CDS_Spreads$average_correlation, 
  Clearing_Dates_CDS_Spreads$Days_Left_Until_Clearing, "date", cor)

потому что я хотел создать новый набор данных со строками «дата», «средняя корреляция» и, очевидно, допустил какую-то ошибку, потому что получал сообщения об ошибках.

...