Есть ли какое-либо преимущество SVD перед PCA?

20

Я знаю, как математически рассчитать PCA и SVD, и я знаю, что оба могут быть применены к регрессии линейных наименьших квадратов.

Основным преимуществом SVD математически представляется то, что его можно применять к неквадратным матрицам.

Оба сосредоточены на разложении матрицыПомимо упомянутого преимущества SVD, есть ли какие-либо дополнительные преимущества или идеи, предоставляемые при использовании SVD по сравнению с PCA?ИксИкс

Я действительно ищу интуицию, а не математические различия.

Baz
источник
2
Вопрос неясен. Сначала вы упоминаете регрессию OLS. Затем он исчезает. Далее, advantage... SVD over PCA- SVD и PCA нельзя сравнивать как математическую операцию и метод анализа данных. Ваш вопрос может быть что-то о способах сделать PCA ? Или что ты спрашиваешь?
ttnphns
1
Извините за то, что неясно. У меня есть оценки типа гребня, один из которых получен с использованием PCA, а другой с использованием SVD. Существуют различия в способах настройки моделей, то есть в терминах предшествующей информации, которую они используют. Но они написаны одним и тем же автором. Я пытаюсь понять различия между ними и пытался выяснить, почему он использовал PCA против SVD в качестве основы для своего анализа. Возможно, это было произвольно, но если бы я мог понять плюсы и минусы, это помогло бы. Пока что кажется, что SVD - просто способ сделать PCA, который имеет тенденцию быть более численно устойчивым.
Баз
Это хорошо, но я просто удивился, если использование SVD также дает какие-либо дополнительные эконометрические идеи / интуицию по этой проблеме.
Баз
1
Если вы хотите уделить особое внимание эконометрике, я думаю, что вам нужно изложить это в вопросе и объяснить, почему. Я не могу видеть, что обсуждение SVD и PCA, которые в любом случае являются совершенно разными видами животных, отличается для эконометрики от любой другой отрасли статистической науки.
Ник Кокс
4
@Baz: «Пока кажется, что SVD - это просто способ сделать PCA, который имеет тенденцию быть более численно стабильным» - [в этом контексте] это совершенно верно, да.
говорит амеба, восстановите Монику

Ответы:

43

Как сказали @ttnphns и @ nick-cox, SVD - это численный метод, а PCA - это метод анализа (например, метод наименьших квадратов). Вы можете сделать PCA, используя SVD, или вы можете сделать PCA, выполняя собственные разложения (или ), или вы можете сделать PCA, используя множество других методов, так же, как вы можете решать наименьшие квадраты с помощью дюжины различных алгоритмов. как метод Ньютона или градиентного спуска или SVD и т. д.ИксТИксИксИксТ

Таким образом, у SVD нет «преимущества» перед PCA, потому что это все равно, что спрашивать, является ли метод Ньютона лучше, чем метод наименьших квадратов: эти два несопоставимы.

purple51
источник
8
Хороший пример того, как краткий, короткий ответ все еще может найти суть вопроса.
Ник Кокс
3
Ничего себе, 8 голосов за этот ответ и 0 голосов за исходный вопрос. Это не имеет особого смысла. Если вы проголосуете за ответ, рассмотрите вопрос также!
говорит амеба, восстанови Монику
1
@amoeba Вопрос для меня в замешательстве. Ответ проясняет, в чем путаница. Я думаю, что это хорошее объяснение различий в голосах.
Ник Кокс
5
На самом деле, чтобы быть более педантичным, SVD - это не числовой метод сам по себе, это линейная алгебраическая операция, которая может быть реализована с использованием специальных числовых методов, включающих такие вещи, как преобразования домохозяев ...
purple51
Тем не менее, преимущество (при выводе главных компонентов через) SVD является числовым: большая точность. Смотрите, например, Jolliffe (2002). Может быть
Никос Александрис
2

Вопрос действительно в том, нужно ли вам выполнить нормализацию столбцов по Z-шкале перед применением SVD. Это потому, что PCA является вышеупомянутым преобразованием, за которым следует SVD. Иногда делать нормализацию довольно вредно. Если ваши данные, например, являются (преобразованными) количеством слов, которые являются положительными, вычитание среднего значения определенно вредно. Это связано с тем, что нули, обозначающие отсутствие слова в документе, будут сопоставлены с отрицательными числами с высокой величиной. В линейных задачах следует использовать более высокую величину, чтобы представить диапазон, в котором ваши функции наиболее чувствительны. Также деление на стандартное отклонение вредно для этого типа данных.

Стефан Савьев
источник
Это интересный пример, но я считаю, что он должен принадлежать какой-то другой теме. PCA определенно можно сделать без z-скоринга, поэтому я не согласен с вашим первым предложением: это не то, что этот вопрос «действительно задает».
говорит амеба: восстанови монику
PCA и SVD одинаковы, если вы игнорируете вычитание средств (я упомянул это Z-скоринг, иногда люди дают PCA с делением на stdev). Поэтому я не согласен с тем, что вы можете сделать PCA без вычитания средств. Вы можете сделать PCA на неквадратных матрицах.
Стефан Савев