آموزش و تحلیل آماری با نرم افزار R
 

آموزش و تحلیل آماری با نرم افزار R

آموزش و اشتراک دانسته ها درباره ی نرم افزار SPSS,SAS, R ,... به همراه تحلیل داده و پروژه آماری

دنیای آینده ی آماری
ساعت ۱:۱٤ ‎ب.ظ روز جمعه ۱۳٩۱/۱/٢٥  کلمات کلیدی: دانشمند داده ، داده کاوی ، تحلیل آماری ، شغل آماری

دکتر وینسنت گرانویل

وینسیت گرانویل، دانشمند داده، در پست 9 مارچ 2012 در سایت آنالیتیک بریج،  بحثی را تحت عنوان "50 مورد غیرمعمولی که از تحلیل ها(ی آماری) جهت زندگی بهتر ما استفاده شده است. " به کاربردهای کمتر به ذهن رسیده ی تحلیل ها(ی آماری) اشاره می کند.

بعضی از این کابردها را به عنوان "آنچه در آینده ی نه چندان دور خواهیم دید" در سرمقاله ی شماره ی 4 نشریه دانشجویان آمار دانشگاه علامه طباطبائی - ندا -  ذکر کرده بودم. نکته جالب توجه این است که سرمقاله ی من، حدود یکسال پیش نوشته و چاپ شده بود و امروز می بینیم که آن پیش بینی ها به واقعیت بدل شده اند. در ادامه 10 مورد اول این لیست را ترجمه کرده و در زیر آورده ام:

 

1. Automated patient diagnostic and customized treatment

 

1. سیستم تشخیص خودکار بیماری و سیستم درمان سفارشی بیمار

به جای اینکه به دکتر مراجعه کنید، یک پرسشنامه (از نوع درخت تصمیم گیری desicion tree) آنلاین را پر می کنید. در آخر این پرسشنامه ی پزشکی، داروهای متناسبی   نسخه نویسی و برایتان ارسال می شود. برای مثال نوع ترکیب دارویی که فرد مذکر دریافت می کند با ترکیبی که به فرد مونث برای همان وضعیت داده می شود، متفاوت است. بطور خلاصه، دکترها و داروسازان، جایشان را به الگوریتم ها و ربات ها می دهند.

2.Movie recommendations for family members

2. پیشنهاد موضوعی تماشای فیلم برای اعضای خانواده

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

3. Scoring technology

3. تکنولوژی امتیازبندی

محاسبه ی امتیاز FICO شما،  الگوریتم هایی که احتمال تبدیل یک کلیک اینترنتی( در سطلی پر از کلیک های بدون در نظر گرفتن اطلاعات و داده های قبلی کاربر) را با بازه های اطمینان به دست می آورند.

در زمینه های:

  • امتیازهای استاندارد شده score standardization
  • امیتازهای ترکیب شده - score blending
  • ثبات امیتاز - score consistency

در طی زمان و براساس کاربران آنها را محاسبه می کند.

4. Detection of fake book reviews (Amazon) and fake restaurant reviews (Zagat).

4. تشخیص نقدهای جعلی کتاب در سایت آمازون و نقدهای جعلی رستوران ها در Zagat

 

 

5. Detection of plagiarism, spam, as well as people sharing paid accounts and pirated movies with friends and colleagues.

5. تشخیص سرقت های ادبی، اسپم ها،  و نیز به اشتراک گذاشتن فیلم های سرقتی با دوستان و همکاران.

 

6.Automated sentencing for common crimes

6. صدور حکم خودکار به جرایم عمومی

براساس امتیاز با عوامل ساده برای محاسبه ی نمره ی جرم. این سیستم هزینه های ناشی از استفاده ی بعضی دادگاه ها و وکلا را از بین می برد.

 

7. Testing athletes for fraud

7. آزمایش قهرمانان ورزشی برای جلوگیری از فریب و کلک.

بعضی از ورزشکاران برای بالابردن کاراییشان، نمونه های خون خود را در فریز نگهداری می کنند، تا زمانی که بخواهند در مسابقه ای شرکت کنند، این خون ها را دوباره به خود تزریق می کنند تا با این کار تعداد و کارایی سلول های قرمز خود را افزایش دهند و تشخیص آن غیر ممکن است.


