Аналіз головних компонентів «назад»: скільки дисперсії даних пояснюється заданою лінійною комбінацією змінних?


17

Я провів аналіз головних компонентів шести змінних , , , , і . Якщо я правильно розумію, непроведений PC1 підказує мені, яка лінійна комбінація цих змінних описує / пояснює найбільшу дисперсію даних, а PC2 повідомляє мені, яка лінійна комбінація цих змінних описує наступну найбільшу дисперсію даних та ін.AABBCCDDEEFF

Мені просто цікаво - чи є якийсь спосіб зробити це "назад"? Скажімо, я обираю деяку лінійну комбінацію цих змінних - наприклад, , чи можу я розробити, скільки дисперсій у даних описується?А + 2 B + 5 CA+2B+5C


7
Строго PC2 - це лінійна комбінація, ортогональна PC1, яка описує наступну найбільшу дисперсію даних.
Генрі

1
Ви намагаєтесь оцінити V a r ( A + 2 B + 5 C )Var(A+2B+5C) ?
vqv

Усі приємні відповіді (три + 1). Мені цікаво думка людей щодо того, чи може бути сформульована проблема вирішена за допомогою прихованих змінних підходів (SEM / LVM), якщо ми розглянемо одну чи кілька прихованих змінних "лінійну комбінацію змінних".
Олександр Блех

1
@ Олександре, моя відповідь насправді суперечить іншим двом. Я відредагував свою відповідь, щоб уточнити незгоду (і планую її відредагувати далі, щоб прописати математику). Уявіть собі набір даних з двома стандартизованими ідентичними змінними X = YX=Y . Скільки дисперсії описано XX ? Два інших рішення дають 50 %50% . Я стверджую, що правильна відповідь - це 100 %100% .
амеба каже, що повернеться до Моніки

1
@amoeba: Незважаючи на те, що все ще намагаюся зрозуміти матеріал повністю, я розумію, що ваша відповідь різна. Коли я сказав "всі приємні відповіді", я мав на увазі, що мені подобається рівень відповідей сам по собі, а не їх правильність . Я вважаю, що він має освітянську цінність для таких людей, як я, які займаються пошуками самоосвіти в нерівному краї, що називається Статистика :-). Сподіваюся, це має сенс.
Олександр Блех

Відповіді:


11

Якщо ми почнемо з того, що всі змінні були центрировані (стандартна практика в PCA), то загальна дисперсія в даних - це лише сума квадратів:

T = i ( A 2 i + B 2 i + C 2 i + D 2 i + E 2 i + F 2 i )

T=i(A2i+B2i+C2i+D2i+E2i+F2i)

Це дорівнює сліду коваріаційної матриці змінних, що дорівнює сумі власних значень матриці коваріації. Це та сама кількість, про яку говорить PCA з точки зору "пояснення даних" - тобто ви хочете, щоб ваші ПК пояснювали найбільшу частку діагональних елементів коваріаційної матриці. Тепер, якщо ми зробимо це об'єктивною функцією для набору прогнозованих значень, таких як:

S = Σ я ( [ я - я ] 2 + + [ Р я - Р я ] 2 )

S=i([AiA^i]2++[FiF^i]2)

Тоді перший головний зводить до мінімуму компонента SS серед усіх ранг 1 підібраних значень ( я , ... , F я )(A^i,,F^i) . Тож здається, що відповідна кількість, за якою ви їдете, - це P = 1 - ST

P=1ST
Щоб використовувати ваш прикладA+2B+5CA+2B+5C, нам потрібно перетворити це рівняння на прогнози рангу 1. Спочатку потрібно нормалізувати ваги, щоб мати суму квадратів 1. Тож замінимо(1,2,5,0,0,0)(1,2,5,0,0,0)(сума квадратів3030) на(130 ,230 ,530 ,0,0,0)(130,230,530,0,0,0). Далі ми "оцінюємо" кожне спостереження відповідно до нормованих ваг:

Z i = 130 Ai+230 Bi+530 Ci

Zi=130Ai+230Bi+530Ci

Потім ми множимо бали на ваговий вектор, щоб отримати наш прогноз на 1 ранг.

( Я Б я З я Д я Е я Ж я ) = Z я × ( 130 230 530 000)

A^iB^iC^iD^iE^iF^i=Zi×130230530000

Потім підключіть ці оцінки в SS розрахуйте PP . Ви також можете помістити це в позначення норми матриці, що може запропонувати інше узагальнення. Якщо ми встановимо OO як матрицю N × qN×q спостережуваних значень змінних ( у вашому випадку q = 6q=6 ), а EE як відповідну матрицю прогнозів. Ми можемо визначити частку дисперсії, пояснену як:

| | O | | 2 2 - | | О - Е | | 2 2| | O | | 2 2

||O||22||OE||22||O||22

Де | | . | | 2||.||2 - норма матриці Фробеніуса . Таким чином, ви можете "узагальнити" це якоюсь іншою нормою матриці, і ви отримаєте міру різниці "пояснення варіації", хоча вона не буде "дисперсією" сама по собі, якщо вона не буде сумою квадратів.


Це розумний підхід, але ваше вираз може бути значно спрощена , і показано, що дорівнює сумі квадратів Z яZi поділене на загальну суму квадратів ТT . Також я вважаю, що це не найкращий спосіб інтерпретувати питання; бачити мою відповідь щодо альтернативного підходу, який я стверджую, має більше сенсу (зокрема, дивіться мою прикладну фігуру там).
амеба каже, що повернеться до Моніки

Подумайте про це так. Уявіть собі набір даних з двома стандартизованими ідентичними змінними X = Y . Скільки дисперсії описано X ? Ваш розрахунок дає 50 % . Я стверджую, що правильна відповідь - це 100 % . X=YX50%100%
амеба каже, що повернеться до Моніки

@amoeba - якщо X = Y, тоді перший ПК є ( 1X=Y2 ,12 )- це робить1балрангівzi=xi+yi(12,12)12 =xi2 (якщо вважатиxi=yi). Це дає ранг1пророкування х я=хI, асамо у я=уя. Отже, ви отримаєтеO-E=0іS=0. Отже, ви отримуєте 100%, як підказує ваша інтуїція. zi=xi+yi2=xi2xi=yi1x^i=xiy^i=yiOE=0S=0
ймовірністьлогічний

Hey, yes, sure, the 1st PC explains 100% variance, but that's not what I meant. What I meant is that X=YX=Y, but the question is how much variance is described by XX, i.e. by (1,0)(1,0) vector? What does your formula say then?
amoeba says Reinstate Monica

@amoeba - this says 50%, but note that the (1,0)(1,0) vector says that the best rank 11 predictor for (xi,yi)(xi,yi) is given as ˆxi=xix^i=xi and ˆyi=0y^i=0 (noting that zi=xizi=xi under your choice of vector). This is not an optimal prediction, which is why you don't get 100%. You need to predict both XX and YY in this set-up.
probabilityislogic

8

Let's say I choose some linear combination of these variables -- e.g. A+2B+5CA+2B+5C, could I work out how much variance in the data this describes?

This question can be understood in two different ways, leading to two different answers.

A linear combination corresponds to a vector, which in your example is [1,2,5,0,0,0][1,2,5,0,0,0]. This vector, in turn, defines an axis in the 6D space of the original variables. What you are asking is, how much variance does projection on this axis "describe"? The answer is given via the notion of "reconstruction" of original data from this projection, and measuring the reconstruction error (see Wikipedia on Fraction of variance unexplained). Turns out, this reconstruction can be reasonably done in two different ways, yielding two different answers.


Approach #1

Let XX be the centered dataset (nn rows correspond to samples, dd columns correspond to variables), let ΣΣ be its covariance matrix, and let ww be a unit vector from RdRd. The total variance of the dataset is the sum of all dd variances, i.e. the trace of the covariance matrix: T=tr(Σ)T=tr(Σ). The question is: what proportion of TT does ww describe? The two answers given by @todddeluca and @probabilityislogic are both equivalent to the following: compute projection XwXw, compute its variance and divide by TT: R2first=Var(Xw)T=wΣwtr(Σ).

R2first=Var(Xw)T=wΣwtr(Σ).

This might not be immediately obvious, because e.g. @probabilityislogic suggests to consider the reconstruction XwwXww and then to compute X2XXww2X2,

X2XXww2X2,
but with a little algebra this can be shown to be an equivalent expression.

Approach #2

Okay. Now consider a following example: XX is a d=2d=2 dataset with covariance matrix Σ=(10.990.991)

Σ=(10.990.991)
and w=(10)w=(10) is simply an xx vector:

variance explained

The total variance is T=2T=2. The variance of the projection onto ww (shown in red dots) is equal to 11. So according to the above logic, the explained variance is equal to 1/21/2. And in some sense it is: red dots ("reconstruction") are far away from the corresponding blue dots, so a lot of the variance is "lost".

On the other hand, the two variables have 0.990.99 correlation and so are almost identical; saying that one of them describes only 50%50% of the total variance is weird, because each of them contains "almost all the information" about the second one. We can formalize it as follows: given projection XwXw, find a best possible reconstruction XwvXwv with vv not necessarily the same as ww, and then compute the reconstruction error and plug it into the expression for the proportion of explained variance: R2second=X2XXwv2X2,

