나는 대답이 '그렇다'고 생각하지만 여전히 무언가가 옳지 않다고 느낀다. 문헌에 일반적인 결과가 있어야합니까, 누군가 나를 도울 수 있습니까?
나는 대답이 '그렇다'고 생각하지만 여전히 무언가가 옳지 않다고 느낀다. 문헌에 일반적인 결과가 있어야합니까, 누군가 나를 도울 수 있습니까?
답변:
아니.
세 개의 변수 , 및 고려하십시오 . 그들의 공분산 행렬 은 가 양수가 아닌 벡터 ( )가 때문에 양의 이 아닙니다.
모집단 공분산 행렬은 양의 반 정밀도입니다.
( 여기서 속성 2 참조 )
불완전한 표본 공분산의 형태로도 볼 수 있기 때문에 전체 표본의 공분산 행렬 (결 측값 없음)에도 동일하게 적용됩니다.
그러나 부동 소수점 수치 계산의 부정확성으로 인해 대수적으로 양의 정한 경우조차도 양의 반정의가 아닌 것으로 계산 될 수 있습니다. 알고리즘을 잘 선택하면 도움이 될 수 있습니다.
보다 일반적으로, 일부 변수에서 결 측값을 처리하는 방법에 따라 표본 공분산 행렬 은 이론적으로도 양의 반정의 일 수도 있고 아닐 수도 있습니다. 예를 들어, 페어 와이즈 삭제가 사용되면 양의 반 정확성을 보장 할 수 없습니다. 또한, 누적 된 수치 오차는 개념적으로 양의 반 정밀도 여야하는 샘플 공분산 행렬이 실패하는 원인이 될 수 있습니다.
이렇게 :
x <- rnorm(30)
y <- rnorm(30) - x/10 # it doesn't matter for this if x and y are correlated or not
z <- x+y
M <- cov(data.frame(x=x,y=y,z=z))
z <- rbind(1,1,-1)
t(z)%*%M%*%z
[,1]
[1,] -1.110223e-16
이것은 내가 시도한 첫 번째 예에서 발생했습니다 (아마 씨앗을 제공해야하지만 씨앗을 얻기 전에 많은 예를 시도 해야하는 경우는 거의 없습니다).
대수적으로 0이 되더라도 결과는 음으로 나왔습니다 . 다른 숫자 세트는 양수 또는 "정확한"0을 생성 할 수 있습니다.
-
쌍별 결실을 통한 양성 반정의 상실로 이어지는 중등도 결손의 예 :
z <- x + y + rnorm(30)/50 # same x and y as before.
xyz1 <- data.frame(x=x,y=y,z=z) # high correlation but definitely of full rank
xyz1$x[sample(1:30,5)] <- NA # make 5 x's missing
xyz1$y[sample(1:30,5)] <- NA # make 5 y's missing
xyz1$z[sample(1:30,5)] <- NA # make 5 z's missing
cov(xyz1,use="pairwise") # the individual pairwise covars are fine ...
x y z
x 1.2107760 -0.2552947 1.255868
y -0.2552947 1.2728156 1.037446
z 1.2558683 1.0374456 2.367978
chol(cov(xyz1,use="pairwise")) # ... but leave the matrix not positive semi-definite
Error in chol.default(cov(xyz1, use = "pairwise")) :
the leading minor of order 3 is not positive definite
chol(cov(xyz1,use="complete")) # but deleting even more rows leaves it PSD
x y z
x 0.8760209 -0.2253484 0.64303448
y 0.0000000 1.1088741 1.11270078
z 0.0000000 0.0000000 0.01345364
모집단의 공분산 행렬이 항상 양의 반 인 이유를 이해하려면 여기서 는 실수이고, 는 실수 값인 임의 변수입니다.
이것은 또한 Glen_b가 제시 한 예에서 공분산 행렬이 양의 명확하지 않은 이유를 설명합니다. 우리는 한 및 그래서 , 및 상수 인 랜덤 변수의 분산은 입니다.X 1 = X , X 2 = Y , X 3 = Z = X + Y ∑ 3 i = 1 y i X i = 0 0