تحلیل عاملی یا تجزیه به عامل ها و مولفه های اصلی در R
دسترسی سریع
بسمه تعالی نام دانشجو:میناخان محمدی نام استاد:آقای دکترخاورزاده تمرین:تحلیل عاملی و مولفه های اصلی مقدمه ای بر تحلیل عاملی (روشی برای خلاصه سازی داده ها) تحلیل عاملی چیست؟ تحلیل عاملی نامی عمومی است برای برخی روشهای آماری چند متغیره که هدف اصلی آن خلاصه کردن داده ها می باشد. این روش به بررسی همبستگی درونی تعداد زیادی از متغیرها می پردازد و در نهایت آن ها را در قالب عامل های کلی محدودی دسته بندی و تبیین می کند. تحلیل عاملی روشی هم وابسته بوده که در آن کلیه متغیرها به طور همزمان مدنظر قرار می گیرند، به عبارت دیگر در این تکنیک که به دو نوع Q و R قابل تقسیم است، هریک از متغیرها به عنوان یک متغیر وابسته لحاظ می شوند. بنیان های اولیه تحلیل عاملی: گالتون اولین کسی بود که پایه های اولیه تحلیل عاملی را بنا نهاد پس از او کارل پیرسون د راوایل قرن بیستم روشی برای تحلیل عاملی براساس یک فضای چندبعدی هندسی ارائه داد و در پی آن مک دونال این روش را در زمینه شناسایی جرایم و ارتباط آن با ویژگی های فیزیکی افراد مورد استفاده قرار داد.اسپیرمن نیز در سال 1904 به معرفی مدل های ریاضی این روش پرداخت. با این تلاش ها اصول و بنیان های تحلیل عاملی شکل گرفت و امروزه در سطح وسیع توسط شاخه های مختلف علوم نظیر روانشناسی، اقتصاد، جامعه شناسی، مدیریت، پزشکی و... مورد استفاده قرار می گیرد. اهداف تحلیل عاملی: هدف اصلی تحلیل عاملی تلخیص تعداد زیادی از متغیرها در تعداد محدودی از عامل ها می باشد، بطوریکه کمترین میزان از دست رفتن اطلاعات را داشته باشیم. علاوه بر این تحلیل عاملی کاربردهای مختلفی در تحلیل داده ها دارد که مهمترین آن ها به شرح زیر است :
- دستیابی به ابعادی که به صورت پنهانی در مجموعه وسیعی از متغیرها وجود دارد ولی به آسانی قابل مشاهده نمی باشند. این نوع تحلیل عاملی به تحلیل عاملی نوع R معروف است.
- ابداع روشی برای ترکیب و تلخیص تعداد زیادی از افراد در گروه های مختلف در درون یک جامعه بزرگ. این روش به تحلیل عاملی نوع Q معروف است.
- شناسایی متغیرهای مناسب از بین مجموعه ی وسیعی از متغیرها به منظور استفاده در تحلیل های بعدی رگرسیون چندگانه یا تحلیل تشخیصی.
- ایجاد مجموعه کوچک و کاملا جدیدی از متغیرها که به طور کامل به جای متغیرهای اصلی در تحلیل های بعدی رگرسیون یا تحلیل تشخیصی مورد استفاده قرار گیرد.
فرآیند تصمیم گیری در تحلیل عاملی: مانند سایر روش های آماری اولین گام در تحلیل عاملی بیان مسئله است. برای اجرای یک تحلیل عاملی هر نوع متغیر مرتبط با مسئله تحقیق را می توان بکار گرفت. داده های خام نیز باید از نوع کمی باشند اما در مواقعی می توان از متغیرهای مجازی(با کدهای0و1) و غیر پارامتری یا کیفی نیز استفاده کرد. ماتریس همبستگی : اولین و مهمترین نکته در بکارگیری تحلیل عاملی، محاسبه ماتریس همبستگی است. برای این کار باید مشخص شود که آیا هدف محاسبه همبستگی بین متغیرهااست یا بین پاسخگویان. در صورتی که تلخیص متغیرها مدنظر باشد بایستی همبستگی بین متغیرها محاسبه شود، در اینصورت تکنیک مورد استفاده تحلیل عاملی نوع Rنامیده می شود.اما در صورتیکه هدف از تحلیل عاملی ترکیب و طبقه بندی پاسخگویان در گروه های مختلف باشد، ماتریس همبستگی بین پاسخگویان محاسبه و بکار گرفته می شود؛ و از آن به تحلیل عاملی نوع Qیاد می شود. البته این روش به دلیل مشکل بودن کمتر مورد استفاده قرار می گیرد و بجای آن از روش هایی مانند تحلیل خوشه ای یا گروهبندی سلسله مراتبی استفاده می گردد. انتخاب متغیرهای مناسب برای تحلیل عاملی : یکی از روش های انتخاب متغیرهای مناسب در تحلیل عاملی استفاده از ماتریس همبستگی می باشد. از آنجایی که اساس تحلیل عاملی بر همبستگی بین متغیرها اما از نوع غیر علی استوار است، بنابراین در این روش ماتریس همبستگی بین متغیرها محاسبه می شود. این ماتریس با نمایش میزان رابطه بین متغیرها موجب شکل گیری خوشه هایی می شود به طوریکه متغیرهای درون هرخوشه با یکدیگر همبستگی دارند ولی بین متغیرهای موجود در خوشه های مختلف همبستگی وجود ندارد. از جمله روش های دیگری که به وسیله آن محقق قادر به تشخیصمناسب بودن داده ها برای تحلیل عاملی می باشد، آزمون (Kaiser-Meyer-Olkin) KMO می باشد.مقدار آماره ی این آزمون همواره بین 0و1 تغییر می کند. در صورتیکه مقدار این آماره کمتر از 0.5 باشد داده ها برای تحلیل عاملی مناسب نخواهند بود، اگر مقدار آن بین 0.5 تا 0.69 باشد می توان با احتیاط بیشتر به تحلیل عاملی پرداخت و نهایتاً در حالتیکه مقدار این آماره بیش از 0.7 باشد می توان گفت همبستگی های موچود در بین داده ها برای تحلیل عاملی مناسب می باشند. نکته : از آنجایی که برای معنا دار بودن یک مدل عاملی لازم است متغیرها همبسته باشند، برای اطمینان از اینکه ماتریس همبستگی هایی که پایه ی تحلیل عاملی قرار می گیرد در جامعه برابر با صفر نیست بایستی از آزمون بارتلت استفاده نمود. آزمون بارتلت این فرضیه را که ماتریس همبستگی های مشاهده شده متعلق به جامعه ای با با متغیرهای ناهمبسته است می آزماید. اگر این فرضیه که متغیر ها باهم رابطه ندارند رد نشود، کاربرد تحلیل عاملی زیر سؤال خواهد رفت. حجم نمونه : به عنوان یک قاعده کلی تعداد نمونه باید در حدود چهار یا پنج برابر تعداد متغیرهای مورد استفاده باشد. البته این نسبت تا حدودی محافظه کارانه است. در برخی موارد محقق مجبور است تا با نسبت 2 به 1 نیز به تحلیل عاملی بپردازد، اما در اینصورت بایستی توجه داشت که تفسیر یافته ها با اطمینان کمتری و با احتیاط بیشتری انجام می شود. نهایتا تأکید می شود که تعداد نمونه ها نباید کمتر از 50 باشد. مدل های عاملی : در تحلیل عاملی مدل های مختلفی وجود دارد که از پرکاربردترین آن ها می توان به دو روش تحلیل مؤلفه های اصلی و تحلیل عاملی مشترک اشاره نمود. انتخاب هر یک از این مدل ها به هدف محقق بستگی دارد. مدل تحلیل مؤلفه های اصلی هنگامی مورد استفاده قرار می گیرد که هدف تلخیص متغیرها و دستیابی به تعداد محدودی متغیر برای اهداف پیش بینی باشد. در مقابل، تحلیل عاملی مشترک زمانی بکار می رود که هدف شناسایی عامل ها یا ابعادی باشد که به سادگی قابل شناسایی نیستند. روش استخراج عامل ها : علاوه بر انتخاب مدل تحلیل، محقق باید مشخص کند که عامل ها چگونه باید استخراج شوند. دو روش کلی برای این کار وجود دارد، روش عامل های متعامد و روش عامل های متمایل. در روش متعامد فرض می شود که هر عامل مستقل از سایر عوامل است و همبستگی بین عامل ها به طور قراردادی صفر در نظر گرفته می شود. اما روش عاملی متمایل فرض می کند که متغیرهای اصلی دارای همبستگی و بنابراین عامل ها نیز باید دارای حدی از همبستگی باشند. انتخاب هریک ازاین روش ها بستگی به اهداف تحقیق دارد، اگر هدف تلخیص تعداد متغیرها باشد بدون توجه به اینکه نتایج عامل های استخراج شده تا چه حد معنادار خواهد بود و یا اگر هدف تشکیل مجموعه ای از متغیرهای ناهمبسته باشد برای انجام روش های رگرسیون و پیش بینی ،روش متعامد انتخاب مناسبی خواهد بود. در حالیکه اگر هدف دستیابی به عواملی معنادار باشد، روش متمایل پیشنهاد می شود. معیارهای استخراج تعداد عامل ها: یکی از موارد مهم در تحلیل عاملی تعیین تعداد عامل های قابل استخراج است.بطور معمول به تعداد متغیرهایی که در تحلیل وارد می شوند می توان عامل استخراج کرد، اما آخرین عامل ها معمولاً سهم بسیار کمی در تبیین موضوع دارند.بنابراین نیاز به تعیین تعداد عامل های مورد نیاز داریم. هرچند مبنای دقیقی برای این کار وجود ندارد ولی معیارهایی مانند : معیار مقدار ویژه، معیار پیشین، معیار درصد واریانس و معیار تست بریدگی ، می تواند در تصمیم گیری در مورد عامل های استخراجی کارساز باشند.پس از تعیین تعداد عامل های مورد استخراج ، با بررسی معنی داری بارهای عاملی ، به تفسیر این عامل ها پرداخته می شود. نحوه اجرای تحلیل عاملی در نرم افزارR: برای نوشتن تحلیل عاملی از تابع ()factanal وبرهان هایشان استفاده می کنیم. تحلیل عاملی با استفاده از ماتریس همبستگی و روش حداکثر درست نمایی mleانجام می شود. شکل کلی آن: (تعداد فاکتورها،ماتریس داده ها)factanal حالا برای فهم آن از یک مثال کمک می گیریم. مثال: آزمایشی صورت گرفته که عوامل موثر در خرید کامپیوتر شخصی(لپ تاپ) تعیین می شود. از اطلاعات 16خریدار استفاده شده است: 6متغیر داریم: قیمت ،نوع نرم افزار،زیبایی، نام شرکت تولیدکننده ،نظر دوستان یا دیگران ونظرخانواده. که هر نفر نسبت به شاخص هایی از 1تا7 نمره داده اند. قیمت از1گران تا7مناسب ، نوع نرم افزار از1ساده تا7دشوار، زیبایی از1نامناسب تا7زیبا، نام شرکت تولید کننده از1ناشناخته تا7معروف، نظردوستان از1بی اهمیت تا7مهم ونظرخانواده از1بی اهمیت تا7مهم. همانطور که در جدول زیر آمده است:
kharidar | cost | narmafzar | zibaei | sherkat | khanevade | dostan |
p1 | 6 | 5 | 3 | 4 | 7 | 6 |
p2 | 7 | 3 | 2 | 2 | 2 | 3 |
p3 | 6 | 4 | 4 | 5 | 5 | 4 |
p4 | 5 | 7 | 1 | 3 | 6 | 7 |
p5 | 7 | 7 | 5 | 5 | 2 | 1 |
p6 | 6 | 4 | 2 | 3 | 4 | 5 |
p7 | 5 | 7 | 2 | 1 | 1 | 4 |
p8 | 6 | 5 | 4 | 4 | 7 | 5 |
p9 | 3 | 5 | 6 | 7 | 3 | 4 |
p10 | 1 | 3 | 7 | 5 | 2 | 4 |
p11 | 2 | 6 | 6 | 7 | 6 | 5 |
p12 | 5 | 7 | 7 | 6 | 7 | 7 |
p13 | 2 | 4 | 5 | 6 | 6 | 2 |
p14 | 3 | 5 | 6 | 5 | 2 | 3 |
p15 | 1 | 6 | 5 | 5 | 4 | 5 |
p16 | 2 | 3 | 7 | 7 | 5 | 6 |
داده های بالا رادر نرم افزار excel بصورت فایل متنی با پسوندtxt با آدرس زیر ذخیره می کنیم ودرRبا تابع read table خوانده می شود.
( data.computer<-read.table("E://my data/computer.txt",header=T
وحالا دستور بالا را درR ران میکنیم:
data.computer<-read.table("E://my data/computer.txt",header=T)<
data.computer<
با اجرای دستور بالا خروجی زیر بدست می آید:
kharidar cost narmafzar zibaei sherkat khanevade dostan
1 p1 6 5 3 4 7 6
2 p2 7 3 2 2 2 3
3 p3 6 4 4 5 5 4
4 p4 5 7 1 3 6 7
5 p5 7 7 5 5 2 1
6 p6 6 4 2 3 4 5
7 p7 5 7 2 1 1 4
8 p8 6 5 4 4 7 5
9 p9 3 5 6 7 3 4
10 p10 1 3 7 5 2 4
11 p11 2 6 6 7 6 5
12 p12 5 7 7 6 7 7
13 p13 2 4 5 6 6 2
14 p14 3 5 6 5 2 3
15 p15 1 6 5 5 4 5
16 p16 5 3 7 7 5 6
تابع header=T نشان می دهدکه نام متغیرها در فایل اصلی داده ها معتبر است. حالا با دستور زیر تحلیل عاملی داده های بالا را اجرا می کنیم:
<("factor.computer<-factanal(data.computer[-1],factors=2,scores="regression
factor.computer<
:Call
factanal(x = data.computer[-1], factors = 2, scores = "regression")
:Uniquenesses
cost narmafzar zibaei sherkat khanevade dostan
0.688 0.962 0.145 0.062 0.005 0.604
:Loadings
Factor1 Factor2
cost -0.546 0.118
narmafzar -0.155 0.117
zibaei 0.923
sherkat 0.938 0.243
khanevade 0.993
dostan -0.102 0.621
Factor1 Factor2
SS loadings 2.073 1.460
Proportion Var 0.345 0.243
Cumulative Var 0.345 0.589
Test of the hypothesis that 2 factors are sufficient.
The chi square statistic is 1.11 on 4 degrees of freedom.
The p-value is 0.8
با گزینه factor=2 نشان داده است که تعداد فاکتورهای عاملی 2تاست. وهم چنین گزینه data.computer[-1] ستون اول داده ها که مشخصه هر شرکت کننده است به دلیل غیرعددی بودن از مجموعه داده های آبجکت computer حذف شده است. چون در تحلیل عاملی عدد مدنظر است. گزینه Uniquenesses مقدار باقی مانده مدل رود قطرماتریس ضرایب همبستگی می باشد. هرچه داده ها به صفر نزدیک تر باشند تجزیه به عامل ها با کارایی بیشتری صورت گرفته است. در دو عامل مورد بررسی یعنی فاکتور1 فاکتور2 مجموعا 61 درصد تغییرات کل داده ها را توجیه می کند. در فاکتور اول چون درصد نام شرکت تولید کننده با0.9 و زیبایی بامقدار0.9 بیشتر است یعنی برای خرید کامپیوتر شخصی برند و زیبایی برایشان حائز اهمیت است. و اما برای فاکتور دوم نظرخانواده ونظردیگران به ترتیب با درصد 0.9و0.6 حائز اهمیت است. پس در عامل اول متغیر زیبایی و برند بیشترین نقش و در عامل دوم نظرخانواده و دیگران بیشترین نقش را دارد. وحالا برای مشاهده ضرایب هریک از فاکتورها به ترتیب از دسیور زیر استفاده می کنیم:
factor.computer$loading[,1]<
cost narmafzar zibaei sherkat khanevade dostan
-0.54572231 -0.15490966 0.92305470 0.93760858 0.09825626 -0.10172624
factor.computer$loadings[,2]<
cost narmafzar zibaei sherkat khanevade dostan
0.11799845 0.11743043 -0.05090721 0.24268247 0.99264933 0.62113373
وبرای مشاهده امتیاز داده ها از دستور زیر استفاده می کنیم:
factor.computer$scores<
Factor1 Factor2
[1,] -0.7200602 1.35991315
[2,] -1.3198840 -0.98262693
[3,] -0.0189915 0.33213656
[4,] -1.3565826 0.95033891
[5,] 0.3188164 -1.14244418
[6,] -1.0584212 -0.04319965
[7,] -1.6428613 -1.42908564
[8,] -0.5589085 1.33769002
[9,] 1.2593846 -0.74519462
[10,] 0.7361232 -1.18640505
[11,] 1.0682923 0.70736847
[12,] 0.6819685 1.22302316
[13,] 0.5557620 0.74525118
[14,] 0.5422584 -1.16497710
[15,] 0.2742681 -0.17609953
[16,] 1.2388359 0.21431125
نتایج 16 نفر برای ام شرکت تولید کننده یا برند و حرف دیگران را نشان می دهد، که همانطور که ملاحظه می کنید بطور مثال نفراول با مقدار1.35 حرف دیگران برایش مهم است، اما نفر نهم بامقدار1.25 برند نفش بیشتری در خرید لپ تاپ دارد. وحالا با دستور زیر میتوان نمودار امتیاز عامل ها را ترسیم کرد:
plot(factor.computer$scores[,1],factor.computer$scores[,2])<
text(factor.computer$scores[,1],factor.computer$scores[,2],labels=data.computer$kharidar,pos=1)<
abline(v=0,h=0,lty=2)<
آنچه که در خروجی مشاهده می کنید نشان می دهد که نفر اول هیچکدام در خرید برایش معیار نیست وامانفر سوم هم برند و هم حرف دیگران مهم است، ونفرچهارم باقرارگرفتن در بالای نمودار فاکتور2 یعنی حرف دیگران مهم است و نفر دهم برند و نام شرکت تولیدکننده برایش اهمیت دارد. برای مشاهده نمودار بار عامل ها در مقابل یکدیگر از دستور زیر استفاده می کنیم:
abline(v=0,h=0,lty=2)<
پایان قسمت اول.
تحلیل مولفه های اصلی مقدمه: تکنیک آماری تجزیه و تحلیل مولفه های اصلی (PCA)، روشی آماری است که غالبا برای بررسی گروهی از متغیرهای همبسته بکار می رود. مهم ترین کاربردهای این روش را می توان در تجزیه و تحلیل نماگرهای چندگانه، اندازه گیری و شناخت ساختارهای پیچیده، شاخص سازی و کاهش ابعاد داده ها جستجو نمود. ادامه مطلب را ببینید... این روش خصوصا در شرایطی که ابعاد داده ها و ترکیب ساختار آنها کاملا مشخص نیست مفید می باشد. سالهاست که این روش در علوم مختلف خصوصا در حوزه آنالیز داده های ژنومی استفاده های زیادی می شود. یکی از کاربردهای عمده این روش در مبحث ژنومی یافتن ساختار ارتباطی بین متغیرها است که در حقیقت همان کلاستربندی متغیرها می باشد. جهت بررسی ساختار جمعیت های مورد مطالعه آنالیز PCA بر اساس همه اطلاعات نشانگرهای در دسترس مورد ارزیابی قرار می گیرد. در واقع روشی از آنالیزهای چند متغیره آماری است که تعداد کمتری از عوامل را بنام مولفه های اصلی از میان عوامل اولیه گزینش می کند، به طوریکه تعدادی از اطلاعات کم اهمیت حذف می شوند. اولین مولفه اساسی استخراج شده، بیشترین مقدار پراکندگی داده ها را در کل مجموعه داده ها در نظر می گیرد. این امر بدان معنی است که اولین مولفه حداقل با تعدادی از متغیرها همبسته است. دومین مولفه استخراج شده دو ویژگی مهم دارد، اول اینکه این مولفه بیشترین مجموعه داده ها که توسط مولفه اول محاسبه نشده است را در نظر می گیرد و دوم اینکه با مولفه اول همبستگی ندارد. به عبارتی، بدون در نظر گرفتن مولفه ی قبلی، با گذر از مولفه ی ابتدایی به سمت مولفه های انتهایی هر مولفه واریانس کمتری را تشریح می کند. یعنی همیشه مولفه ی اصلی اول بیشترین مقدار واریانس و مولفه های اخر کمترین واریانس را شرح می دهند که در این صورت با حذف مولفه های اخر اطلاعات زیادی از دست نخواهد رفت. در تحلیل چند متغیره، بزرگ بودن بُعد بردار تصادفی X، اغلب در به دست آوردن روش های آماری مناسب برای نمونه تصادفی موجب مشکلاتی می گردد. حال میخواهیم با از دست دادن حداقل اطلاعات، بُعد مشاهدات را تا حد قابل ملاحظه ای تقلیل دهیم. این تفکر از آنجا ناشی می گردد که در مراحل اولیه تحقیق، توجه به سوی متغیرهایی متمرکز است که از یک مشاهده به مشاهده دیگر بیشترین تغییرات را نشان می دهند. متغیرهایی که از یک مشاهده به مشاهده دیگر زیاد عوض نمی شوند را می توان به عنوان ثابت ها در نظرگرفت، با کنار گذاشتن متغیرهایی با واریانس پائین و توجه به متغیرهایی با واریانس بالا، می توانیم به راحتی مساله خود را در یک زیر فضایی با بُعد کمتر مورد مطالعه قرار دهیم. روش مؤلفه های اصلی را ابتدا کارل پیرسن(1971) برای متغیرهای غیرآماری پیشنهاد کرد. در اکثر موارد یک تحلیل از مؤلفه های اصلی، ارتباط هایی که قبلاً حدس زده شده را آشکـــار می سازد. تحلیل مؤلفه های اصلی در بیان های دیگر در مباحث رگرسیون چند متغیره، آنـالیز گروه بندی و تجزیه عاملی نیز به کار گرفته می شود. تحلیل مؤلفه های اصلی به ساختمان ماتریس کوواریانس به وسیله چند ترکیب خطی از متغیرهای اولیه، مربوط است. دو هدف عمده دراینجا پیگیری می شود. 1- فشرده کردن داده 2- تفسیر اطلاعات. با اینکه p مولفه ی اولیه در تغییرپذیری کل سیستم لازم است، اکثر اوقات این تغییرپذیری می تواند به وسیله تعداد کمتر k از مولفه های اصلی بیان شود. تحلیل مؤلفه های اصلی وسیله ای برای رسیدن به هدف هستند تا اینکه خودشان هدف باشند، زیرا اغلب آنها به عنوان مراحل میانی در وضعیت های بزرگتر به کار می آیند. جزئیات تحلیل مولفههای اصلی در تعریف ریاضی یک تبدیل خطی متعامد است که داده را به دستگاه مختصات جدید میبرد به طوری که بزرگترین واریانس داده بر روی اولین محور مختصات، دومین بزرگترین واریانس بر روی دومین محور مختصات قرار میگیرد و همین طور برای بقیه. تحلیل مولفههای اصلی میتواند برای کاهش ابعاد داده مورد استفاده قرار بگیرد، به این ترتیب مولفههایی از مجموعه داده را که بیشترین تاثیر در واریانس را دارند حفظ میکند. حالا به اجرای مولفه های اصلی در نرم افزارR می پردازیم: برای محاسبه آن از تابع ()prcomp استفاده می کنیم. این تابع و برهان هایش این امکان را به کاربر می دهد تا معادله خطی مولفه ها ،میزان توجیه واریانس هریک از آن ها و میزان امتیاز هر فرد برای هر مولفه ونمودار بای پلات دوبه دوی مولفه ها را ترسیم نمایید. شکل کلی آن: (ماتریس داد ها)prcomp برای توجیه و فهم آن از مثال زیر استفاده می کنیم: مثال: میزان متوسط مصرف 17نوع ماده غذایی مختلف در4 کشور مختلف اندازه گیری شده. هدف: بررسی ارتباط بین 4نوع کشور مورد بررسی از نظرمصرف انواع مواد غذایی است که با بای پلات دو به دوی مولفه ها صورت می گیرد.
mavad | england | wales | scotland | n.ireland |
chees | 105 | 103 | 103 | 66 |
carcass-meat | 245 | 227 | 242 | 267 |
other-meat | 685 | 803 | 750 | 586 |
fish | 147 | 160 | 122 | 93 |
fats-oil | 193 | 235 | 184 | 209 |
sugars | 156 | 175 | 147 | 139 |
fresh-potatos | 720 | 874 | 566 | 1033 |
fresh-veg | 253 | 265 | 171 | 143 |
veg | 488 | 570 | 418 | 355 |
processed-potatoes | 198 | 203 | 220 | 187 |
processed-veg | 360 | 365 | 337 | 334 |
fresh-fruit | 1102 | 1137 | 957 | 647 |
cereals | 1472 | 1582 | 1462 | 1494 |
beverages | 57 | 73 | 53 | 47 |
soft-drinks | 1374 | 1256 | 1572 | 1506 |
alcoholic-c-drinks | 375 | 475 | 458 | 135 |
confectionery | 54 | 64 | 62 | 41 |
داده های بالا را در نرم افزار excel به صورت فایل متنی با پسوند txt با آدرس زیر ذخیره می کنیم ودر Rبا تابع read table خوانده می شود.
data.food<-read.table("E://food.txt",header=T)<
data.food<
mavad england wales scotland n.ireland
1 chees 105 103 103 66
2 carcass-meat 245 227 242 267
3 other-meat 685 803 750 586
4 fish 147 160 122 93
5 fats-oil 193 235 184 209
6 sugars 156 175 147 139
7 fresh-potatos 720 874 566 1033
8 fresh-veg 253 265 171 143
9 veg 488 570 418 355
10 processed-potatoes 198 203 220 187
11 processed-veg 360 365 337 334
12 fresh-fruit 1102 1137 957 647
13 cereals 1472 1582 1462 1494
14 beverages 57 73 53 47
15 soft-drinks 1374 1256 1572 1506
16 alcoholic-c-drinks 375 475 458 135
17 confectionery 54 64 62 41
دادهای مثال در خروجی دستور بالا بدست آمده است. برهان header=T به برنامه می گوید که نام متغیرها در فایل اصلی مغتبر باشند. با دستور زیر مولفه های اصلی داده ها را با تابع ()prcomp اجرا می کنیم:
pca.food<-prcomp(data.food[-1])<
pca.food<
:Standard deviations
[1] 918.21464 135.55252 88.48548 28.66090
:Rotation
PC1 PC2 PC3 PC4
england 0.4905118 0.2851530 -0.06732189 0.820703161
wales 0.4985412 0.3498177 -0.63755952 -0.471807207
scotland 0.5047566 0.2392601 0.76434260 -0.322111393
n.ireland 0.5060391 -0.8596917 -0.06903631 -0.009409143
ستون اول داده ها یعنی نام غذاها با گزینه] data.food[-1 از آبجکت داده ها حذف می شود، نتایج تجزیه در pca.food نگهداری می شود. برای مشاهده هریک از توابع به شکل خطی از دستور زیر استفاده می کنیم:
pc1<-pca.food$rotation[,1]<
pc1<
england wales scotland n.ireland
0.4905118 0.4985412 0.5047566 0.5060391
pc2<-pca.food$rotation[,2]<
pc2<
england wales scotland n.ireland
0.2851530 0.3498177 0.2392601 -0.8596917
pc3<-pca.food$rotation[,3]<
pc3<
england wales scotland n.ireland
-0.06732189 -0.63755952 0.76434260 -0.06903631
pc4<-pca.food$rotation[,4]<
pc4<
england wales scotland n.ireland
0.820703161 -0.471807207 -0.322111393 -0.009409143
برای مشاهده سهم نسبی هرمولفه در توجیه واریانس داده ها از تابع () summary استفاده می کنیم:
summary(pca.food)<
:Importance of components
PC1 PC2 PC3 PC4
Standard deviation 918.2146 135.55252 88.4855 28.66090
Proportion of Variance 0.9689 0.02112 0.0090 0.00094
Cumulative Proportion 0.9689 0.99006 0.9991 1.00000
وحالا برای بررسی گرافیکی بزرگی نسبی مولفه های تعریف شده از تابع () plot استفاده می کنیم:
plot(pca.food)<
همانطور که در شکل مشخص است ارزش مولفه اول از نظر توجیه واریانس به مراتب بیشتر از سه مولفه دیگر است. برای مشاهده بای پلات از تابع biplot()pc1,pc2 استفاده می کنیم. این تابع به کاربر این امکان را می دهد تا اندازه شکل ورنگ اجزای پلات را تغییر می دهد.
biplot(pca.food,xlabs=data.food$food)
برای ترسیم بای پلات سایر مولفه ها از برهان choices استفاده می کنیم:
biplot(pca.food,choices=2:3)<
biplot(pca.food,choices=3:4)<
برای مشاهده ریشه دوم مقادیر ویژه وبردار ویژه از دستور زیر استفاده می کنیم: ریشه دوم مقادیر ویژه
pca.food$sdev<
[1] 918.21464 135.55252 88.48548 28.66090
بردار ویژه
pca.food$rotation<
PC1 PC2 PC3 PC4
england 0.4905118 0.2851530 -0.06732189 0.820703161
wales 0.4985412 0.3498177 -0.63755952 -0.471807207
scotland 0.5047566 0.2392601 0.76434260 -0.322111393
n.ireland 0.5060391 -0.8596917 -0.06903631 -0.009409143
بجای داده های اولیه از داده های نرمال شده در محاسبه مولفه های اصلی استفاده می کنیم:
normalpca<-prcomp(data.food[-1],scale=T)<
normalpca<
:Standard deviations
[1] 1.96941791 0.28565281 0.18937299 0.06271725
:Rotation
PC1 PC2 PC3 PC4
england 0.5054038 -0.2832735 0.05997997 0.812850226
wales 0.5013797 -0.3456426 0.63233439 -0.478855745
scotland 0.5012355 -0.2196498 -0.76852569 -0.331489340
n.ireland 0.4918824 0.8672031 0.07696686 -0.009300713
استفاده از داده های نرمال شده معادل استفاده از ماتریس ضرایب همبستگی بجای ماتریس واریانس کواریانس داده های اصلی می باشد.
prcomp(data.food[-1],tol=0.5)<
:Standard deviations
[1] 918.2146
:Rotation
PC1
england 0.4905118
wales 0.4985412
scotland 0.5047566
n.ireland 0.5060391
این گزینه tol می گوید وقتی تنها چند مولفه اول که ارزش بیشتری دارند محاسبه شوند. وقتی tol=0.5 باشد مولفه های که میزان انحراف آنها کمتر یا مساوی با 50درصد انحراف معیار مولفه اول باشد حذف می شود. تابع دیگری که برای محاسبه مولفه اصلی بکار می رود تابع princomp است که اطلاعات بیشتری می دهد اما کمتر مورد استفاده قرار می گیرد.تفاوت عمده بین این تابع و تابع prcomp در نحوه محاسبات است. princomp این تابع برای محاسبات واریانس وکواریانس برمبنای مخرج n-1 prcomp واین تابع برای محاسبات واریانس وکواریانس برمبنای مخرج n است.
پایان قسمت دوم
نظرات
هیچ نظری وجود ندارد.
افزودن نظر
Sitemap
Copyright © 2017 - 2023 Khavarzadeh®. All rights reserved