8. Detecting election fraud

8 . تشخیص تقلب های انتخاباتی

 

9. Semi-automated car driving.

9. رانندگی نیمه اتوماتیک خودرو

نرم افزارهای برای براورد رفتار راننده برای جلوگیری از تصادف ها و تعویض حرکت راننده بصورت خودکار در صورت نیاز. همچنین فراهم کردن مسیرها، زمانی که GPSها فعال نیستند.

10. mortgage

10. وام مسکن

 

وقتی که وام مسکن دریافت می کنید، در مورد پرداخت ماهیانه شما با استفاده از نرخ بهره و ... زمان برگشت را محاسبه می کند.به عنوان مثال می توانند 15 تا 30 سال را برای شما درنظر بگیرند با این عنوان که خطای آماری این محاسبات را انجام داده است. که این البته می تواند یک نوع تقلب محسوب شود تا بیشترین سود را به وام دهنده برساند. اگر دانش کافی اماری نداشته باشید، حسابی سرتان کلاه خواهد رفت!  این محاسبات برای هرکالای مالی دیگر نیز قابل انجام است.

 

حق کپی رایت برای نویسنده محفوظ است.
به حقوق یکدیگر احترام بگذاریم!

سوالات خود درباره ی نرم افزار R را در قسمت نظرها یا به ایمیل زیر بفرستید: LearnRws@gmail.com

 


 
27 نوع دانشمند داده
ساعت ۸:٠٦ ‎ب.ظ روز یکشنبه ۱۳٩۱/۱/٢٠  کلمات کلیدی: دانشمند داده ، کتاب لاتین ، اشخاص ، شغل آماری

دانشمند داده

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

وی در مقاله ی 8 مارچ 2012 خود این طور می نویسد:

" 3 نوع مقیاس برای دسته بندی جمعیت دانشمندان داده وجود دارد . که هر مقیاس دارای 3 وضعیت : کم، متوسط و زیاد است.پس 27 =( 3*3*3 ) نوع دانشمند داده وجود دارد. در زیر این مقیاس ها، توضیح داده می شود:

1 ) مهارت های نرم(Soft Skills) که شامل مهارت های زیر می شود:

  • فروش (Sales)
  • تیزهوشی تجاری ( business acumen )
  • ارتباطات (communications)

2) رهبری (Leardeship) که شامل موارد زیر می باشد:

  • بصیرت (vision)
  • فراست (intuition)
  • تخمین و تفسیر نیاز مشتری ها (guessing/interpreting client needs)
  • دارای دید وسیع - استراتژی محور در مقابل تاکتیکال و جزئیات گرا (big picture - strategy oriented vs. tactical / detailed oriented)

3 ) دانش (Knowledge) که شامل موارد زیر می شود:

  • تجربه (experience)
  • با مهارت (در ساخت)  (craftsmanship)
  • دانش گسترده و عمیق (عمیق در بعضی موارد) در تنها یک تخصص
    (broad and deep knowledge (deep in some areas) vs. specialized only or absent) "

وی سپس با اشاره به نتایج نظر سنجی که در آن از دانشمندان داده پرسیده بود: " چقدر یافتن شغلی برایتان مشکل است؟"، ابراز کرده بود که بالغ بر 70% پرسش شوندگان معتقد بودند که یافتن شغلی برای آنها سخت تا غیرممکن است.

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

همچنین می توانید نسخه ی اولیه، اولین کتاب درباره ی دانشمند داده را از لینک زیر که خود وینست برای گسترش این علم به صورت مجانی در اختیار گذاشته است، دریافت کنید:

دانلود کتاب دانشمند داده
نسخه 2/13/2012

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

 

حق کپی رایت برای نویسنده محفوظ است.
به حقوق یکدیگر احترام بگذاریم!

