В рамках университетского задания я должен провести предварительную обработку данных на довольно большом, многомерном (> 10) наборе необработанных данных. Я не статистик в каком-либо смысле этого слова, поэтому я немного смущен тем, что происходит. Заранее извиняюсь за, возможно, смешной простой вопрос - у меня кружится голова, когда я смотрю на разные ответы и пытаюсь пробежаться по статистике.
Я прочитал это:
- PCA позволяет мне уменьшить размерность моих данных
- Это достигается путем объединения / удаления атрибутов / измерений, которые сильно коррелируют (и, таким образом, являются немного ненужными).
- Это достигается путем нахождения собственных векторов на ковариационных данных (благодаря хорошему учебнику, который я прошел, чтобы изучить это)
Что здорово.
Однако я действительно изо всех сил пытаюсь понять, как я могу применить это практически к своим данным. Например (это не тот набор данных, который я буду использовать, а попытка приличного примера, с которым люди могут работать), если бы у меня был набор данных с чем-то вроде ...
PersonID Sex Age Range Hours Studied Hours Spent on TV Test Score Coursework Score
1 1 2 5 7 60 75
2 1 3 8 2 70 85
3 2 2 6 6 50 77
... ... ... ... ... ... ...
Я не совсем уверен, как бы я интерпретировал любые результаты.
Большинство учебных пособий, которые я видел в Интернете, дают мне очень математическое представление о PCA. Я провел некоторое исследование этого и проследил за ними - но я все еще не совсем уверен, что это значит для меня, который просто пытается извлечь некоторую форму значения из этой кучи данных, которые я имею перед собой.
Простое выполнение PCA для моих данных (с использованием пакета stats) выплевывает матрицу чисел NxN (где N - число исходных измерений), что для меня совершенно естественно.
Как я могу сделать PCA и взять то, что я получаю таким образом, который я могу затем перевести на простой английский с точки зрения исходных размеров?
Ответы:
На страницах 13-20 учебника, который вы опубликовали, дается очень интуитивное геометрическое объяснение того, как PCA используется для уменьшения размерности.
Матрица 13x13, которую вы упоминаете, вероятно, является матрицей «загрузки» или «вращения» (я предполагаю, что ваши исходные данные имели 13 переменных?), Которые можно интерпретировать одним из двух (эквивалентных) способов:
Столбцы (абсолютные значения) вашей матрицы загрузки описывают, сколько каждая переменная пропорционально «вносит» в каждый компонент.
Матрица вращения вращает ваши данные на основе, определенной вашей матрицей вращения. Поэтому, если у вас есть двумерные данные и вы умножаете их на матрицу вращения, ваша новая ось X будет первым основным компонентом, а новая ось Y будет вторым основным компонентом.
РЕДАКТИРОВАТЬ: Этот вопрос часто задают, поэтому я просто выложу подробное визуальное объяснение того, что происходит, когда мы используем PCA для уменьшения размерности.
Рассмотрим выборку из 50 точек, созданных из шума y = x +. Первый главный компонент будет лежать вдоль линии y = x, а второй компонент будет лежать вдоль линии y = -x, как показано ниже.
Соотношение сторон немного портит, но поверьте мне на слово, что компоненты ортогональны. Применение PCA повернет наши данные, и компоненты станут осями X и Y:
Данные до преобразования являются кружками, данные после - крестиками. В этом конкретном примере данные не были повернуты так сильно, как они были перевернуты по линии y = -2x, но мы могли бы так же легко инвертировать ось Y, чтобы сделать это действительно вращением без потери общности, как описано здесь ,
Большая часть дисперсии, то есть информация в данных, распространяется по первому главному компоненту (который представлен осью X после того, как мы преобразовали данные). Существует небольшая разница по второму компоненту (теперь это ось Y), но мы можем полностью отбросить этот компонент без значительной потери информации . Таким образом, чтобы свести это из двух измерений в 1, мы позволим проекции данных на первый главный компонент полностью описать наши данные.
Мы можем частично восстановить наши исходные данные, повернув (хорошо, проецируя) их обратно на исходные оси.
Темно-синие точки - это «восстановленные» данные, тогда как пустые точки - это исходные данные. Как вы можете видеть, мы потеряли часть информации из исходных данных, в частности, разницу в направлении второго основного компонента. Но для многих целей это сжатое описание (с использованием проекции по первому главному компоненту) может удовлетворить наши потребности.
Вот код, который я использовал для генерации этого примера на тот случай, если вы захотите скопировать его самостоятельно. Если вы уменьшите дисперсию шумового компонента во второй строке, объем данных, потерянных при преобразовании PCA, также уменьшится, поскольку данные будут сходиться к первому главному компоненту:
источник
prcomp
где матрица нагрузок - это просто матрица, столбцы которой являются единичными собственными векторами. Я думаю, что вы излишне техничны, и в большинстве случаев я считаю, что эти термины взаимозаменяемы.Я бы сказал, что ваш вопрос является квалифицированным вопросом не только в,
cross validated
но и в томstack overflow
, где вам будет сказано, как реализовать уменьшение размерности в R (... и т. Д.), Чтобы эффективно помочь вам определить, какой столбец / переменная вносит больший вклад в дисперсию весь набор данных.PCA (анализ основных компонентов) имеет те же функциональные возможности, что и SVD (разложение по сингулярным значениям), и фактически они представляют собой точно такой же процесс после применения
scale
/ z-преобразования к набору данных.Вот некоторые ресурсы, которые вы можете использовать за полчаса, чтобы лучше понять.
Я не способен дать яркое решение для кодирования, чтобы помочь вам понять, как реализовать svd и что делает каждый компонент, но люди потрясающие, вот несколько очень информативных постов, которые я использовал, чтобы догнать прикладную сторону SVD, даже если я знать, как вручную рассчитать проблему 3by3 SVD .. :)
источник
В PCA вы хотите описать данные в меньшем количестве переменных. Вы можете получить ту же информацию в меньшем количестве переменных, чем со всеми переменными. Например, изученные часы и результаты тестов могут быть коррелированы, и мы не должны включать оба.
В вашем примере, скажем, ваша цель - измерить, насколько «хорош» студент / человек. Глядя на все эти переменные, может быть непонятно, как это сделать. PCA позволяет нам четко видеть, какие студенты хорошие / плохие.
Если первый основной компонент объясняет большую часть вариаций данных, то это все, что нам нужно. Вы найдете корреляцию между этим компонентом и всеми переменными. «Большие» корреляции означают важные переменные. Например, первый компонент может быть сильно коррелирован с изученными часами и оценкой теста. Столь высокие значения первого компонента указывают на высокие значения времени обучения и оценки теста.
источник