2015-01-24 2 views
0

나는 각각 10 개의 주식 목록을 가지고 있으며 각각은 로그 리턴 (AIG, JPM, ...)의 시계열을 가지고있다. 다음과 같이 나는 주식의 각각의 로그 수익률을 계산 한 : 공동 분배 R

PB29 <- as.numeric(unlist(AIG[2])) 
n31 <- length(PB29) 
R.AIG <- (log(PB29[-1]/PB29[-n31])) 

그래서 나는 로그 주식 수익률 (R.AIG, R.JPM, R.PNC, 10 시간 시리즈의 목록을 가지고 ...) 나는 그들의 공동 분배를 원합니다. R에서 어떻게 할 수 있습니까?

감사합니다.

답변

0

필자는 우연히 불과 몇 분 전 금융 응용 프로그램의 공동 배포 구조를 조사하는 것에 대해 글을 마쳤습니다. here.

공동 분배는 가정에 따라 다릅니다. 비모수 관절 분포를 찾고 있다면 경험적 분포를 사용하는 것을 고려할 수 있습니다. copula 패키지에는 상품에 제공 할 C.n 기능이 있습니다.

cop <- normalCopula(c(0.6,0.36, 0.6),dim=3,dispstr="un") 
u <- pobs(yourData) 
fitted.cop <- fitCopula(cop, u, method="itau") 

그런 다음 밀도를 유도하기 위해 접합부를 사용할 수 있습니다

#u are points at which you'd like the empirical distribution to be evaluated. 
ec <- C.n(u, U=yourData) 

당신은 다음과 같은 일을 할 수있는 다변량 정규 분포를 가정하는 경우. 자세한 내용은 copula 패키지 설명서를 참조하십시오.

mvtnorm 패키지를 사용할 수도 있습니다 (매뉴얼 참조). 분산 행렬은 일반적인 cor 명령으로 계산되어 전달 될 수 있습니다.

+0

덕분에 사실은 공동 분포가 안정적 (일반 안정된 안정) 또는 Student t 분포를 원합니다. –

+0

mvtnorm 패키지 Alexandre를 살펴보십시오. 상관 행렬을 직접 계산하여 시그마 인수로 전달할 수 있습니다. 매뉴얼에는 예제가 있습니다. –