|R| Experts – Telegram
|R| Experts
1.05K subscribers
376 photos
35 videos
58 files
205 links
@R_Experts
🔴آمار علم جان بخشیدن به داده‌هاست.
🔷ارتباط با ما
@iamrezaei
لینک یوتیوب و اینستاگرام و ویرگول:
https://zil.ink/expertstv
Download Telegram
#الگوریتم_مترو_پلیس_هستینگ



metropolis.hastings <- function(f,  # the target distribution

                                g,  # the proposal distribution

                                rg, # a sample from the proposal distribution

                                x0, # initial value for chain, in R it is x[1]

                                chain.size=1e5,  # chain size

                                burn.perc=0.1) { # burn in percentage

  

  x <- c(x0, rep(NA,chain.size-1))  # initialize chain

  

  for(i in 2:chain.size)   {

    y <- rg(x[i-1])                 # generate Y from g(.|xt) using sampler rg

    alpha <- min(1, f(y)*g(x[i-1],y)/(f(x[i-1])*g(y,x[i-1])))

    x[i] <- x[i-1] + (y-x[i-1])*(runif(1)<alpha)  # update step

  }

  

  # remove initial part of the chain before output result

  x[(burn.perc*chain.size) : chain.size] 

}



@R_Experts
#Example

This first eg samples from an uniform distribution (the proposal distribution)
to generate a sample from a Beta(2.7, 6.3) distribution:

a<-2.7; b<-6.3; size<-1e4

f <- function(x) dbeta(x,a,b)
rg <- function(x) runif(1,0,1)
g <- function(x,y) 1 # i.e., dunif(x,0,1)

X <- metropolis.hastings(f,g,rg,x0=runif(1,0,1),chain.size=size)

par(mfrow=c(1,2),mar=c(2,2,1,1))
hist(X,breaks=50,col="blue",main="Metropolis-Hastings",freq=FALSE)
curve(dbeta(x,a,b),col="sienna",lwd=2,add=TRUE)
hist(rbeta(size,a,b),breaks=50,col="grey",main="Direct Sampling",freq=FALSE)
curve(dbeta(x,a,b),col="sienna",lwd=2,add=TRUE)



@R_Experts
This second eg samples from a chi-squared distribution to
generate a sample from the Rayleigh distribution (assume parameter σ=4):



library(VGAM)

sigma <- 4
f <- function(x) drayleigh(x,sigma) # the target distribution
rg <- function(x) rchisq(1,df=x) # a sample from proposal g(.|x)
g <- function(x,y) dchisq(x,df=y) # the pdf at g(x|y)

X <- metropolis.hastings(f,g,rg,x0=rchisq(1,df=1),chain.size=size)

par(mfrow=c(1,2),mar=c(2,2,1,1))
hist(X,breaks=50,col="blue",main="Metropolis-Hastings",freq=FALSE)
curve(drayleigh(x,sigma),col="sienna",lwd=2,add=TRUE)
hist(rrayleigh(size,sigma),breaks=50,col="grey",main="Direct Sampling",freq=FALSE)
curve(drayleigh(x,sigma),col="sienna",lwd=2,add=TRUE)



@R_Experts
#سرگرمی
#تخم_مرغ_رنگی

          "@R_Experts"


meshgrid <- function(a, b) {

  list(x = outer(b * 0, a, FUN = "+"), 

       y = outer(b, a * 0,FUN = "+"))

}

#install.packages("rgl")

library(rgl)

c = 0.2

b = 1.7

theta = seq(0, 2 * pi, length = 40 * 4)

phi = seq(0, pi, length = 40 * 4)

theta1 = meshgrid(theta, phi)$x

phi2 = meshgrid(theta, phi)$y

x = (1 + c * phi2) * sin(phi2) * cos(theta1)

y = (1 + c * phi2) * sin(phi2) * sin(theta1)

z <- b * cos(phi2)

surface3d(x, y, z, color = rainbow(10))

par3d(zoom = 0.7)




@R_Experts
|R| Experts
#توزیع_های_آماری @R_Experts
#توضیحات
برای استفاده از این جدول برحسب نوع استفاده از تابع ،پیش از نام تابع حروف
p

,
q

,
d

و یا
r

استفاده میکنیم.
@R_Experts
p برای محاسبه احتمال در تابع توزیع

q برای محاسبه چندک

d برای محاسبه چگالی

r برای تولید اعداد تصادفی


@R_Experts
#بیشتر_بدانیم

