در مطالب بعدی به صورت ریز تری به معنای ماتریس های کواریانس و نیز کاربردهای توزیع نرمال چند متغیره می پردازیم
@MatlabTips
#For_intermediate , #Multivariate_normal_distribution, #Normal_distribution
نویسنده: (A-2)
@MatlabTips
#For_intermediate , #Multivariate_normal_distribution, #Normal_distribution
نویسنده: (A-2)
🔵ماتریس کوواریانس چیست و چه کاربردهایی دارد؟🔵
سطح پیچیدگی:🌕🌕🌕🌑🌑
پیشنیاز:(آمار و احتمال و کد نویسی متوسط)
برای:(متوسط)
زمانی که با داده های یک بعدی مانند قد افراد روبرو هستیم علاوه بر میانگین واریانس هم اطلاعات مفیدی در اختیار ما قرار می دهد. واریانسِ بیشتر به طور ساده به معنای پراکندگی بیشتر در داده هاست. با استفاده از دستور متلب زیر میتوانید این موضوع را برای دو بردار تستی دریابید:
مشخص است که پراکندگی داده ها در V2 بیشتر و بنابراین واریانس بیشتری دارد.
اما بیشتر پدیده ها به همین سادگی با یک عدد توصیف نمی شوند. به طور مثال شما نمی توانید دانشجویان یک کلاس را تنها با نمره یکی از درس هایشان تحلیل کنید. در این موارد باید به این دقت کرد که بین درس های مختلف هم رابطه هایی وجود دارد به طور مثال فرض کنید دانشجویان یک کلاس 5 نفره در دروس ریاضی، زبان، هنر نمره های زیر را کسب کرده باشند:
سطح پیچیدگی:🌕🌕🌕🌑🌑
پیشنیاز:(آمار و احتمال و کد نویسی متوسط)
برای:(متوسط)
زمانی که با داده های یک بعدی مانند قد افراد روبرو هستیم علاوه بر میانگین واریانس هم اطلاعات مفیدی در اختیار ما قرار می دهد. واریانسِ بیشتر به طور ساده به معنای پراکندگی بیشتر در داده هاست. با استفاده از دستور متلب زیر میتوانید این موضوع را برای دو بردار تستی دریابید:
V1=[4,6,2]
Var(V1)
V2=[3,10, 2]
Var(V2)
مشخص است که پراکندگی داده ها در V2 بیشتر و بنابراین واریانس بیشتری دارد.
اما بیشتر پدیده ها به همین سادگی با یک عدد توصیف نمی شوند. به طور مثال شما نمی توانید دانشجویان یک کلاس را تنها با نمره یکی از درس هایشان تحلیل کنید. در این موارد باید به این دقت کرد که بین درس های مختلف هم رابطه هایی وجود دارد به طور مثال فرض کنید دانشجویان یک کلاس 5 نفره در دروس ریاضی، زبان، هنر نمره های زیر را کسب کرده باشند:
به این ترتیب اگر هر کدام از درس ها را به صورت یک بردار در نظر بگیریم. ماتریس کواریانس را به صورت برداری زیر حساب میکنیم:
در مرحله اول هر کدام از نمونه ها را از میانگین کم کردیم. ودر مرحله بعد حاصلضرب ها را محاسبه کردیم(به ارتباط این نحوه ضرب با فرمول هایی که گفتیم فکر کنید).نتیجه به صورت زیر می شود:
این ماتریس را به صورت زیر تعبیر می کنیم:
اندازه این ماتریس 3 در 3 است و به معنای ارتباط درس ها با هم است.
قطر اصلی یعنی کواریانس هر داده با خودش که همان واریانس می شود. درس هنر دارای بیشترین واریانس(900) و زبان کمترین واریانس(450( را دارد.
کواریانس دو درس ریاضی و زبان بالا است(450) و این به آن معنی است که این دو تمایل به رشد با هم یا کمتر شدن با هم دارند. در عوض زبان و هنر دارای کواریانس صفر است و به معنای آن است که رابطه ای با هم ندارند.
ماتریس کواریانس متقارن است به این معناست که رابطه ی بین درس ها با هم متقارن است!
نمودار زیر به زیبایی رابطه بین درس ها را نشان میدهد.در قطر اصلی هیستوگرام داده ها هر درس را میبینیم که واریانس را نشان می دهد. در ضمن هر قدر دو درس(یا متغیر) بیشتر با هم ارتباط داشته باشند داده هایشان در یک جهت هم سو هستند و هر قدر بی ارتباط تر باشند پخش و پلا و به یک دایره نزدیک تر است:
اندازه این ماتریس 3 در 3 است و به معنای ارتباط درس ها با هم است.
قطر اصلی یعنی کواریانس هر داده با خودش که همان واریانس می شود. درس هنر دارای بیشترین واریانس(900) و زبان کمترین واریانس(450( را دارد.
کواریانس دو درس ریاضی و زبان بالا است(450) و این به آن معنی است که این دو تمایل به رشد با هم یا کمتر شدن با هم دارند. در عوض زبان و هنر دارای کواریانس صفر است و به معنای آن است که رابطه ای با هم ندارند.
ماتریس کواریانس متقارن است به این معناست که رابطه ی بین درس ها با هم متقارن است!
نمودار زیر به زیبایی رابطه بین درس ها را نشان میدهد.در قطر اصلی هیستوگرام داده ها هر درس را میبینیم که واریانس را نشان می دهد. در ضمن هر قدر دو درس(یا متغیر) بیشتر با هم ارتباط داشته باشند داده هایشان در یک جهت هم سو هستند و هر قدر بی ارتباط تر باشند پخش و پلا و به یک دایره نزدیک تر است:
اگر قسمتی برایتان مبهم است نگران نباشید. در مطالب بعدی یک پروژه نمونه حل خواهیم کرد و علاوه بر آن به مفهوم کورریلیشن هم میپردازیم.
@MatlabTips
#For_intermediate, #Normal_distribution, #Covariance_matrix
نویسنده: (A-2)
@MatlabTips
#For_intermediate, #Normal_distribution, #Covariance_matrix
نویسنده: (A-2)
🔵ماتریس کوواریانس چیست و چه کاربردهایی دارد؟(ادامه)🔵
سطح پیچیدگی:🌕🌕🌕🌑🌑
پیشنیاز:(آمار و احتمال و کد نویسی متوسط)
برای:(متوسط)
در قسمت قبلی در مورد ماتریس کوواریانس صحبت کردیم و یک مثال در مورد نمرات درسی یک کلاس را مثال زدیم. دراین قسمت بیشتر وارد کدهای متلب می شویم. فرض کنید میخواهیم که رفتار کلاس را برای زمانی که 1000 دانشجو داریم شبیه سازی کنیم. برای این حالت باید بتوانیم بر اساس داده های اندکی که داریم(5 دانشجو) رفتار دیگران را شبیه سازی کنیم. برای این کار کافی است میانگین و کواریانس حساب شده را به تابع نرمال چند متغیره بدهیم. البته همانطور که میدانید حتی نیاز نداریم که میانگین و واریانس را روی کاغذ حل کنیم همه کارها را خود متلب انجام میدهد. در برنامه زیر تابع mean بر روی ماتریس نمرات(scores) عمل کرده و میانگین هر ستون(هر درس در یک ستون بود) را محاسبه می کند. پس میانگین یک بردار سه تایی است. به برنامه زیر دقت کنید:
scores=[90, 60, 90;90, 90, 30;60, 60, 60;60, 60, 90; 30, 30, 30];
mu = mean(scores);% create a vector of mean of each column
sigma = cov(scores);
r = mvnrnd(mu,sigma,1000);% draw 1000 samples of the multivariate normal
figure
scatter3(r(:,1),r(:,2),r(:,3),'MarkerEdgeColor','k','MarkerFaceColor',[0 .75 .75])
نمودار زیر نشان می دهد که چگونه 1000 داده ی تولید شده در فضا پخش شده اند( هر بعد نشان دهنده یک درس است).
سطح پیچیدگی:🌕🌕🌕🌑🌑
پیشنیاز:(آمار و احتمال و کد نویسی متوسط)
برای:(متوسط)
در قسمت قبلی در مورد ماتریس کوواریانس صحبت کردیم و یک مثال در مورد نمرات درسی یک کلاس را مثال زدیم. دراین قسمت بیشتر وارد کدهای متلب می شویم. فرض کنید میخواهیم که رفتار کلاس را برای زمانی که 1000 دانشجو داریم شبیه سازی کنیم. برای این حالت باید بتوانیم بر اساس داده های اندکی که داریم(5 دانشجو) رفتار دیگران را شبیه سازی کنیم. برای این کار کافی است میانگین و کواریانس حساب شده را به تابع نرمال چند متغیره بدهیم. البته همانطور که میدانید حتی نیاز نداریم که میانگین و واریانس را روی کاغذ حل کنیم همه کارها را خود متلب انجام میدهد. در برنامه زیر تابع mean بر روی ماتریس نمرات(scores) عمل کرده و میانگین هر ستون(هر درس در یک ستون بود) را محاسبه می کند. پس میانگین یک بردار سه تایی است. به برنامه زیر دقت کنید:
scores=[90, 60, 90;90, 90, 30;60, 60, 60;60, 60, 90; 30, 30, 30];
mu = mean(scores);% create a vector of mean of each column
sigma = cov(scores);
r = mvnrnd(mu,sigma,1000);% draw 1000 samples of the multivariate normal
figure
scatter3(r(:,1),r(:,2),r(:,3),'MarkerEdgeColor','k','MarkerFaceColor',[0 .75 .75])
نمودار زیر نشان می دهد که چگونه 1000 داده ی تولید شده در فضا پخش شده اند( هر بعد نشان دهنده یک درس است).
مثال درس ها ممکن است برای شما ملموس باشد اما چندان کاربردی به نظر نمی رسد. در این قسمت می خواهیم بر روی مجموعه داده ی بزرگ تری کار کنیم. این مجموعه داده به نام iris شناخته می شود و شامل اطلاعاتی در مورد سه نوع زنبق بر اساس طول و عرض کاسبرگ و طول و عرض گلبرگ آن هاست(ویژگی ها: طول کاسبرگ، عرض کاسبرگ، طول گلبرگ، عرض گلبرگ). 50 نمونه مختلف از هر سه نوع زنبق اندازه گیری شده است که در کل 150 نمونه داریم. این مجموعه داده کلاسیک است و در خود متلب به صورت پیش فرض وجود دارد. با زدن دستور زیر می توانید به آن دسترسی پیدا کنید:
در این جا می خواهیم با داشتن همین 150 نمونه تعداد 10000 نمونه از این گل را شبیه سازی و تولید کنیم. در ضمن می خواهیم به رابطه بین ویژگی های این مجموعه داده پی ببریم. ابتدا با استفاده از برنامه زیر کواریانس را محاسبه می کنیم:
Iris_dataset
در این جا می خواهیم با داشتن همین 150 نمونه تعداد 10000 نمونه از این گل را شبیه سازی و تولید کنیم. در ضمن می خواهیم به رابطه بین ویژگی های این مجموعه داده پی ببریم. ابتدا با استفاده از برنامه زیر کواریانس را محاسبه می کنیم:
dataset=iris_dataset';
sigma = cov(dataset)
در ابتدا مجموعه داده را به صورت ستونی باید در آوردیم(با ترانهاده کردن ماتریس مجموعه داده). و در مرحله بعد کوواریانس آن را محاسبه کردیم. در اینجا ترتیب ویژگی ها به همان صورتی است که گفتیم. بنابراین میزان کوواریانس طول کاسبرگ و طول گلبرگ برابر است با 1.2737
در نهایت با استفاده از برنامه زیر می توان 10000 نمونه را ایجاد و رسم کرد:
در نهایت با استفاده از برنامه زیر می توان 10000 نمونه را ایجاد و رسم کرد:
dataset=iris_dataset';
sigma = cov(dataset);
mu = mean(scores);
r = mvnrnd(mu,sigma,10000);
figure
scatter3(r(:,1),r(:,2),r(:,3), 'MarkerFaceColor',[0 .1 .1])