مقدمه‌ای بر شبیه‌سازی در R، روش مونت‌کارلو

یکی از کاربرد‌های کمتر شناخته‌شده‌ی R، استفاده از آن برای شبیه‌سازی است. شبیه‌سازی سیستم‌های گسسته‌ پیش‌آمد(DES) ، سیستم‌های صف و روش‌های مانند مونت‌کارلو رایج‌ترین شبیه‌سازی‌هایی هستند که در R انجام می‌شوند. البته این را هم در نظر داشته باشید که R کمی تا قسمتی کند است و چیزی که آن را برای شبیه‌سازی مطلوب کرده این است که بسیاری از محققینی که زمینه‌ی آماری دارند R را به زبان‌ها و ابزارهای دیگر ترجیح می‌دهند، از طرف دیگر، متن‌باز بودن R  مزیت آن در این زمینه در مقابل Mat­lab است. از آنجایی که این وب‌سایت درباره‌ی R و مخلفاتش است، پرداختن به مبحث شبیه‌سازی در آن خالی از لطف نیست. تقریبا هر جایی که مبحث شبیه‌سازی مطرح می‌شود، روش مونت‌کارلو اولین روشی است که مورد بحث قرار می‌گیرد.

ادامه مطلب →

انواع ساختار‌‌های داده در R، بخش پایانی

در پست قبلی، با ماتریس و data frame (معادل‌های چارچوب‌داده یا داده چارچوب‌دار برای آن پیشنهاد شده است) آشنا شدیم. این ساختارهای داده، دو بعدی بودند و معمولا هر ردیف آن، نماینده یک مشاهده و هر ستون آن نماینده یک مشخصه بود. فرض کنید داده‌ای داریم که نیازمند بعد زمان نیز هست. مثلا چهار دانش‌آموز، سه امتحان را در دو هفته پشت سر گذاشته‌اند و می‌خواهیم به جای این که یک ماتریس جداگانه برای هر هفته داشته باشیم، در یک ساختار داده همه چیز را خلاصه کنیم، در اینجا ساختار داده‌ای به نام Array کار ما را راه می‌اندازد. داده‌های اولیه را در R به وجود می‌آوریم: ادامه مطلب →

انواع ساختار‌‌های داده در R، بخش دوم ماتریس و Data.frame

ماتریس، یک ساختار دو بعدی برای داده است. تمام عناصر یک ماتریس باید از یک نوع باشند.(numeric, log­i­cal, char­ac­ter, com­ple). درست همانند بردارها، اگر عناصری که به یک ماتریس می‌دهید چند نوع باشند R در ماتریس نهایی همه‌ی آنها را به یک نوع تبدیل خواهد کرد. (به این عمل اگر اشنباه نکنم Coerc­ing می‌گویند.) چندین راه برای به وجود آوردن یک ماتریس در R وجود دارد. به عنوان مثال می‌توانیم دو یا چند بردار را با دستورهای cbind و rbind به صورت ستونی یا ردیفی به هم بچسبانیم:

ادامه مطلب →

انواع ساختارهای داده‌ در R، بخش اول، بردارها

بردارها

بردار تقریبا پایه‌ای‌ترین ساختار داده در R  است. بردار ساختاری است که مجموعه‌ای از مقادیر مرتب‌شده به نام عنصر را در خود ذخیره می‌کند. یردار را می‌‌توان معادل یک ستون در نرم‌افزارهایی چون اکسل و spss دانست. یک بردار می‌تواند هر تعداد عنصر داشته باشد با این شرط که نوع تمام عناصر یکسان باشد، به عنوان مثال، یک بردار نمی‌تواند هم شامل عدد و هم شامل متن باشد. برای تشخیص نوع عناصر یک بردار می‌توانید از دستور زیر استفاده کنید:

ادامه مطلب →

آموزش نوشتن تابع در R، بخش اول

