تحلیل مؤلفه‌های اصلی

نقاط سبز رنگ، نمونه‌هایی از توزیع نرمال دومتغیره‌اند و محور آبی رنگ، مختصات جدید در راستای قرار گرفتن بیشترین تغییرات نمونه بر روی مؤلفه‌های اصلی است.|بندانگشتی|220x220پیکسل

**تحلیل مؤلفه‌های اصلی**  تبدیلی در فضای برداری است، که تحلیل مجموعه داده‌های بزرگ با تعداد زیادی بعد یا ویژگی، افزایش تفسیرپذیری داده‌ها با حفظ حداکثر مقدار اطلاعات و تجسم داده‌های چند بعدی را فراهم می‌کند. تحلیل مؤلفه‌های اصلی در واقع، یک تکنیک آماری برای کاهش ابعاد یک مجموعه داده‌است.
این کار با تبدیل خطی داده‌ها به یک سیستم مختصات جدید انجام می‌شود که (بیشتر) تغییرات در داده‌ها را می‌توان با ابعاد کمتری نسبت به داده‌های اولیه توصیف کرد. بسیاری از مطالعات از دو مؤلفه اصلی اول برای نمایش داده‌ها در دو بعد و شناسایی بصری خوشه‌های نقاط داده نزدیک به هم استفاده می‌کنند. تحلیل مؤلفه‌های اصلی در بسیاری از زمینه‌ها مانند ژنتیک جمعیت، مطالعات میکروبیوم‌ها و علوم جوی کاربرد دارد.

مؤلفه‌ها اصلیِ مجموعه‌ای از نقاط در یک فضای مختصات حقیقی، دنباله‌ای از بردارهای واحد p هستند، که در آن بردار i-ام امتداد خطی است که بهترین تطابق را با داده‌ها دارد و در عین حال به i-1 بردار اول متعامد است. در اینجا بهترین خط، خطی است که میانگین مجذورات فاصله عمود نقاط از خط را کمینه می‌کند. این بردارها یک پایه متعامد و یکه را تشکیل می‌دهند که در آن ابعاد مختلف داده‌ها به‌طور خطی همبستگی ندارند. تحلیل مؤلفه‌های اصلی فرایند محاسبه مؤلفه‌های اصلی و استفاده از آن‌ها برای تغییر پایه داده‌ها است که گاهی فقط از چند مؤلفه اصلی اول استفاده می‌کند و بقیه را نادیده می‌گیرد.

## تاریخچه
تحلیل مؤلفه‌های اصلی اولین بار در سال ۱۹۰۱ توسط کارل پیرسون به عنوان متناظری از قضیه محورهای اصلی در مکانیک ارائه شد. این روش بعدها به صورت مستقل توسط هارولد هتلینگ در دهه ۱۹۳۰ میلادی توسعه یافت و نام‌گذاری شد. باتوجه به کاربرد این روش آن را تبدیل گسسته کارانن-لوف یا KLT در پردازش سیگنال نیز یا تبدیل هتلینگ در کنترل کیفیت چند متغیره می‌نامند.

## ایده
تحلیل مؤلفه‌های اصلی را می‌توان به عنوان برازش یک بیضی با ابعاد p به داده‌ها در نظر گرفت، که در آن هر محور بیضی یک مؤلفه اصلی را نشان می‌دهد. اگر برخی از محورهای بیضی کوچک باشد، واریانس در امتداد آن محور نیز کوچک است.
برای پیدا کردن محورهای بیضی، ابتدا باید با کم کردن میانگین مقادیر هر متغیر از آن‌ها، میانگین مجموعه داده را صفر کنیم. این مقادیر تبدیل شده حالا به جای مقادیر اصلی برای هر یک از متغیرها استفاده می‌شود. سپس، ماتریس کواریانس داده‌ها را محاسبه کرده و مقادیر ویژه و بردارهای ویژه آن را محاسبه می‌کنیم. سپس باید هر یک از بردارهای ویژه متعامد را نرمال کنیم تا آنها را به بردارهای واحد تبدیل کنیم. پس از انجام این کار، هر یک از بردارهای ویژه واحد متعامد را می‌توان به عنوان محوری از بیضی برازش داده‌ها تفسیر کرد. این انتخاب پایه، ماتریس کوواریانس را به ماتریسی قطری تبدیل می‌کند، که در آن درایه‌های روی قطر واریانس هر محور را نشان می‌دهد. درصد واریانسی که هر بردار ویژه از اطلاعات موجود بیان می‌کند را می‌توان با تقسیم مقدار ویژه مربوط به آن بردار ویژه بر مجموع همه مقادیر ویژه محاسبه کرد.

