Це не помилка.
Як ми вивчили (широко) в коментарях, відбувається дві речі. Перший полягає в тому, що стовпці обмежені для задоволення вимог SVD: кожна повинна мати одиницю довжини і бути ортогональною для всіх інших. Перегляд як випадкова величина , створена з випадковою матриці через конкретний алгоритм SVD, ми тим самим відзначити , що це функціонально незалежним обмеження створюють статистичні залежності між стовпцями .UUXk(k+1)/2U
Ці залежності можуть бути виявлені більшою чи меншою мірою, вивчаючи кореляції між компонентами , але виникає друге явище : рішення SVD не є унікальним. Як мінімум, кожен стовпчик можна незалежно заперечувати, даючи щонайменше чітких розв’язків з стовпцями. Сильні кореляції (що перевищують ) можуть бути викликані зміною знаків стовпців відповідним чином. (Один із способів зробити це наведено в моєму першому коментарі до відповіді Амеби в цій темі: я змушую всіUU2kk1/2uii,i=1,…,kмати однаковий знак, роблячи всі негативні або всі позитивні з однаковою ймовірністю.) З іншого боку, всі кореляції можна зникнути, вибравши знаки випадковим чином, незалежно, з однаковою ймовірністю. (Я наводжу приклад нижче в розділі "Редагувати".)
З обережністю, ми можемо частково розрізнити обидва ці явища при читанні діаграми розсіювання матриці компонентів . Деякі характеристики - наприклад, поява точок, майже рівномірно розподілених у чітко визначених кругових регіонах - вважають відсутністю незалежності. Інші, наприклад, розсіювачі, що демонструють чіткі ненульові кореляції, очевидно, залежать від вибору, зробленого в алгоритмі - але такий вибір можливий лише через відсутність незалежності в першу чергу.U
Кінцева перевірка алгоритму розкладання типу SVD (або Чолеського, LR, LU тощо) - це те, чи робить він те, що вимагає. У цій обставині достатньо перевірити, що коли SVD повертає трійку матриць (U,D,V) , що X відновляється до очікуваної помилки з плаваючою комою продуктом UDV′ ; що стовпчики U і V є ортонормальними; і що D є діагональною, його діагональні елементи невід’ємні та розташовані у низхідному порядку. Я застосував такі тести до svd
алгоритму вR
і ніколи не виявили це помилково. Хоча це не впевненість, що це абсолютно правильно, такий досвід - який, на мою думку, поділяється багатьма людьми - говорить про те, що будь-яка помилка потребує певного вкладу, щоб проявити її.
Далі йде більш детальний аналіз конкретних моментів, порушених у питанні.
Використовуючи процедуру R
' svd
спершу, ви можете перевірити, що зі збільшенням k кореляції між коефіцієнтами U слабшають, але вони все ще не нульові. Якби ви просто мали виконати велике моделювання, ви виявили б, що вони значні. (Коли k=3 , має бути достатньо 50000 ітерацій.) Всупереч твердженню у питанні, кореляції не «повністю зникають».
По-друге, кращим способом вивчення цього явища є повернення до основного питання незалежності коефіцієнтів. Хоча кореляція, як правило, майже до нуля, відсутність незалежності чітко очевидна. Це стало найбільш очевидним при вивченні повного багатомірного розподілу коефіцієнтів U . Характер розподілу проявляється навіть у невеликих моделюваннях, в яких ненульові кореляції ще не можна виявити. Наприклад, вивчіть матрицю розсіювання коефіцієнтів. Щоб зробити це практично, я встановив розмір кожного модельованого набору даних на 4 і зберігав k=2 , таким чином малюючи 1000реалізація матриці 4×2U , створюючи матрицю 1000×8 . Ось його повна матриця розсіювання зі змінними, переліченими за їх положеннями в межах U :
Сканування першого стовпця виявляє цікаву відсутність незалежності між u11 та іншим uij : подивіться, як, наприклад, верхній квадрант розсіювача з u21 майже вакантний; або вивчіть еліптичну хмару вгору нахилу, що описує співвідношення (u11,u22) і хмару, що спадає вниз, для пари (u21,u12) . Уважний погляд виявляє явну відсутність незалежності майже всіх цих коефіцієнтів: мало хто з них виглядає віддалено незалежним, хоча більшість з них демонструє кореляцію майже до нуля.
(Примітка. Більшість кругових хмар - це проекції з гіперсфери, створеної умовою нормалізації, що змушує суму квадратів усіх компонентів кожного стовпця бути одиницею.)
Матриці Scatterplot з k=3 та k=4 демонструють подібні закономірності: ці явища не обмежуються k=2 , а також не залежать від розміру кожного модельованого набору даних: їх просто важче створити та вивчити.
Пояснення цих шаблонів стосуються алгоритму, який використовується для отримання U при розкладанні значення сингулярного значення, але ми знаємо, що такі закономірності незалежності повинні існувати за самими визначальними властивостями U : оскільки кожен наступний стовпчик (геометрично) є ортогональним попередньому ці умови ортогональності накладають функціональні залежності серед коефіцієнтів, які тим самим переводяться на статистичні залежності серед відповідних випадкових величин.
Редагувати
У відповідь на коментарі, можливо, варто зауважити, наскільки ці явища залежності відображають основний алгоритм (для обчислення СВД) та наскільки вони притаманні природі процесу.
У конкретних моделях кореляцій між коефіцієнтами залежать багато від довільних виборів , зроблених з допомогою алгоритму SVD, тому що рішення не є унікальним: стовпці U завжди можуть бути незалежно множаться на −1 або 1 . Немає внутрішнього способу вибору знаку. Таким чином, коли два алгоритми SVD роблять різний (довільний або, можливо, навіть випадковий) вибір знаку, вони можуть спричинити різні шаблони розсіювання значень (uij,ui′j′) . Якщо ви хочете це побачити, замініть stat
функцію в коді нижче на
stat <- function(x) {
i <- sample.int(dim(x)[1]) # Make a random permutation of the rows of x
u <- svd(x[i, ])$u # Perform SVD
as.vector(u[order(i), ]) # Unpermute the rows of u
}
Це спочатку випадковим чином x
упорядковує спостереження , виконує SVD, потім застосовує зворотне впорядкування, u
щоб відповідати початковій послідовності спостереження. Оскільки ефект полягає у формуванні сумішей відбитих та повернутих версій оригінальних розсіювачів, то розсіювачі в матриці будуть виглядати набагато рівномірніше. Всі співвідношення вибірки будуть надзвичайно близькі до нуля (за побудовою: основні кореляції точно до нуля). Проте, відсутність незалежності все одно буде очевидно (в рівномірних кругових формах , які з'являються, в зокрема , між ui,j і ui,j′).
Відсутність даних у деяких квадрантах деяких оригінальних розсіювачів (показано на малюнку вище) виникає з того, як R
алгоритм SVD вибирає знаки для стовпців.
Нічого не змінюється щодо висновків. Оскільки другий стовпчик U є ортогональним для першого, він (розглядається як багатоваріантна випадкова величина) залежить від першого (також розглядається як багатоваріантна випадкова величина). Не можна, щоб усі компоненти одного стовпця були незалежними від усіх компонентів іншого; все, що ви можете зробити, це подивитися на дані способами, які затушовують залежності - але залежність збережеться.
Тут оновлений R
код для обробки випадків k>2 та малювання частини матриці розсіювача.
k <- 2 # Number of variables
p <- 4 # Number of observations
n <- 1e3 # Number of iterations
stat <- function(x) as.vector(svd(x)$u)
Sigma <- diag(1, k, k); Mu <- rep(0, k)
set.seed(17)
sim <- t(replicate(n, stat(MASS::mvrnorm(p, Mu, Sigma))))
colnames(sim) <- as.vector(outer(1:p, 1:k, function(i,j) paste0(i,",",j)))
pairs(sim[, 1:min(11, p*k)], pch=".")