рассчитать стандартное отклонение окна 100 дней в данных, имеющих 2000 точек - PullRequest
0 голосов
/ 12 июля 2019

У меня 2000 точек данных, и я хочу рассчитать стандартное отклонение для всех окон размером 100 дней, я получаю несколько значений NA. Кто-нибудь может предложить редактирование. вот ссылка на csv: https://drive.google.com/file/d/1NnavFM_FAXIGIyHsNXBbOpoysJYlGnm8/view?usp=sharing

df<- read.csv("BSE_DAX_DCC.csv")
nrow(df)
sd1=c()
for (i in 1:200){
duration = df[(100*(i-1)+1):100*(i),'corr']
sd1[i]=sd(duration)

}
sd1

1 Ответ

0 голосов
/ 12 июля 2019

Это вычисляет среднее из 100 строк, центрированных вокруг текущей точки (или меньше строк, если доступно меньше строк). Вы можете добавить аргумент align= (см. ?rollapply), но если вы выровняете вправо или влево, тогда будет одна строка, имеющая только одну точку, а sd из одной точки - NA.

library(zoo)
transform(df, mean = rollapply(corr, 100, sd, partial = TRUE))

Для наглядности используем меньший пример:

rollapply(1:5, 3, sd, partial = TRUE)
## [1] 0.7071068 1.0000000 1.0000000 1.0000000 0.7071068

# same
c(sd(1:2), sd(1:3), sd(2:4), sd(3:5), sd(4:5))
## [1] 0.7071068 1.0000000 1.0000000 1.0000000 0.7071068
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...