## جزئیات
تحلیل مؤلفه‌های اصلی در تعریف ریاضی یک تبدیل خطی متعامد است که داده را به دستگاه مختصات جدید می‌برد به‌طوری‌که بزرگ‌ترین واریانس داده بر روی اولین محور مختصات، دومین بزرگ‌ترین واریانس بر روی دومین محور مختصات قرار می‌گیرد و همین‌طور برای بقیه.

ماتریس n \times p داده \mathbf{X} با میانگین تجربی صفر، که هر سطر یک مجموعه مشاهده و هر ستون داده‌های مربوط به یک شاخصه است را در نظر بگیرید.
از منظر ریاضی، این تبدیل با مجموعه‌ای lتایی از بردارهای p-بعدیِ وزن یا ضرایب \mathbf{w}_{(k)} = (w_1, \dots, w_p)_{(k)}  تعریف می‌شود که هر بردار سطری \mathbf{x}_{(i)} از \mathbf{X} را به بردار جدیدی از *امتیازات* مؤلفه‌های اصلی \mathbf{t}_{(i)} = (t_1, \dots, t_l)_{(i)} به صورت

{t_{k}}_{(i)} = \mathbf{x}_{(i)} \cdot \mathbf{w}_{(k)} \qquad \mathrm{for} \qquad i = 1,\dots,n \qquad k = 1,\dots,l 

تطبیق می‌دهد. به این صورت که متغیرهای در \mathbf{t} بیشترین واریانس ممکن از داده‌های \mathbf{X} را داشته باشد. همچنین هر بردار ضریب \mathbf{w} باید یک بردار واحد باشد و l معمولاً بسیار کمتر از p انتخاب می‌شود.

### مؤلفه اول
برای این‌که واریانس را بیشینه کنیم، اولین بردار وزن \mathbf{w}_{(1)} باید شرط زیر را برآورده کند:

\mathbf{w}_{(1)}
= \arg\max_{\Vert \mathbf{w} \Vert = 1} \,\left\{ \sum_i (t_1)^2_{(i)} \right\}
= \arg\max_{\Vert \mathbf{w} \Vert = 1} \,\left\{ \sum_i \left(\mathbf{x}_{(i)} \cdot \mathbf{w} \right)^2 \right\}

و اگر آن را به صورت ماتریسی بنویسیم خواهیم داشت:

\mathbf{w}_{(1)}
= \arg\max_{\left\| \mathbf{w} \right\| = 1} \left\{ \left\| \mathbf{Xw} \right\|^2 \right\}
= \arg\max_{\left\| \mathbf{w} \right\| = 1} \left\{ \mathbf{w}^\mathsf{T} \mathbf{X}^\mathsf{T} \mathbf{X w} \right\}

از آن‌جایی که \mathbf{w}_{(1)} باید یک بردار واحد باشد خواهیم داشت:

\mathbf{w}_{(1)} = \arg\max \left\{ \frac{\mathbf{w}^\mathsf{T} \mathbf{X}^\mathsf{T} \mathbf{X w}}{\mathbf{w}^\mathsf{T} \mathbf{w}} \right\}

کمیتی که باید بیشینه شود را می‌توان به عنوان خارج قسمت رایلی در نظر گرفت. یک نتیجه برای یک ماتریس مثبت نیمه معین مانند \mathbf{X}^T\mathbf{X} این است که حداکثر مقدار ممکن ضریب، بزرگ‌ترین مقدار ویژه ماتریس است، که زمانی رخ می‌دهد که \mathbf{w} بردار ویژه مربوط باشد.

با پیدا کردن \mathbf{w}_{(1)}، اولین مؤلفه اصلی بردار داده \mathbf{x}_{(i)} را می‌توان به صورت امتیاز t_{1(i)} = \mathbf{x}_{(i)} \cdot \mathbf{w}_{(1)} در مختصات تبدیل‌شده به دست آورد.

### مؤلفه‌های بعدی
مؤلفه kام را می‌توان با کم کردن k - 1 مؤلفه اصلی اول از \mathbf{X} به‌دست‌آورد:

