گمزبوک در این نوشتار قصد دارد به تابع نرمال بپردازد. قطعاً به هنگام استفاده از توزیع نرمال در مدل های خود با این سوال مواجه شده اید که آیا گمز داده ای تصادفی نرمال برای من تولید میکند؟ آیا میتوانم از تابع توزیع و تابع چگالی نرمال استفاده کنم؟ آیا تابع توزیع تجمی در گمز وجود دارد؟ …
پاسخ این سوالات در این تاپیک ارائه می شود. همانطور که می دانید گمز از منابع زیادی برای محاسبات خود استفاده می کند. یکی از این منابع stochastic library نام دارد که در آن توابع و فرمول های ریاضی فراوانی ذخیره شده است و شما با فراخوانی آنها می توانید از هر تابع دلخواهی که نیاز دارید استفاده کنید.
رویه به این شکل است ابتدا مرجع (stochlib) را فراخوانی میکنید، سپس از توابع آن استفاده می کنید.
نحوه فراخوانی این مرجع به شکل زیر است:
$funclibin stolib stodclib
function dnorm /stolib.Dnormal /;
function pdfnorm /stolib.pdfnormal /;
function cdfnorm /stolib.cdfnormal /;
function icdfnorm /stolib.icdfnormal /;
همانطور که مشاهده می شود ما تعدادی توابع با نام هایی نظیر dnorm,pdfnorm و… فراخوانی کردیم. از این لحظه به بعد کد ما کاملا آماده تولید و استفاده از دستورات و محاسبات مربوط به توزیع نرمال می باشد. در ادامه پس از معرفی هر دستور، مثال جامعی ارائه می دهیم.
معرفی دستورات
dnorm: توسط این دستور می توان اعداد تصادفی نرمال تولید کرد.
dNorm(MEAN,STD_DEV)
که در کد بالا MEAN میانگین و STD_DEV انحراف استاندارد توزیع می باشد.
pdfNorm: توسط این تابع می توان مقدار تابع چگالی یک متغیر تصادفی را محاسبه کرد. به عنوان مثال در کد زیر می توان با قرار دادن یک عدد به جای x مقدار تابع چگالی مربوط به آن را محاسبه کرد.
pdfNorm(x,MEAN,STD_DEV)
cdfNorm: توسط این دستور می توان تابع توزیع تجمعی مربوط به توزیع نرمال را بدست آورد.
cdfNorm(x,MEAN,STD_DEV)
icdfNormal: مقدار تابع معکوس نرمال توسط این دستور محاسبه می شود.
icdfNormal(x,MEAN,STD_DEV)
به مثال زیر دقت کنید. در این مثال ما قصد داریم برای پارامتر a اعداد تصادفی با توزیع نرمال، برای پارامتر b مقدار تابع چگالی مربوط به یک ععد خواص از توزیع نرمال، برای عدد c مقدار احتمال تجمعی در توزیع نرمال و برای پارامتر e معکوس تابع توزیع نرمال را محاسبه کنیم.
sets i/1*20/;
$funclibin stolib stodclib
function dnorm /stolib.Dnormal /;
function pdfnorm /stolib.pdfnormal /;
function cdfnorm /stolib.cdfnormal /;
function icdfnorm /stolib.icdfnormal /;
parameter a(i),b,c,d,e;
a(i)=dnorm(5,10);
b=pdfnorm(3,3,4);
c=cdfnorm(10,3,5);
d=icdfNorm(.25,10,10);
e=icdfNorm(.25,0,1);
display a,b,c,d,e;
و در پایان چند نکته:
1- بدون فراخوانی مرجع تصادفی یا stochastic library قادر به استفاده از توابع نیست.
2- هر تابعی که استفاده می کنید را تست کنید و باید خروجی مرتبط با آن منطبق با مفاهیم توزیع نرمال باشد. مثلا ما انتظار داریم برای پارامتر c عددی نزدیک به یک به دست بیاید. اگر عددی خلاف آن محاسبه شد پس ما در محاسبات و دستورات اشتباهی مرتکب شده ایم.
3- در تمامی توزیع های فوق، در صورتی که به جای میانگین عدد 0 و به جای انحراف استاندارد عدد 1 را قرار دهیم، خودبه خود از توزیع نرمال استاندارد استفاده کرده ایم.
ایمیل: Support@gamsbook.ir
شماره تماس: 3325-405–0919
سلام وقت بخیر
محدودیت
sum(r,sum (k, u(r) *u(k) cov(y(r,j),y((k,j))))+sum(i, (sum (L, v(i)*v(L) cov (x(i,j),x(L,j)) ))) – 2*sum(r , sum (i , u(r) * v(i) cov (y(r,j),x(i,j))))
ّبرای i,L=1,…,2, k,r=1,…,2 و j=1,…,5
میخواستم بنویسم. مقادیر cov محاسبه شده و برای هر DMU یک ماتریس2*2 بدست آمده.
امکانش هست راهنمایی فرماییدکه چطور می توان این ماتریس را برای هر واحد نوشت و چگونه در مدل می توان فراخوانی کرد؟
تشکر
سلام و ادب
توی تحلیل پوششی داده ها x,y پارامتر و معلوم هستند. بنابراین با فرمول میشه cov مربوط بهشون رو نوشت. فقط نکته ای که مطرحه اینه که ما دیدمون نسبت به داده ها sample هست یا population
برای محاسبه cov قبل از معادلات و بعد از تعریف xt,yt (مربوط به نمونه- این مقادیر با x,y نهایی که عملا میانگین نمونه محسوب میشه متفاوت هست) میشه از فرمول cov استفاده کرد. به عنوان نمونه فرضا برای هر i,j یک نمونه N تایی داریم. cov(y(r,j),y(k,j)) به صورت زیر میتونه باشه:
اگر در فرمول cov هم مشکل دارید، کافیه در گوگل سرچ بزنید Covariance Formula
تشکر از شما
یک مشکلی که هست اینکه کواریانس ، با استفاده از داده های ورودی و خروجی که داخل مقاله داده شده ، محاسبه می کنم مقادیر کواریانس اصلا طبق مقادیری که در مقاله نوشته شده بدست نمیآید. به همین دلیل خواستم از خود مقادیر کواریانس که داده شده در مدل استفاده کنم.
خب از همون استفاده بکنید که بشه مقایسه هم کرد پاسخ ها رو
کد گمز نتونستم بنویسم.
co1(j).. Sum(r,y(r,j)*u(r)) – Sum(i,x(i,j)*v(i)) – (1.645* sqrt(sum(r,sum((w,s),(u(r)*u(s))*b(w,j)))+sum(i , sum((q,l), (v(i)*v(l)) *a(q,j) )) – (2*(sum(e, sum((r,i),(u(r)*v(i))*c(e,j))))))))=l=0
قسمت sqrt به بعد قراخوانی نمیکنه. امکانش هست راهنمایی کنید.
تشکر
ببینید قبلا عرض کردم، محاسبات رو بذاین قبل از اکویشن ها، اینجوری صد تا پرانتز ایجاد میشه و دابل چک باید بکنید همیشه.
y رو دارید، اندیس دارید، یه پارامتر از قبل به نام covy مثلا تعریف کنید که اندیس های مناسب داشته باشه. مثلا covy(i,j,k (یعنی بسته به اندیس پارامترهایی داره که قراره کووراریانسشون حساب بشه)
سلام وقت بخیر
میخوام توسط تابع توزیع ویبول عدد رندم در یک بازه مشخص تعریف کنم
امکانش هست راهنمایی کنید
سلام
اینو ببینید
من یه تابع توزیع تجمعی توام (H(x,y دارم که برابر 1-p هست و همینطور یه تابع توزیع شرطی( H(y/x که برابر تابع توزیع توام تقسیم بر حاشیه ای میشه
این توضیحات کافی نیست خانم سالاروند. عرض کردم. باید ریز و شفاف توضیح داده بشه. و به همون گفتگو لطفا جواب بدین و بحث جدید که باز میشه قاطی میشه کامنت ها. تشکر
تابع توزیع تجمعی توام به چه صورت هست؟
برای توام نمیشه نسخه کلی ارائه داد. برای هر مسئله متفاوت هست. شما مثالی که دارید رو مطرح کنید که با هم در موردش صحبت کنیم.
سلام وقت بخیر.
برای توزیع تجمعی توام و حاشیه ای از چه دستوری باید استفاده کنیم؟
سلام
حاشیه ای که همون توزیع احتمال هست. و میتونین از موارد بالا استفاده بکنین.
برای تجمعی بستگی به نوع توزیع داره. انتگرال تو گمز نداریم، از اینرو باید خودتون انتگرال رو به صورت دستی انجام بدین و داده ها رو در اخر وارد کنین.
مهندس سلام و خسته نباشین، توزیع یکنواخت گسسته [1,A] برای پارامتر p(j) (زمان کارها) در گمز به چه صورتی باید بنویسم و اینکه اگه بخوام 10 تا کار درنظر بگیرم برای هرکاری یه زمانی میده؟ چجوری نوشته میشه؟
سلام
برای هر کار به صورت تصادفی میاد عدد میده.
ممنون
سلام.لطفا در راهنمایی در مورد وارد کردن تابع چگالی احتمال نرمال که انحراف معیار اون طبق یه جدول در ساعات مختلف تغییر می کنه رو بفرمایید ممنون میشم
سلام
شما کافیه اندیس به پارامتری که دارین اضافه کنین. و به جای انحراف معیار تو فرمول هم همون اندیس رو بذارین.
با سلام و وقت بخير
در مورد مثالي كه بيان كرديد سوالي داشتم:
با توجه تعريف تعداد i كه 20 است پس انتظار داريم بيايد و براي a(i) تعداد بيست عدد را گزارش كند
نحوه انتخاب اين اعداد چگونه است؟
آيا اتفاقي از توزيع بيان شده داده بر ميدارد؟
يا اينكه مثلا مي آيد و به تعداد پيش فرض نمونه ميگيرد و اميد رياضي آن را هر بار گزارش ميكند؟
با سپاس
سلام
ببینید دقیقا همون انتظاری که تو آمار داریم از اعداد تصادفی هست. یه توزیع با یه میانگین و واریانس تحویل میگیره. طبق اون عدد تصادفی تولید میکنه. حالا اگه شما مثلا 100 تا تولید کنین، اگه رسمش کنین این داده ها رو، میبینین که توزیعش نرماله
این پست رو هم بخونین
تولید عدد تصادفی در گمز