2014-11-12 2 views
0

롤링 윈도우에서 평균 편차 '1/n [합계 (Xi-mu)]'를 계산하고 싶습니다. '뮤'는 롤링 평균입니다. 그리고 Xi는 롤링 관찰입니다. 다음은 윈도우 크기 n = 10 인 샘플 코드입니다.평균으로부터 롤 편차를 계산하는 효율적인 방법이 있습니까?

library(TTR) 
dt<-rnorm(10000) 
avg<-runMean(dt,n=10,cumulative=F) 
df<-data.frame(dt,avg) 

ls<-lapply(10:nrow(df),function(.){ 
    dev<-(df[(.-10+1):.,'dt']-df[.,'avg']) 
    sk=mean(dev) 
}) 

(p<-unlist(ls)) 

lapply는 효율적인 방법이 아닙니다. 대체 솔루션이 무엇인지 확실하지 않습니다. 어떤 제안이라도 고맙습니다.

+0

'abs (Xi-mu)'의 의미를 사용하십시오. –

답변

2

차이점은 간단히 설명했듯이 취소됩니다 (here).

library(zoo) 
dt <- rnorm(1000) 
rollapply(dt, 10, function(x) mean(x - mean(x))) 
+1

차이가 아닙니다. 그것은 평균 (Xi-mu)입니다. 차이는 평균입니다 ((Xi-mu)^2) – YYY

+2

하지만 의미가 없으므로 편차가 사라지고 결과는 0이됩니다. – DatamineR

+0

함수를 다음과 같이 수정할 수 있습니다. function (x) mean (x - mean (x))' – DatamineR

관련 문제