الگوریتم EM در سال 1997 توسط دمپستر و همکارانش ارائه شد این الگوریتم روشی برای محاسبه براوردگر ماکسیمم درست نمایی است هنگامی که داده گمشده وجود داشته باشد یا روش های ساده بهینه سازی با شکست مواجه شوند
از مهم ترین کاربرد های این الگوریتم یافتن پارامترهای مدل امیخته متناهی میباشد.
الگوریتم EM با در نظر گرفتن متغیرهای پنهان از روندی تکراری برای براورد پارامترها استفاده میکند
این الگوریتم با در نظر گرفتن مقدار اولیه برای پارامترهای مدل شروع میشود که به این مرحله مرحله آغازین گوییم
در گام بعدی که مرحله تکرار نامیده میشود
این پارامترها به روز میشوند
و فرآیند تا جایی تکرار میشود که الگوریتم همگرا شود
مرحله ی تکرار از دو گام تشکیل میشود:
گرفتن امید و ماکسیمم سازی
در گام اول بردار متغیرهای پنهان
z[i]=(z1,z2)
i=1,...,n
که
z1
احتمال شرطی متعلق بودن مشاهده i
به مولفه اول( یا همان جامعه اول ) به شرط پارامترهای مدل است ،براورد میشود .
ودر گام بعد پارامترها به شرط zi براورد میشوند
از انجا که مقدار تابع درست نمایی در هر تکرار افزایش می یابد از این رو الگوریتم همگراست و بنابراین براورد های به دست آمده از این روش به مقدار ماکزیمم درست نمایی آنها میل میکنند.

در حالت کلی تر میتوان گفت

در مرحله گرفتن امید از تابع درست نمایی که بر اساس توزیع توام x و
z=(z1,....,zn)
بیان شده تحت توزیع z به شرط x
و teta^i
برآورد پارامتر teta در
تکرار iام امید گرفته میشود 👇👇👇

@R_Experts

https://telegram.me/R_Experts
در مرحله ماکزیمم سازی Q بر حسب
teta^i+1
ماکزیمم میشود.

@R_Experts
#تمرین_شماره_7

تمرینی که ایده ی ناب اون رو از سوالات ریاضی المپیاد دانشگاه MIT ، استفاده کردیم

ممنون از جواب های تک تک دوستان و لطف و توجه همگی ،

تمرین فراموش نشده بود :)

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

نگاه کنیم ،

مطرح کردن این الگوریتم در ابتدا با اطلاعات کمی که در اختیار داشتیم 3 نقطه کار بسیار دشواری به نظر میرسید،

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

همگی با یک دید در قالب های متفاوت به مساله نگاه کرده بودند،

اون 3 امتیاز واقعا برازنده تلاش کسی بود که

که با ایده

Two Dimonsional Interpolation

درون یابی دو بعدی "لاگرانژ"

به مساله نگاه میکرد حتی اگه برنامه اون رو نمیتونست بنویسه ،

به زبان ساده تر بدون اینکه ارتباط بین x1,x2,y را میدانست برنامه طراحی میکرد تا به ظابطه

y=x1*x1+x1*x2

برای ما به عنوان خروجی چاپ میکرد و پیش بینی علامت سوال بر اساس این خروجی

صورت می پذیرفت

و تکنیک حل سوال برای @R_Experts

خیلی قابل اهمیت بود

"ذهن خود را باز کنیم و با دیده روشن به مسائل نگاه کنیم من یقین دارم که میشود (تو) نیز یقین داشته باش"

حال به عنوان
#تمرین_شماره_8

میتوانید این درون یابی را که در "سطوح مقالات آنالیز عددی پیشرفته "مطرح میشود ،مطالعه

حل و با پیاده سازی در نرم افزار به یکی از آی دی های

@Analyst20
@javad_vhd
@hamedrezaei2

ارسال نمایید با تشکر از توجه شما🌷🌷🌷
https://telegram.me/R_Experts
#درخواستی_دوستان

بحث مدل های Arima ، بدون استفاده از تابع اتوماتیک این مدل یعنی

auto.arima


در این مثال
کاربردی که به مربوط به قیمت نفت Opec
از فوریه 2003 به بعد میباشد

ابتدا برای کار دو پکیج
library(TSA)

library(forecast)


فراخوانی
و داده های تکست را وارد نرم افزار میکنیم پس از این کار

این داده ها را به عنوان یک تایم سری"ts" به R معرفی میکنیم چون داده ها روزانه جمع اوری شده اند 365 را در

 ts 

اورده ایم

سپس نمودار مربوطه رسم میشود

@R_Experts
شما در این نمودار به وضوح تحولات منطقه و تاثیر اون بر قیمت نفت رو میتونید مشاهده کنید به طور مثال در سال 2003 که حمله امریکا در 20 دسامبر صورت گرفت شاهد افت و خیزی در این نمودار هستیم


@R_Experts
در ادامه کار با رسم نمودار همبستگی جملات بین سری
acf


در میابیم که این سری با اصول اولیه این مدل ها یعنی مانایی مشکل ایجاد میکند،

یعنی لگ های نمودار همبستگی بین جملات سری از باند ابی تعیین شده خارج شده اند ،

@R_Experts
برای ادامه کار تعدادی از داده ها رو انتخاب میکنیم و نمودار ها رو رسم میکنیم

@R_Experts
همانطور که میبینید با کاهش داده ها وضعیت همبستگی و لگ ها بهتر شد
@R_Experts
برای رفع مشکل میانگین ناثابت از تفاضل گیری استفاده کرده ایم و میتوانیم تفاوت دو نمودار را مشاهده کنیم
@R_Experts
این تفاوت رو با تفاضل گیری در همبستگی بین جملات نیز داریم

@R_Experts