با این که خیلی‌ها R را به عنوان یک نرم‌افزار آماری می‌شناسند(که به نظر من شناخت اشتباهی است)، R در ذات خود یک زبان برنامه‌نویسی کامل است و خیلی از چیزهایی که در زبان‌های دیگر رایج هستند مانند توابع، حلقه‌ها، آرایه‌ها و … در R نیز وجود دارند. در این پست قرار است با نحوه‌ی نوشتن یک تابع در R آشنا شویم. ادامه مطلب →

با R و یک الگوریتم نسبتا ساده موبایل انتخاب کنید

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

mcdm همان‌طور که احتمالا از اسمش مشخص است هنگامی به کار می‌رود که تصمیم‌گیرنده می‌‌خواهد چندین معیار را با هم در تصمیم‌گیری خود لحاظ کند. چندین روش و الگوریتم برای mcdm پیشنهاد شده و در این پست قرار است با یکی از الگوریتم‌های نسبتا ساده‌ی mcdm به نام TOPSIS آشنا شویم. ادامه مطلب →

توزیع نرمال چیست، چرا مهم است و چطور با استفاده از R نرمال بودن داده را مشخص کنیم؟

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

  • توزیع نرمال یک توزیع پیوسته است(یعنی گسسته نیست و می‌تواند هر مقداری به خود بگیرد)
  • بسیاری از پدیده‌های طبیعی از آن پیروی می‌کنند.
  • شکل آن همانند زنگوله (اصطلاحا Bell shape) و حول میانگین خود متقارن است.
  • با تقریب خوبی مهم‌ترین توزیع آماری است.

normal-distribution-2

(منبع عکس + )

ادامه مطلب →

چطور R یاد بگیریم؟

اگر عبارت "why you should learn R" را در اینترنت جستجو کنید به مطالب ده‌‌ها نفر در اینترنت بر می‌‌خورید که دلایل فراوانی برای یادگرفتن این زبان(یا برنامه) آماری نوشته‌اند. اگر به هر دلیلی بخواهید این زبان را یاد بگیرید اولین چیزی که احتمالا متوجه خواهید شد و اکثر کاربران این زبان بر سر آن توافق دارند این است:

یاد گرفتن R {در هنگام شروع} سخت است.

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

آشنایی با مفهوم Package در R

فرض کنید شخصی می‌خواهد کاری را در R دهد و متوجه می‌شود که به طور پیشفرض هیچ تابع و فرمانی برای آن در R وجود ندارد. یا شخص دیگری از نحوه عملکرد فرمانی در R راضی نیست و می‌خواهد فرمان شخصی خودش را بنویسد. پکیج‌های R از طرف این اشخاص به وجود می‌آیند. Pack­age در واقع مجموعه فرامین و توابعی است که یک کاربر نوشته و تحت قوانین و شرایط خاصی به شکل یک بسته‌ی نرم‌افزاری قابل اجرا در R که به راحتی قابل اشتراک‌گذاری است در آورده. در طول ۲۰ سالی که از شکل‌گیری R می‌گذرد، هزاران کاربر، هزاران قابلیت مختلف را به R اضافه کرده‌اند. تا ژانویه ۲۰۱۶، حدود ۷۸۰۰ پکیج در CRAN(شبکه جامع آرشیو R) ثبت شده و روزانه به این تعداد اضافه می‌شود. ادامه مطلب →

مروری بر نرم‌افزار Rstudio

اگر از خوره‌های R بپرسید که اولین کاری که باید بعد از نصب R روی یک سیستم انجام دهیم چیست قطعا پاسخ اکثر آنها نصب RStu­dio خواهد بود. RStu­dio در حال حاضر معروف‌ترین و بهترین IDE است که برای R ساخته شده و در این پست قرار است با آن بیشتر آشنا شویم. نحوه‌ نصب این نرم‌افزار را در پست قبلی توضیح دادم.  بعد اجرای RStu­dio با صفحه زیر مواجه می‌شوید. همان‌طور که می‌بینید این نرم‌افزار سه بخش اصلی دارد که به ترتیب آنها را بررسی می‌کنیم.

rstudio

ادامه مطلب →