\mathbf{\hat{X}}_k = \mathbf{X} - \sum_{s = 1}^{k - 1} \mathbf{X} \mathbf{w}_{(s)} \mathbf{w}_{(s)}^{\mathsf{T}} 

و سپس بردار وزنی که حداکثر واریانس را از این ماتریس داده جدید استخراج می‌کند به‌دست می‌آوریم:

\mathbf{w}_{(k)}
= \mathop{\operatorname{arg\,max}}_{\left\| \mathbf{w} \right\| = 1} \left\{ \left\| \mathbf{\hat{X}}_{k} \mathbf{w} \right\|^2 \right\}
= \arg\max \left\{ \tfrac{\mathbf{w}^\mathsf{T} \mathbf{\hat{X}}_{k}^\mathsf{T} \mathbf{\hat{X}}_{k} \mathbf{w}}{\mathbf{w}^T \mathbf{w}} \right\}

عبارت بالا بردارهای ویژه باقیمانده \mathbf{X}^T\mathbf{X} را با حداکثر مقادیر برای کمیت در پرانتز با مقادیر ویژه متناظر آنها را به‌دست می‌آورد؛ بنابراین بردارهای وزن همان بردارهای ویژه \mathbf{X}^T\mathbf{X} هستند.
مؤلفه اصلی kام بردار داده \mathbf{x}_{(i)} را می‌توان به صورت امتیاز t_{k(i)} = \mathbf{x}_{(i)} \cdot \mathbf{w}_{(k)} در مختصات تبدیل‌شده به دست آورد.

بنابراین، تجزیه کامل مؤلفه‌های اصلی \mathbf{X} را می‌توان به این صورت نشان داد:

\mathbf{T} = \mathbf{X}\mathbf{W}

که در آن \mathbf{W} یک ماتریس p \times p از وزن‌ها است که ستون‌های آن بردارهای ویژه \mathbf{X}^T\mathbf{X} هستند. ترانهاده \mathbf{W} گاهی تبدیل سفید یا کروی نامیده می‌شود.

### تجزیه مقدارهای منفرد

تبدیل مؤلفه‌های اصلی را می‌توان با تجزیه ماتریس دیگری، یعنی تجزیه مقدارهای منفرد \mathbf{X} انجام داد.

\mathbf{X} = \mathbf{U}\mathbf{\Sigma}\mathbf{W}^T

که این‌جا \mathbf{\Sigma} یک ماتریس قطری n \times p از اعداد مثبت \sigma_{(K)} (یا همان مقادیر تکین \mathbf{X}) است. \mathbf{U} یک ماتریس n \times n است که ستون‌های آن بردارهای متعامد واحدی به طول n هستند که بردارهای تکین چپ \mathbf{X} نامیده می‌شوند و \mathbf{W} یک ماتریس p \times p است که ستون‌های آن بردارهای متعامد واحدی به طول p هستند که بردارهای تکین راست \mathbf{X} نامیده می‌شوند.

با این تجزیه می‌توان ماتریس \mathbf{X}^T\mathbf{X} را به صورت زیر نوشت:

\begin{align}
\mathbf{X}^T\mathbf{X}
& = \mathbf{W}\mathbf{\Sigma}^\mathsf{T} \mathbf{U}^\mathsf{T} \mathbf{U}\mathbf{\Sigma}\mathbf{W}^\mathsf{T} \\
& = \mathbf{W}\mathbf{\Sigma}^\mathsf{T} \mathbf{\Sigma} \mathbf{W}^\mathsf{T} \\
& = \mathbf{W}\mathbf{\hat{\Sigma}}^2 \mathbf{W}^\mathsf{T}
\end{align}

که \hat{\mathbf{\Sigma}} ماتریس قطری مربعی شامل مقادیر تکین \mathbf{X} است که صفرهای اضافی آن حذف شده‌است و عبارت  \mathbf{\hat{\Sigma}^2}=\mathbf{\Sigma}^\mathsf{T} \mathbf{\Sigma}  برای آن برقرار است.
مقایسه با بردارهای ویژه \mathbf{X}^T\mathbf{X} نشان می‌دهد که بردارهای تکین راست \mathbf{X} برابر با بردارهای ویژه \mathbf{X}^T\mathbf{X} و همچنین مقادیر تکین \mathbf{X} برابر با ریشه دوم مقادیر ویژه \mathbf{X}^T\mathbf{X} هستند.
با استفاده از تجزیه مقدارهای منفرد، ماتریس امتیاز \mathbf{T} را به صورت زیر نوشت:

\begin{align}
\mathbf{T}
& = \mathbf{X} \mathbf{W} \\
& = \mathbf{U}\mathbf{\Sigma}\mathbf{W}^\mathsf{T} \mathbf{W} \\
& = \mathbf{U}\mathbf{\Sigma}
\end{align}

بنابراین هر ستون ماتریس \mathbf{T} را می‌توان از حاصل ضرب بردارهای تکین چپ \mathbf{X} و مقدار تکین متناظر به‌دست‌آورد.

## محدودیت‌های تحلیل مولفه‌های اصلی
استفاده از تحلیل مؤلفه‌های اصلی منوط به فرض‌هایی است که در نظر گرفته می‌شود. از جمله:
* فرض خطی بودن
فرض بر این است که مجموعه داده ترکیب خطی پایه‌هایی خاص است.
* فرض بر این که میانگین و کواریانس از نظر احتمالاتی قابل اتکا هستند.
* فرض بر این که واریانس شاخصه اصلی داده‌است.

## محاسبه مولفه‌های اصلی با استفاده از ماتریس کواریانس
بر اساس تعریف ارائه شده از تحلیل مؤلفه‌های اصلی، هدف از این تحلیل انتقال مجموعه داده X با ابعاد M به داده Y با ابعاد L است. بنابرین فرض بر این است که ماتریس X از بردارهای X_1 \dots X_N تشکیل شده‌است که هر کدام به صورت ستونی در ماتریس قرار داده شده‌است. بنابرین با توجه به ابعاد بردارها (M) ماتریس داده‌ها به صورت M \times N است.

### محاسبه میانگین تجربی و نرمال‌سازی داده‌ها
نتیجه میانگین تجربی، برداری است که به صورت زیر به دست می‌آید:

u[m]=\frac{1}{N}\sum^{N}_{i=1}{X[m,i]}

که به‌طور مشخص میانگین تجربی روی سطرهای ماتریس اعمال شده‌است.
سپس ماتریس فاصله تا میانگین به صورت زیر به دست می‌آید:

B = X-uh

که h برداری با اندازه 1 \times N با مقدار ۱ در هرکدام از درایه‌ها است.

### محاسبه ماتریس کواریانس
ماتریس کواریانس C با ابعاد M \times M به صورت زیر به دست می‌آید:

C=\mathbb{E}[B\otimes B]=\mathbb{E}[B\cdot B^{\ast}]=\frac{1}{N}B\cdot B^{\ast}

*: به‌طوری که:
*: \mathbb{E} میانگین حسابی است.
*: \otimes ضرب خارجی است.
*: B^{\ast} ماتریس ترانهاده مزدوج ماتریس B است.

### محاسبه مقادیر ویژه ماتریس کواریانس و بازچینی بردارهای ویژه
در این مرحله، مقادیر ویژه و بردارهای ویژه ماتریس کواریانس، C، به دست می‌آید.

V^{-1}CV=D

V ماتریس بردارهای ویژه و D ماتریس قطری است که درایه‌های قطر آن مقادیر ویژه هستند.
آنچنان که مشخص است، هر مقدار ویژه متناظر با یک بردار ویژه است. به این معنا که ماتریس V ماتریسی M \times M است که ستون‌های آن بردارهای ویژه می‌باشند و بردار ویژه V_q در ستون qام قرار دارد و مقدار ویژه qام یعنی درایهٔ \lambda_q = D_{q,q} متناظر با آن است.
بازچینی بردارهای ویژه بر اساس اندازهٔ مقادیر ویژه متناظر با آن‌ها صورت می‌گیرد؛ یعنی بر اساس ترتیب کاهشی مقادیر ویژه، بردارهای ویژه بازچینی می‌شوند؛ یعنی p\leq q\Rightarrow \lambda_p \leq \lambda_q

### انتخاب زیرمجموعه‌ای از بردارهای ویژه به عنوان پایه
چپ|قاب|تحلیل مقادیر ویژه ماتریس کواریانس

انتخاب زیرمجموعه‌ای از بردارهای ویژه با تحلیل مقادیر ویژه صورت می‌گیرد. زیرمجموعه نهایی با توجه به بازچینی مرحله قبل به صورت V_1\dots V_l انتخاب می‌شود. در اینجا می‌توان از انرژی تجمعی استفاده کرد که طبق آن