R2second=X2XXwv2X2,
where vv is chosen such that XXwv2XXwv2 is minimal (i.e. R2R2 is maximal). This is exactly equivalent to computing R2R2 of multivariate regression predicting original dataset XX from the 11-dimensional projection XwXw.

It is a matter of straightforward algebra to use regression solution for vv to find that the whole expression simplifies to R2second=Σw2wΣwtr(Σ).

R2second=Σw2wΣwtr(Σ).
In the example above this is equal to 0.99010.9901, which seems reasonable.

Note that if (and only if) ww is one of the eigenvectors of ΣΣ, i.e. one of the principal axes, with eigenvalue λλ (so that Σw=λwΣw=λw), then both approaches to compute R2R2 coincide and reduce to the familiar PCA expression R2PCA=R2first=R2second=λ/tr(Σ)=λ/λi.

R2PCA=R2first=R2second=λ/tr(Σ)=λ/λi.

PS. See my answer here for an application of the derived formula to the special case of ww being one of the basis vectors: Variance of the data explained by a single variable.


Appendix. Derivation of the formula for R2secondR2second

Finding vv minimizing the reconstruction XXwv2XXwv2 is a regression problem (with XwXw as univariate predictor and XX as multivariate response). Its solution is given by v=((Xw)(Xw))1(Xw)X=(wΣw)1wΣ.

v=((Xw)(Xw))1(Xw)X=(wΣw)1wΣ.

Next, the R2R2 formula can be simplified as R2=X2XXwv2X2=Xwv2X2

R2=X2XXwv2X2=Xwv2X2
due to the Pythagoras theorem, because the hat matrix in regression is an orthogonal projection (but it is also easy to show directly).

Plugging now the equation for vv, we obtain for the numerator: Xwv2=tr(Xwv(Xwv))=tr(XwwΣΣwwX)/(wΣw)2=tr(wΣΣw)/(wΣw)=Σw2/(wΣw).

Xwv2=tr(Xwv(Xwv))=tr(XwwΣΣwwX)/(wΣw)2=tr(wΣΣw)/(wΣw)=Σw2/(wΣw).

The denominator is equal to X2=tr(Σ)X2=tr(Σ) resulting in the formula given above.


I think this is an answer to a different question. For example, it not the case that that optimising your R2R2 wrt ww will give the first PC as the unique answer (in those cases where it is unique). The fact that (1,0)(1,0) and 12(1,1)12(1,1) both give 100% when X=YX=Y is evidence enough. Your proposed method seems to assume that the "normalised" objective function for PCA will always understate the variance explained (yours isn't a normalised PCA objective function as it normalises by the quantity being optimised in PCA).
probabilityislogic

I agree that our answers are to different questions, but it's not clear to me which one OP had in mind. Also, note that my interpretation is not something very weird: it's a standard regression approach: when we say that xx explains so and so much variance in yy, we compute reconstruction error of yxbyxb with an optimal bb, not just yxyx. Here is another argument: if all nn variables are standardized, then in your approach each one explains 1/n1/n amount of variance. This is not very informative: some variables can be much more predictive than others! My approach reflects that.
amoeba says Reinstate Monica

@amoeba (+1) Great answer, it's really helpful! Would you know any reference that tackles this issue? Thanks!
PierreE

@PierreE Thanks. No, I don't think I have any reference for that.
amoeba says Reinstate Monica

4

Let the total variance, TT, in a data set of vectors be the sum of squared errors (SSE) between the vectors in the data set and the mean vector of the data set, T=i(xiˉx)(xiˉx)

T=i(xix¯)(xix¯)
where ˉxx¯ is the mean vector of the data set, xixi is the ith vector in the data set, and is the dot product of two vectors. Said another way, the total variance is the SSE between each xixi and its predicted value, f(xi)f(xi), when we set f(xi)=ˉxf(xi)=x¯.

Now let the predictor of xixi, f(xi)f(xi), be the projection of vector xixi onto a unit vector cc.

fc(xi)=(cxi)c

fc(xi)=(cxi)c

Then the SSESSE for a given cc is SSEc=i(xifc(xi))(xifc(xi))

SSEc=i(xifc(xi))(xifc(xi))

I think that if you choose cc to minimize SSEcSSEc, then cc is the first principal component.

If instead you choose cc to be the normalized version of the vector (1,2,5,...)(1,2,5,...), then TSSEcTSSEc is the variance in the data described by using cc as a predictor.


This is a reasonable approach, but I think this is not the best way to interpret the question; see my answer for an alternative approach that I argue makes more sense (in particular, see my example figure there).
amoeba says Reinstate Monica

Think about it like that. Imagine a dataset with two standardized identical variables X=YX=Y. How much variance is described by XX? Your calculation gives 50%50%. I argue that the correct answer is 100%100%.
amoeba says Reinstate Monica
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.