سوالات آماری R قسمت نظرها یا به ایمیل LearnRws@gmail.com


 
جمعیت شهرنشین دنیا از 1950 - 2050
ساعت ٤:۱٦ ‎ب.ظ روز دوشنبه ۱۳٩۱/۱/۱٤  کلمات کلیدی: نمودارها ، r ، تحلیل آماری ، سازمان آماری

 

جمعیت شهرنشین دنیا از 1950 - 2050

یکی از قابلیت های نرم افزار R ، توانایی آن در رسم نمودارهای آماری با کیفیت فوق العاده و سرعت بالاست. گرافیک در R مبحث بسیار مهمی هست که افرادی چون هادلی ویکهام با پروژه ی ggplot2 ، پائول باتلر، اماندا کاکس، مارکوس گسمن و ... با خلاقیت تمام از R استفاده می کنند و نمودارهایی تولید می کنند که از نظر کیفیت با نمودارهای تولید شده توسط نرم افزارهای گرافیکی حرفه ای مانند Adobe Photoshop ، Corel Draw و... برابری می کند.

متاسفانه، در آموزش رشته ی آمار در ایران، نمودارها خیلی کم مورد بحث جدی قرار می گیرند. این در حالیست که علاوه بر نمودارهای رایج، نمودارهای جدیدی تولید و عرضه می شوند که می  توانند داده های با ابعاد زیاد را نمایش دهند. یا نمودارهایی که اطلاعات بیشتری از داده ها را در اختیار می گذارند.

این مسئله شاید به دلیل نظری درس دادن رشته آمار است. چرا که در آمار کاربردی می بایست از نمودار و .... برای نمایش و ارائه گزارش استفاده کرد. همچنین با دیدن نمودارها ، ایده های جدید تحلیل به ذهن خطور می کند که می توان مورد بررسی قرار داد.

به عنوان مثال، در طرح آزمایش ها، فرض نرمال بودن، تصادفی بودن و ....علاوه بر  آزمون های عددی، آزمون های نموداری بسیاری هم وجود دارد. همین نمودارها می تواند ایده ی تبدیل مناسب روی داده ها را به تحلیلگر بدهد.

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

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

برای مثال، می توان به نمودار زیر اشاره کرد( روی لینک کلیک کنید) که با R نوشته شده است و جمعیت شهرنشین دنیا را از سال 1395 - 2050 به نمایش می گذارد. به نظر شما آیا این نمودار گویا هست؟ آیا می تواند هدف تحقیق را نمایش دهد؟  آیا ایده ی بهتری برای رسم همین داده ها دارید ؟

 

دنیای شهری

 

حق کپی رایت برای نویسنده محفوظ است.
به حقوق یکدیگر احترام بگذاریم!

سوالات آماری R قسمت نظرها یا به ایمیل LearnRws@gmail.com


 
براورد ماکزیمم درستنمایی در نرم افزار SAS به کمک شبیه سازی
ساعت ٥:٤۱ ‎ب.ظ روز چهارشنبه ۱۳٩۱/۱/٩  کلمات کلیدی: sas ، براورد ماکزیمم درستنمایی ، آموزشی ، شبیه سازی

پست قبلی با نرم افزار R حل شده بود. می توان این روش را در SAS نیز پیاده کرد. ابتدا می بایست داده های تصادفی تولید کنیم. چون داده های تصادفی در این مثال با پست قبلی متفاوت است، پاسخ های یکسانی دریافت نمی کنیم. ولی اگر داده های این مثال را در کد R قرار دهید، همین جواب این پست را دربافت می کنید.

ابتدا 20 داده های تصادفی از توزیع نمایی به دست می آوریم:

کد برنامه:

 data rexp;

Do i = 1to20;

x1 = ranexp(i);

x2 = rand('EXPONENTIAL');

output;

end;

DROP i;

proc print data = rexp;

run;

خروجی برنامه: ( x2 داده های تولید شده از توزیع نمایی است.)

Obs

x1

x2

1

1.68760

0.13979

2

0.03037

0.52808

3

0.91673

0.44179

4

1.34939

0.35967

5

0.08164

0.68500

6

0.03120

0.17497

7

0.61068

0.08313

8

0.63169

0.20211

9

2.99986

0.27686

10

2.70955

0.11112

11