g[m]=\sum_{q=1}^m{\lambda_q}

انتخاب l باید به صورتی باشد که حداقل مقدار ممکن را داشته باشد و در عین حال g مقدار قابل قبولی داشته باشد. به‌طور مثال می‌توان حداقل l را انتخاب کرد که

g[m=l] \leq 90\%

بنابرین خواهیم داشت:

W[p,q] = V[p,q], p=1\dots M ,q = 1\dots l

### انتقال داده به فضای جدید
برای این کار ابتدا تبدیلات زیر انجام می‌گیرد:
ماتریس s_{M,1} انحراف معیار مجموعه داده‌است که می‌تواند به صورت زیر به دست بیاید:

s[i] =\sqrt{C[i,i]}  

سپس داده به صورت زیر تبدیل می‌شود:

Z = \frac{B}{s}

که ماتریسهای C و B در بالا توضیح داده شده‌اند.
داده‌ها می‌توانند به ترتیب زیر به فضای جدید برده شوند:

Y = W^{\ast}.Z

## کاربرد
### هوش
اولین کاربرد تحلیل مؤلفه‌ای در پیداکردن و اندازه‌گیری مؤلفه‌های هوش انسانی بود. در گذشته باورها بر این بود که هوش دارای مؤلفه‌های نامرتبط مختلفی مانند هوش فضایی، هوش کلامی، استنتاج، قیاس و غیره است و می‌توان امتیازات مربوط به این موارد را با تحلیل مؤلفه‌ای از نتایج آزمون‌های مختلف به‌دست‌آورد تا یک شاخص واحد به نام ضریب هوش (IQ) به‌دست‌آورد.
روان‌شناس آماری چارلز اسپیرمن در واقع تحلیل مؤلفه‌ای را در سال ۱۹۰۴ برای نظریه دو عاملی هوش خود توسعه داد و یک تکنیک رسمی را به علم روان‌سنجی اضافه کرد. در سال ۱۹۲۴، تورستون ۵۶ عامل هوش را بررسی کرد و مفهوم سن ذهنی را توسعه داد. تست‌های استاندارد هوش امروزی بر اساس همین کار اولیه است.

### ژنتیک جمعیت
در سال ۱۹۷۸ کاوالی-اسفورزا و دیگران پیشگام استفاده از تحلیل مؤلفه‌های اصلی برای خلاصه‌کردن داده‌ها دربارهٔ تنوع در فرکانس‌های ژن انسانی در مناطق مختلف بودند. مؤلفه‌ها، الگوهای متمایزی از جمله گرادیان و امواج سینوسی را نشان دادند. آنها این الگوها را ناشی از رویدادهای مهاجرت باستانی تفسیر کردند.

## نرم‌افزارها
* در نرم‌افزار متلب تابع `princomp` مؤلفه‌های اصلی را بازمی‌گرداند که در نسخه‌های جدید، تابع `pca` جایگزین آن شده‌است.
* در زبان پایتون کتابخانه matplotlib دارای پکیج PCA در ماژول `mlab.` است.
* کتابخانه scikit-learn در پایتون برای یادگیری ماشین که شامل PCA, PCA احتمالی، Kernel PCA, Sparse PCA و تکنیک‌های دیگر در ماژول `decomposition` است.
* OpenCV
* Eviews
* در نرم‌افزار R تابع `prcomp` و `princomp` مؤلفه‌های اصلی را بازمی‌گرداند. `prcomp` از تجزیه مقدارهای منفرد استفاده می‌کند که به‌طور کلی دقت عددی بهتری دارد. برخی از پکیج‌ها که PCA را در R پیاده‌سازی می‌کنند، عبارتند از: `ade4` و `vegan` و `ExPosition`

## جستارهای وابسته
* تحلیل مولفه‌های مستقل
* تحلیل تفکیک خطی
* تجزیه مقدارهای منفرد
* فشرده‌سازی داده‌ها
* تحلیل تناظر
* فاکتورگیری نامنفی ماتریس
* حداقل مربعات جزیی

## منابع

رده:آمار چندمتغیره
رده:تجزیه مقادیر منفرد
رده:تجزیه‌های ماتریس
رده:تحلیل داده
رده:تقلیل ابعاد
رده:داده‌کاوی
رده:فشرده‌سازی داده‌ها
رده:یادگیری ماشین