برنامه‌نویسی به زبان R

دوستان عزیز جهت انجام پروژه‌های آماری و برنامه‌نویسی پایان‌نامه می‌توانید با آدرس الکترونیکی rprogramming.iran@gmail.com تماس حاصل نمائید.

برنامه‌نویسی به زبان R

دوستان عزیز جهت انجام پروژه‌های آماری و برنامه‌نویسی پایان‌نامه می‌توانید با آدرس الکترونیکی rprogramming.iran@gmail.com تماس حاصل نمائید.

آزمون معناداری آماری همبستگی

فرض کنید همبستگی دو متتغیر را به‌دست آورده‌اید، اما نمی‌دانید که این همبستگی از نظر آماری معنادار است یا خیر.

برای این منظور هم می‌توان از p- مقدار استفاده کرد هم با تشکیل بازه اطمینان برای ضریب همبستگی این موضوع را بررسی کرد. این دو راه را می‌توان با استفاده از تابع cor.test اجرا کرد. در صورتی که دو جامعه نرمال باشند، از ضریب همبستگی پیرسن که پیش فرض دستور است، استفاده می‌کنیم و در صورتی که این دو جامعه غیرنرمال باشند از ضریب‌های دیگر چون ضریب همبستگی اسپیرمن استفاده می‌کنیم که برای این منظور باید پارامتر method در دستور را به "spearman" تغییر داد. این تابع همچنین فرض برابری ضریب همبستگی با صفر را (برای دو جامعه نرمال) در مقابل عدم برابری با صفر نیز بررسی می‌کند و می‌توان فرض مقابل را (همانند دو بخش قبل) با استفاده از پارامتر alternative تغییر داد.

برای مثال فرض کنید:

