w * Cov * t (w) 공식을 사용하여 마이너스 포트폴리오 분산을 생성 할 수 있습니다. 음의 분산의 의미는 무엇입니까? 그냥 “0”이라고 가정해야합니까? 음수 분산은 허수에 의존하지 않고 음수의 제곱근 (표준 편차를 추정하기 위해)을 취할 수 없기 때문에 문제가됩니다. 또한 분산에 대한 공식과 일치하지 않는 것 같습니다. 제곱은 항상 양수를 생성하므로 평균에서 제곱 된 편차의 평균입니다.
음의 분산은 내 실제 문제의 빙산의 일각입니다. (사전) 기대치를 나타내는 공분산 행렬이 있습니다. 나는 과거 수익을 가지고 있지 않으며 사용하고 싶지도 않습니다. 23 개의 자산 클래스가 있습니다. 저는 포트폴리오 최적화 (평균 분산이 아님)를 가지고 놀았습니다. 최적의 포트폴리오를위한 가중치 세트 (w)를 생각해 냈습니다. 벤치 마크 (b)에 대한 가중치 세트도 있습니다. 계산 중입니다. 추적 오류. 추적 오차의 제곱은 (w-b) * cov * t (w-b) 여야합니다. 이것은 부정적인 것입니다.
또한 내 가중치는 내 벤치 마크와 충분히 다르며, 검사와 직감으로 0이 잘못된 답이라고 말합니다. 이를 더 증명하기 위해 자산 클래스에 대해 1000 개의 무작위 수익률 (수익률 및 공분산 행렬 사용)을 생성하고 w 및 b에 대해 1000 개의 수익률을 계산했습니다. 그런 다음 차이를 계산하고 분산을 취했습니다. 그리고 저는 컴퓨터가 있기 때문에 이것을 1000 번 반복했습니다. 가장 낮은 추적 오류 (차분 분산의 제곱근)는 2.7 %였습니다. 따라서 분산이 양수 여야한다고 확신합니다.
FWIW, 23×23 공분산 행렬이 있습니다. 대부분은 공개 소스 ( Research 제휴사 ). 시립 채권을 추가합니다. 다른 용도의 공분산 행렬에 매우 만족합니다. 예 : w와 b의 포트폴리오 분산이 대단해 보입니다.
내가 잘못하고있는 일에 대해 계산이나 해석에 대한 통찰력을 주시면 감사하겠습니다. 내 모든 작업은 R에 있으며 일부 데이터와 코드를 공유 할 수 있습니다.
댓글
- 당신의 행렬은 반 정확한 양수가 아니므로 그렇지 않습니다. 공분산 행렬. 이것이“수동으로”설계된“공분산”행렬의 한 가지 문제입니다. 행렬에서 “가까운”(일부 거리의 의미에서) 합법적 인 공분산 행렬을 만드는 방법이 있습니다.
- var / cov 행렬의 데이터를 게시 할 수 있습니까? 위의 설명에서 알 수 있듯이 양의 반 정확성이 아닐 가능성이 높습니다.
답변
지시 된대로 여기에서 다른 사용자가 설계 한 공분산 행렬이 양의 정의가 아닌 것으로 보이므로 이상한 동작이 나타납니다.
이것은 수학적 문제가 아니라 경제적 문제입니다.
장난감의 예로서 이것을보십시오 : A와 B가 강한 음의 상관 관계 (예 : -1) 인 경우 둘 다 는 3 번째 C와 음의 상관 관계가 있습니다 (다시 -1). 그러한 행렬을 설계 (= 기록) 할 수 있지만 이것은 올바른 수학이나 실제 생활에서 만날 수없는 것입니다.
What 다음을 수행 할 수 있습니다.
- 각 자산에 대한 음이 아닌 분산 선택 $ V = diag (v_1, v_2, \ ldots, v_n) $
- 양의 정의 행렬 선택 상관 관계에 대해 $ C $
- 계산 $ Cov = \ sqrt {V} C \ sqrt {V} $ 여기서 제곱근이 구성 요소별로 있습니다.
세 번째 단계의 계산은 stack.overflow 에서 설명합니다. 패키지 corpcor 는 공분산을 선택한 대상으로 축소하는 방법을 제공하고 양의 정의 검사를 제공합니다.
는 주어진 어떤 것에 가장 가까운 (선택된 의미에서) 양-정호 행렬을 찾을 수 있습니다.
답변
Ivan이 의견에서 지적했듯이 행렬은 유효한 공분산 행렬이 아닙니다. 다르게 말하면, 그러한 공분산 행렬을 추정 할 수있는 데이터 세트 (완전한 관측 값 포함)가 없습니다.
이러한 행렬을 복구하는 가장 간단한 방법은 행렬의 음의 고유 값을 0으로 바꾸는 것입니다. . 이 메서드는 R 패키지 NMOF
의 함수 repairMatrix
에서 구현됩니다. 을 유지합니다.
답변
Ivan “의 댓글은 좋은 답변입니다. 댓글 대신 답변을하여 검색 결과에 답변이 있는지 확인하세요. 내 공분산 행렬은 양의 반 정호 여야합니다. 내가 이해하는 바와 같이 이것은 대략 음수가 아닌 숫자로 해석됩니다. 곱하면 0 또는 같은 부호를 가진 무언가를 얻을 수 있습니다.다음은 내가 유용하다고 생각한 양의 반 정호 및 양의 정의 에 대한 간략한 설명에 대한 링크입니다. 고마워 이반.
댓글
- 정답이 아닙니다. 이를 확인하기 위해 행렬이 양의 반정의인지 확인하기 위해 모든 고유 값이 양수인지 확인하는 가장 쉬운 몇 가지 옵션이 있습니다. 또 다른 좋은 대안은 주요 미성년자가 모두 긍정적인지 확인하는 것입니다. Matlab은 순식간에이를 확인할 수 있습니다.
- 양의 반 정호 행렬은 $ x ' \ Sigma x $가 음이 아님을 의미합니다. 모든 실제 $ x $. 양의 정부 호 행렬의 경우 $ x ' \ Sigma x $는 정확히 0보다 큽니다.