توجه به استفاده از توابع مختلف، بسته های
مختلفی وجود دارند که یا بعد از نصب برنامه R در برنامه وجود دارند یا
باید آنها را نصب کرد. اگر بسته مورد نظر در سیستم نصب باشد، برای استفاده
باید اول آن را بارگذاری (Load) کرد و سپس استفاده کرد که این کار را با
استفاده از دستور ()library انجام میدهیم به طوری که داخل آرگومان باید
نام بسته مورد استفاده را نوشت و اجرا کرد. همچنین این کار را میتوان با
استفاده از منوی packages در برنامه و گزینه load package انجام داد.
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.comR
در
صورتی که بسته مورد نظر نصب نباشد ابتدا از منوی packages گزینه install
package بعد از انتخاب کشور مورد نظر، بسته را انتخاب و آنرا نصب میکنیم.
سپس با توجه به مطالب بارگذاری بسته، از آن استفاده میکنیم.
انتخاب ستونی از چارچوب دادهها با توجه به موقعیت آن ستون
فرض کنید که میخواهیم ستونهایی را از چارچوب دادهها با توجه به موقعیتشان انتخاب کنیم.
اگر بخواهیم از چارچوب دادهای (مثلاً به اسم 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
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.comR
استفاده میکنیم.
داده
کاوی، پایگاهها و مجموعههای حجیم دادهها را در پی کشف واستخراج دانش،
مورد تحلیل و کند و کاوهای ماشینی (و نیمهماشینی) قرار میدهد. این گونه
مطالعات و کاوشها را به واقع میتوان همان امتداد و استمرار دانش کهن و
همه جا گیر آمار دانست. تفاوت عمده در مقیاس، وسعت و گوناگونی زمینهها و
کاربردها، و نیز ابعاد و اندازههای دادههای امروزین است که شیوههای
ماشینی مربوط به یادگیری، مدلسازی، و آموزش را طلب مینماید.
در
سال ۱۹۶۰ آماردانان اصطلاح "Data Fishing" یا "Data Dredging"به معنای "صید
داده" را جهت کشف هر گونه ارتباط در حجم بسیار بزرگی از دادهها بدون در
نظر گرفتن هیچگونه پیش فرضی بکار بردند. بعد از سی سال و با انباشته شدن
دادهها در پایگاههای داده یا Database اصطلاح "Data Mining" یا داده کاوی
در حدود سال ۱۹۹۰ رواج بیشتری یافت. اصطلاحات دیگری نظیر "Data
Archaeology"یا "Information Harvesting" یا "Information Discovery"
یا"Knowledge Extraction" نیز بکار رفتهاند.
اصطلاح Data Mining
همان طور که از ترجمه آن به معنی داده کاوی مشخص میشود به مفهوم استخراج
اطلاعات نهان و یا الگوها وروابط مشخص در حجم زیادی از دادهها در یک یا
چند بانک اطلاعاتی بزرگ است.
داده کاوی به بهرهگیری از ابزارهای
تجزیه و تحلیل دادهها به منظور کشف الگوها و روابط معتبری که تا کنون
ناشناخته بودهاند اطلاق میشود. این ابزارها ممکن است مدلهای آماری،
الگوریتمهای ریاضی و روشهای یاد گیرنده (Machine Learning Methods) باشند
که کار این خود را به صورت خودکار و بر اساس تجربهای که از طریق شبکههای
عصبی (Neural Networks) یا درختهای تصمیم گیری (Decision Trees) به دست
میآورند بهبود میبخشد. داده کاوی منحصر به گردآوری و مدیریت دادهها
نبوده و تجزیه و تحلیل اطلاعات و پیش بینی را نیز شامل میشود برنامههای
کاربردی که با بررسی فایلهای متن یا چند رسانهای به کاوش دادهها
میپردازند پارامترهای گوناگونی را در نظر میگیرد که عبارت اند از:
قواعد انجمنی (Association): الگوهایی که بر اساس آن یک رویداد به دیگری مربوط میشود مثلاً خرید قلم به خرید کاغذ.
ترتیب (Sequence): الگویی که به تجزیه و تحلیل توالی رویدادها پرداخته و
مشخص میکند کدام رویداد، رویدادهای دیگری را در پی دارد مثلاً تولد یک
نوزاد و خرید پوشک.
پیش بینی(Prediction): در پیش بینی هدف پیش بینی یک متغیر پیوسته میباشد. مانند پیش بینی نرخ ارز یا هزینههای درمانی.
ردهبندی یا طبقهبندی (Classification): فرآیندی برای پیدا کردن مدلی است
که ردههای موجود در دادهها را تعریف مینماید و متمایز میکند، با این
هدف که بتوان از این مدل برای پیش بینی رده رکوردهایی که برچسب رده آنها
(متغیر هدف) ناشناخته میباشد، استفاده نمود. در حقیقت در ردهبندی بر خلاف
پیش بینی، هدف پیش بینی مقدار یک متغیر گسسته است. روشهای مورد استفاده
در پیش بینی و ردهبندی عموما یکسان هستند.
خوشه بندی(Clustering):
گروه بندی مجموعهای از اعضاء، رکوردها یا اشیاء به نحوی که اعضای موجود در
یک خوشه بیشترین شباهت را به یکدیگر و کمترین شباهت را به اعضای خوشههای
دیگر داشته باشند
مصورسازی (visualization): مصورسازی دادهها یکی از قدرتمندترین و جذابترین روشهای اکتشاف در دادهها میباشد.
RStudio
Rstudio
شرکتی است که تهیه نرمافزار، آموزش و خدماتی را برای محیط محاسباتی
برنامه آر تخصیص داده است. برنامه ساخته شده توسط این شرکت، محیطی توسعه
یافته و یکپارچه برای نرم افزار آر به حساب میآید.
از قابلیتهای این محیط میتوان به:
1) ابزارهای سودمند قدرتمند (متمایز کردن، کامل شدن دستورات، دندانههای هوشمند...)
2) محیط برنامهنویسی ساخته شده برای نرمافزار آر (جستجو در فضای کاری، نمایشگر دادهها خروجی پیدیاف و ...)
3) سازگار (قابلیت کار کردن با هر نسخهای از نرمافزار آر (نسخههای 2.11.1 به بالا)، رایگان و منبع آزاد و...)،
اشاره کرد.
Rstudio
شرکتی است که تهیه نرمافزار، آموزش و خدماتی را برای محیط محاسباتی
برنامه آر تخصیص داده است. برنامه ساخته شده توسط این شرکت، محیطی توسعه
یافته و یکپارچه برای نرم افزار آر به حساب میآید.
از قابلیتهای این محیط میتوان به:
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.comR
1) ابزارهای سودمند قدرتمند (متمایز کردن، کامل شدن دستورات، دندانههای هوشمند...)
2) محیط برنامهنویسی ساخته شده برای نرمافزار آر (جستجو در فضای کاری، نمایشگر دادهها خروجی پیدیاف و ...)
3) سازگار (قابلیت کار کردن با هر نسخهای از نرمافزار آر (نسخههای 2.11.1 به بالا)، رایگان و منبع آزاد و...)،
اشاره کرد.
برای دانلود این نرمافزار میتوانید
رگرسیون غیرخطی
فرض
کنید دو بردار از مشاهدات x و y را در اختیار داریم و به نظر میرسد که
رگرسیونی غیرخطی برای این دو بردار برقرار است. یعنی حدس ما این است که
بردار y تابعی غیرخطی از بردار x است. برای بدست آوردن پارامترهای مربوط به
این رگرسیون از تابع ()nls استفاده میکنیم. برای این منظور فرض کنید:
a<- 1:1000
b<-3*a^2+a+5
حال با اضافه کردن برداری از نویزها به بردار b مقادیر آن را کمی متفاوت از بردار اصلی b تغییر میدهیم. یعنی خواهیم داشت:
(c<-b+rnorm(1000,0,1
حال
مساله را این طور مطرح میکنیم که فرض کنیم بردار x و z را در اختیار
داریم (که به صورت زیر هستند) و میدانیم بین بردار z و x رگرسیونی غیرخطی
از نوع درجه دو برقرار است. حال میخواهیم برای این حدس ضرائب رگرسیون
غیرخطی فوق را بدست آوریم. یعنی میخواهیم ببینیم که برای حدس مدل رگرسیونی
به شکل:
z=rx2+ux+s
ضرائب این رگرسیون چند است.
برای این منظور داریم:
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.comR
(abc <-matrix(c(a,b,c),ncol=3
[x<-abc[,1
[y<- abc [,2
[z<- abc [,3
((nls(z~r*x^2+u*x+s,list(abc),start=list(r=1,u=1,s=1
که
در توضیح تابع باید گفت که در قسمت اول آرگومان تابع باید فرمول مورد نظر،
در قسمت دوم آرگومان مجموعه دادهای که این دو بردار در آن موجود هستند که
باید به صورت list باشند و در قسمت سوم آرگومان تابع، مقادیر اولیه
پارامترهایی که میخواهیم بررسی شوند به صورت list نوشته میشوند.
ه لینک زیر مراجعه کنید
با
توجه به استفاده از توابع مختلف، بسته های مختلفی وجود دارند که یا بعد از
نصب برنامه R در برنامه وجود دارند یا باید آنها را نصب کرد. اگر بسته
مورد نظر در سیستم نصب باشد، برای استفاده باید اول آن را بارگذاری (Load)
کرد و سپس استفاده کرد که این کار را با استفاده از دستور ()library انجام
میدهیم به طوری که داخل آرگومان باید نام بسته مورد استفاده را نوشت و
اجرا کرد. همچنین این کار را میتوان با استفاده از منوی packages در
برنامه و گزینه load package انجام داد.
در صورتی که بسته مورد نظر
نصب نباشد ابتدا از منوی packages گزینه install package بعد از انتخاب
کشور مورد نظر، بسته را انتخاب و آنرا نصب میکنیم. سپس با توجه به مطالب
بارگذاری بسته، از آن استفاده میکنیم.
برای این منظور کافی است
از تابع boxplot استفاده کرد. آرگومان مربوط به متغیری که میخواهیم
نمودار جعبهای آن ترسیم شود از نوع عددی (numeric) است.
برای مثال، فرض کنید نمودار جعبهای مربوط به نمونهای از اعداد نرمال با میانگین 0 و واریانس 1 به حجم1000 را میخواهیم رسم کنیم:
(set.seed(100
(x<-rnorm(1000,0,1
(boxplot(x
سطر
اول دستور به منظور یکسان بودن نمونه اعداد تصادفی انتخاب شده از جامعه
نرمال با میانگین 0 و واریانس 1 است. شکل نمودار جعبهای به صورت زیر است:
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.comR
در توضیح شکل باید گفت که:
- خط پررنگی که در وسط جعبه وجود دارد، میانه جامعه است.
-در جعبه موجود سطر پایین چارک اول مشاهدات و سطر بالا، چارک سوم مشاهدات است.
-ارتفاع کادری که حول جعبه است نشاندهنده دامنه مشاهدات است.
-نقاط
دایرهای که بین کادر اصلی (دامنه مشاهدات) و خطوط بالا و پایین جعبه،
نقاط دورافتاده (outlier) هستند. 1.5 برابر اختلاف ناشی از خطوط بالا و
پایین جعبه دامنه میانچارکی مشاهدات است که نقاط دورافتاده را مشخص
میکند.
برای این منظور از تابع ()hist استفاده میکنیم. آرگومان مربوط به این تابع نیز مقادیر عددی را در بر میگیرد.
برای مثال، فرض کنید نمودار جعبهای مربوط به نمونهای از اعداد نرمال با میانگین 0 و واریانس 1 به حجم1000 را میخواهیم رسم کنیم:
(set.seed(100
(x<-rnorm(1000,0,1
(hist(x
میتوان
تعداد ستونهایی که در بافتنگار مورد نظر است را انتخاب کرد. همچنین
میتوان عنوان نمودار و نام متغیر سطر افقی را میتوان به ترتیب با استفاده
از پارامترهای main و xlab تغییر داد.
بهطور مثال میتوان عنوان
نمودار و نام متغیر سطر افقی را به random normal و values تغییر داد.
همچنین تعداد ستونها را 100 در نظر گرفت. بنابراین خواهیم داشت:
("hist(x,100,main="random normal", xlab="valuse
برای رسم بافتنگار همچنین میتوانید به تابع histogram از پکیج lattice مراجعه کنید.
یکی
از قابلیتهای موجود در R محیط گرافیکی آن است. بهطور مثال در این محیط
میتوان با در دست داشتن فایلهای مربوط به نقشه یک شهر یا کشور (فایلهای
GIS)، نقشه نقطه مورد نظر را ترسیم کرد. جهت ترسیم، این فایل باید به صورت
چندضلعی (Polygon) باشد.
محاسبه انتگرال
برای محاسبه انتگرال با استفاده از برنامه R روشهای مختلفی وجود دارند که به ذکر دو روش میپردازیم.
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.comR
1) با استفاده از تابع ()integrate
2) با استفاده از شبیهسازی به روش مونت کارلو.
به طور مثال فرض کنید که تابع زیر را در نظر داریم و میخواهیم انتگرال تابع زیر را در حدود انتگرالی 0 و 10 محاسبه کنیم:
f<-function(x){
exp(-x)/sqrt(x)
}
حال
برای محاسبه انتگرال تابع فوق کافی است داخل آرگومان تابع ()integrate به
ترتیب تابع، حد پائین و حد بالای انتگرال را قرارداده و اجرا کنیم که به
صورت ذیل است:
(integrate(f,0,10
برای محاسبه انتگرال به روش
مونت کارلو کافی است ابتدا تعدادی متغیر تصادفی از توزیع یکنواخت پیوسته
با حدود بالا و پائین همانند حدود انتگرال تولید میکنیم. سپس مقدار تابع
را به ازای این تعداد متغیر تصادفی یکنواخت محاسبه و سپس میانگین این
مقادیر را به دست میآوریم و این حاصل را در تفاضل حدود انتگرال (یا همان
حدود متغیر یکنواخت تولید شده) ضرب میکنیم. جواب به ددست آمده تقریب دیگری
برای محاسبه انتگرال در برنامه R است که برای تابع فوق به شکل زیر به دست
میآید:
(u<-runif(1000000,min=0,max=10
azsoftir.com
09367292276
09367292276
azsoftir@gmail.com
azsoftir.com
09367292276
09367292276
azsoftir@gmail.comR
((10*
برای
رسم نقشه پس نصب و بارگذاری بسته maptools از دستور ()readShapePoly
استفاده میکنیم. قبل از استفاده از این دستور بایستی فایلهای نقشه منطقه
مورد نظر را (پس از نصب بسته maptools) در شاخه library\maptools\shapes
ذخیره کنیم. بهطور مثال میتوانید نقشه شهر تهران و کشور ایران را از
لینکهای زیر: