Я думаю, що відповідь має бути так, але я все-таки вважаю, що щось невірно. У літературі повинні бути якісь загальні результати, хтось мені може допомогти?
Я думаю, що відповідь має бути так, але я все-таки вважаю, що щось невірно. У літературі повинні бути якісь загальні результати, хтось мені може допомогти?
Відповіді:
Немає.
Розглянемо три змінні, , і . Їх матриця коваріації не є позитивно визначеною, оскільки існує вектор ( ), для якого не є додатним.
Матриці коваріації населення є позитивними напіввизначеними.
(Дивіться властивість 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
Це сталося на першому прикладі, який я спробував (напевно, я мав би поставити насіння, але це не так рідко, що вам доведеться спробувати багато прикладів, перш ніж отримати його).
Результат вийшов негативним , хоча він повинен бути алгебраїчно нульовим. Інший набір чисел може дати позитивне число або "точний" нуль.
-
Приклад помірної відсутності, що призводить до втрати позитивної напівдефінітності через парне видалення:
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, матриця коваріації не була визначеною позитивно. Ми мали , і , так , і дисперсія випадкової величини, яка є постійною, дорівнює .