0.19928

0.17536

12

0.64651

0.51552

13

0.15853

0.22745

14

2.70031

0.24858

15

0.04393

0.02592

16

1.21337

4.80030

17

1.29971

1.18610

18

0.37117

0.52037

19

0.02351

0.11389

20

1.48498

0.68780

می دانیم، براورد MLE توزیع نمایی یک متغیره، عکس میانگین است. پس باید میانگین را محاسبه کنیم:

 

proc means data = rexp;

var x2;

run;

پس مقدار میانگین برابرست با:

Analysis Variable : x2

N

Mean

Std Dev

Minimum

Maximum

20

0.5751909

1.0326241

0.0259196

4.8003032

 که مقدار براورد لامبدا می شود:1 تقسیم بر میانگین که برابرست با : 1.738553.

خوشبختانه، در براورد MLE پارامتر این توزیع به فرم بسته ای می رسیم. ولی در خیلی از مواقع باید از روش های عددی برای به دست آوردن مقادیر توابع MLE استفاده کنیم. در پست قبلی نیز، با این فرض MLE را محاسبه کردیم.

کدهای زیر به ازای لامبداهای 1 تا 1000 مقدار عبارت زیر را محاسبه می کنند، آنجا که این تابع بیشترین خروجی را داشته باشد، آن لامبدا را به عنوان براورد MLE در نظر می گیریم:

حال کدهای SAS مربوط به این روش را نیز در زیر می آوریم:

DATA mleexp;

DO i = 1to10000;

lambda = i/100;

abs_lambda = ABS((20*log(lambda)) - (lambda * (20*0.5751909)));

OUTPUT;

END;

DROP i;

حال داده ها را براساس مقادیر به دست آمده، مرتب می­کنیم تا بیشترین مقدار آن را یافته و لامبدای محاسبه شده را به عنوان براورد MLE قرار دهیم.

 PROC SORT DATA = mleexp OUT = mleexp_sorted;

BY abs_lambda;

PROC PRINT DATA = mleexp_sorted NOOBS;

RUN;

که در خروجی زیر 10 مقدار بیشتر را نمایش داده ایم:

lambda

abs_lambda

1.74

8.94

1.73

8.94

1.75

8.94

1.72

8.94

1.76

8.94

1.71

8.94

1.77

8.94

1.70

8.94

1.78

8.94

1.69

8.95

 مقادیر 1.74 و 1.73 ببشترین مقدار را تولید می کنند. این جواب با جواب قسمت قبلی همخوانی دارد. همچنین اگر داده های تولید شده را در کد پست قبل در محیط R نیز اجرا کنید، به همین جواب خواهید رسید.

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

 حق کپی رایت برای نویسنده محفوظ است.
به حقوق یکدیگر احترام بگذاریم!


 
براورد ماکزیمم درستنمایی در نرم افزار R به کمک شبیه سازی
ساعت ۳:۳٩ ‎ب.ظ روز جمعه ۱۳٩۱/۱/٤  کلمات کلیدی: r ، براورد ماکزیمم درستنمایی ، آموزشی ، شبیه سازی

فرض کنید 20 مشاهده از توزیع نمایی با پارامتر نامعلوم لامبدا داریم.( داده ها را با تابع rexp شبیه سازی می کنیم.) می خواهیم براورد ماکزیمم درستنمایی برای پارامتر مجهول را به دست بیاوریم. تایع توزیع نمایی بصورت زیر است:

که لگاریتم آن را می توان به صورت زیر نوشت:

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

خروجی برنامه:

$par
[1] 4.389834

$objective
[1] -9.585834

$convergence
[1] 0

$iterations
[1] 6

$evaluations
function gradient
       7        8

$message
[1] "relative convergence (4)"

برنامه:

>  x <- rexp(20, rate = 4)
>  n <- length(x)
>  nllhood = function(lambda) {
+  -1 * (n * log(lambda) - lambda * sum(x))
+  }
>  fit <- nlminb(6, nllhood)
>  fit

 

حق کپی رایت برای نویسنده محفوظ است.
به حقوق یکدیگر احترام بگذاریم!