(x1<-c (10,15,13,19,20

(y1<-c (12,15,17,20,14

(x2<-rnorm(10,0,1

(y2<- rnorm(10,0,1

در این صورت برای دو جمعه غیرنرمال x1 و y1 و نرمال x2 و y2 می‌توان ضریب همبستگی را با استفاده از دستورهای زیر بدست آورد و آن را نیز آزمون کرد:

(cor.test(x1,y1,method="spearman"

(cor.test(x2,y2

وخروجی‌ها به صورت:

        Spearman's rank correlation rho

 

data:  x1 and y1

S = 14, p-value = 0.6833

alternative hypothesis: true rho is not equal to 0

:sample estimates

rho

0.3

و

Pearson's product-moment correlation

data:  x2 and y2

t = 1.6055, df = 8, p-value = 0.1471

alternative hypothesis: true correlation is not equal to 0

:95 percent confidence interval

 0.8569258   0.1973141-

:sample estimates

     cor

0.493639

خواهند بود.

مقایسه میانگین دو نمونه

فرض کنید از دو جامعه، نمونه‌ای را در دست داریم. می‌خواهیم ببینیم میانگین این دو جامعه با هم برابرند یا خیر. اگر نمونه‌های جوامع 1 و 2 را به ترتیب با x و y نشان دهیم، برای این منظور از دستور

(t.test(x,y

استفاده می‌کنیم. پیش فرض دستور به این صورت است که نمونه‌ها زوجی نیستند. در صورتی که نمونه‌ها زوجی باشند، در دستور فوق paired را برابر True قرار می‌دهیم. لذا دستور به صورت

(t.test(x,y,paired=T

تغییر می‌کند.

در این آزمون فرض صفر برابری میانگین دو جامعه است یا به‌طور معادل تفاضل میانگین دو جامعه صفر است. حال اگر بخواهیم فرض صفر آزمون را به گونه‌ای در نظر بگیریم که این تفاضل صفر نباشد و عدد دیگری باشد یا فرض برابری یا عدم برابری واریانس دو جامعه را بخواهیم در نظر بگیریم، در دستور فوق با استفاده از mu و var.equal این مفروضات را لحاظ می‌کنیم. همچنین سطح آزمون به صورت پیش فرض 0.5 است که می‌توان همانند بخش قبل (تشکیل بازه اطمینان برای درصد موفقیت) آنرا تغییر داد.

به‌طور مثال فرض کنید

(x<-c (10,15,13,19,20

(y<-c (12,15,17,20,14

باشند که می‌خواهیم بدانیم که آیا میانگین دو جامعه‌ای که این دو نمونه از آن ناشی شده‌اند به میزان 2 واحد با هم اختلاف دارند یا خیر. همچنین این موضوع را با فرض برابری واریانس بررسی کنیم که سطح اطمینان را برابر 1 درصد در نظر می‌گیریم. برای این منظور دستور زیر را اجرا می‌کنیم:

(t.test(x,y,mu=1,var.equal=T,conf.level=.99

که نتایج به صورت:

        Two Sample t-test

data:  x and y

t = -0.5203, df = 8, p-value = 0.617

alternative hypothesis: true difference in means is not equal to 1

:99 percent confidence interval

  7.539243     7.939243-

:sample estimates

mean of x mean of y

     15.4      15.6

 

تشکیل بازه اطمینان برای درصد موفقیت

فرض کنید نمونه‌ای از مقادیر یک جامعه شامل موفقیت و شکست در اختیار داریم. بر اساس مجوعه داده‌های در دسترس می‌خواهیم بازة اطمینانی برای نسبت موفقیت‌های این جامعه بدست آوریم.

برای این منظور اگر تعداد موفقیت‍‌‌ها را x و تعداد آزمایش‌ها را n در نظر بگیریم، با استفاده از دستور

(prop.test(x,n

برای جامعه بازة اطمینانی را به‌دست می‌آوریم.

به‌طور مثال اگر (prop.test(6,9 را در نظر بگیریم، خروجی به صورت زیر خواهد بود:

1-sample proportions test with continuity correction 

data:  6 out of 9, null probability 0.5

X-squared = 0.4444, df = 1, p-value = 0.505

alternative hypothesis: true p is not equal to 0.5

:95 percent confidence interval

 0.9095817     0.3091761

:sample estimates

 :p

0.6666667

همان طور که ملاحظه می‌کنیم در خروجی، آزمون فرض برابری نسبت موفقیت‌های جامعه با نسبت پیش فرض نرم‌افزار (که برابر 0.5 است) در برابر فرض عدم برابری نسبت جامعه با مقدار 0.5 بررسی می‌شود. همچنین این بازه اطمینان در سطح 5 درصد اجرا می‌شود.

 برای تغییر مقدار 0.5، تغییر فرض مقابل و تغییر سطح آزمون می‌توان در دستور فوق با استفاده از p ، alternative و conf.level به ترتیب این موارد را تغییر داد. مثلاً اگر بخواهیم نسبت جامعه را با مقدار 0.6،  فرض مقابل اینکه نسبت موفقیت‌های جامعه بیش از این مقدار باشد و سطح آزمون 10 درصد باشد دستور زیر را اجرا می‌کنیم:

prop.test(6,9,p=0.6,alternative="greater",conf.level=0.9)

لازم به ذکر است که مقادیر فرض مقابل آزمون به صورت two.sided، less و greater هستند.

تشکیل بازه اطمینان برای میانگین

برای این منظور، بعد از مشخص کردن مجموعه داده‌ها از آزمون t به صورت زیر استفاده می‌کنیم:

اگر مجموعه داده مورد بحث به‌طور مثال x با مقادیر زیر باشد:

x<-c(15,16,14,18,17,12,13,16,15,18,19,20,20,15,16,14,18,19,12,13)

برای تشکیل بازه اطمینان از دستور

t.test(x)‌

استفاده می‌کنیم.

خروجی برای مثال فوق به‌صورت

One Sample t-test

data:  x

t = 28.0092, df = 19, p-value < 2.2e-16

alternative hypothesis: true mean is not equal to 0

:95 percent confidence interval

14.80438 17.19562

:sample estimates

mean of x

16

خواهد بود.

در این مثال در سطح اطمینان 95 درصد بازه اطمینان به‌دست آمده است همچنین و میانگین بردار و پی- مقدار برای آزمون یکطرفه بدست آمده است.

انتخاب ستونی از چارچوب داده‌ها با توجه به موقعیت آن ستون

فرض کنید که می‌خواهیم ستون‌هایی را از چارچوب داده‌ها با توجه به موقعیتشان انتخاب کنیم.

اگر بخواهیم از چارچوب داده‌ای (مثلاً به اسم dfrm) یک ستون را انتخاب کنیم می‌توان از دستور:

[[dfrm[[n

استفاده کرد. همچنین برای این منظور می‌توان از دستور

[dfrm[n

فرق دستور اول و دوم در این است که خروجی دستور اول به صورت سطری است و ستون n ام را به صورت پشت سر هم نمایش می‌دهد. اما در دستور دوم همانند شکل چارچوب داده‌ها، به‌صورت ستونی نمایش می‌دهد.

برای انتخاب چند ستون از چارچوب داده‌ها، مانند دستور دوم عمل می‌کنیم ([dfrm[n)

 با این تفاوت که به‌جای شماره ستون n شماره ستون‌های مورد نظر را به‌صورت برداری وارد می‌کنیم. فرض کنید ستون‌های مورد نظر n2، n1 و...nk باشند. در این صورت دستور انتخاب این ستون‌ها به‌صورت:

[(dfrm[c(n1,n2,…,nk

خواهد بود.

همچنین انتخاب ستون‌ها را می‌توان به طریق ماتریسی نیز از انتخاب کرد. مثلاً برای انتخاب یک ستون از dfrm از دستور:

[dfrm[,n

و برای انتخاب چند ستون از dfrm از دستور:

[(dfrm[c(n1,n2,…,nk

استفاده می‌کنیم.