|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
#Example
install.packages("cubature")
library(cubature)

> testFn0 <- function(x) {
+ prod(cos(x))
+ }
>
> adaptIntegrate(testFn0, rep(0,2), rep(1,2), tol=1e-4)
$integral
[1] 0.7080734

$error
[1] 1.709434e-05

$functionEvaluations
[1] 17

$returnCode
[1] 0



> M_2_SQRTPI <- 2/sqrt(pi)
> testFn1 <- function(x) {
+ scale = 1.0
+ val = 0
+ dim = length(x)
+ val = sum (((1-x) / x)^2)
+ scale = prod(M_2_SQRTPI/x^2)
+ exp(-val) * scale
+ }
>
> adaptIntegrate(testFn1, rep(0, 3), rep(1, 3), tol=1e-4)
$integral
[1] 1.00001

$error
[1] 9.677977e-05

$functionEvaluations
[1] 5115

$returnCode
[1] 0




> testFn2 <- function(x) {
+ ## discontinuous objective: volume of hypersphere
+ radius = as.double(0.50124145262344534123412)
+ ifelse(sum(x*x) < radius*radius, 1, 0)
+ }
>
> adaptIntegrate(testFn2, rep(0, 2), rep(1, 2), tol=1e-4)
$integral
[1] 0.19728

$error
[1] 1.972614e-05

$functionEvaluations
[1] 166141

$returnCode
[1] 0


@R_Experts
#Example_2

> adaptIntegrate(testFn3, rep(0,3), rep(1,3), tol=1e-4)
$integral
[1] 1

$error
[1] 2.220446e-16

$functionEvaluations
[1] 33

$returnCode
[1] 0


> testFn4 <- function(x) {
+ a = 0.1
+ s = sum((x-0.5)^2)
+ (M_2_SQRTPI / (2. * a))^length(x) * exp (-s / (a * a))
+ }
>
> adaptIntegrate(testFn4, rep(0,2), rep(1,2), tol=1e-4)
$integral
[1] 1.000003

$error
[1] 9.843987e-05

$functionEvaluations
[1] 1853

$returnCode
[1] 0



> testFn5 <- function(x) {
+ a = 0.1
+ s1 = sum((x-1/3)^2)
+ s2 = sum((x-2/3)^2)
+ 0.5 * (M_2_SQRTPI / (2. * a))^length(x) * (exp(-s1 / (a * a)) + exp(-s2 / (a * a)))
+ }
>
> adaptIntegrate(testFn5, rep(0,3), rep(1,3), tol=1e-4)
$integral
[1] 0.9999937

$error
[1] 9.980147e-05

$functionEvaluations
[1] 59631

$returnCode
[1] 0



> testFn6 <- function(x) {
+ a = (1+sqrt(10.0))/9.0
+ prod(a/(a+1)*((a+1)/(a+x))^2)
+ }
>
> adaptIntegrate(testFn6, rep(0,4), rep(1,4), tol=1e-4)
$integral
[1] 0.9999984

$error
[1] 9.996851e-05

$functionEvaluations
[1] 18753

$returnCode
[1] 0



> testFn7 <- function(x) {
+ n <- length(x)
+ p <- 1/n
+ (1+p)^n * prod(x^p)
+ }
> adaptIntegrate(testFn7, rep(0,3), rep(1,3), tol=1e-4)
$integral
[1] 1.000012

$error
[1] 9.966567e-05

$functionEvaluations
[1] 7887

$returnCode
[1] 0


@R_Experts
#Example_3

> I.1d <- function(x) {

+   sin(4*x) *

+     x * ((x * ( x * (x*x-4) + 1) - 1))

+ }

> 

> adaptIntegrate(I.1d, -2, 2, tol=1e-7)

$integral

[1] 1.635644


$error

[1] 4.024021e-09


$functionEvaluations

[1] 105


$returnCode

[1] 0



> adaptIntegrate(I.2d, rep(-1, 2), rep(1, 2), maxEval=10000)

$integral

[1] -0.01797993


$error

[1] 7.845607e-07


$functionEvaluations

[1] 10013


$returnCode

[1] 0


@R_Experts
#Example_4

> dmvnorm <- function (x, mean, sigma, log = FALSE) {
+ if (is.vector(x)) {
+ x <- matrix(x, ncol = length(x))
+ }
+ if (missing(mean)) {
+ mean <- rep(0, length = ncol(x))
+ }
+ if (missing(sigma)) {
+ sigma <- diag(ncol(x))
+ }
+ if (NCOL(x) != NCOL(sigma)) {
+ stop("x and sigma have non-conforming size")
+ }
+ if (!isSymmetric(sigma, tol = sqrt(.Machine$double.eps),
+ check.attributes = FALSE)) {
+ stop("sigma must be a symmetric matrix")
+ }
+ if (length(mean) != NROW(sigma)) {
+ stop("mean and sigma have non-conforming size")
+ }
+ distval <- mahalanobis(x, center = mean, cov = sigma)
+ logdet <- sum(log(eigen(sigma, symmetric = TRUE, only.values = TRUE)$values))
+ logretval <- -(ncol(x) * log(2 * pi) + logdet + distval)/2
+ if (log)
+ return(logretval)
+ exp(logretval)
+ }
>
> m <- 3
> sigma <- diag(3)
> sigma[2,1] <- sigma[1, 2] <- 3/5 ; sigma[3,1] <- sigma[1, 3] <- 1/3
> sigma[3,2] <- sigma[2, 3] <- 11/15
> adaptIntegrate(dmvnorm, lower=rep(-0.5, m), upper=c(1,4,2),
+ mean=rep(0, m), sigma=sigma, log=FALSE,
+ maxEval=10000)
$integral
[1] 0.3341125

$error
[1] 4.185435e-06

$functionEvaluations
[1] 10065

$returnCode
[1] 0


@R_Experts
#انتگرال_گیری_مونت_کارلو
این انتگرال گیری بر پایه نمونه های تصادفی هست
همانطور که در الگوریتم بالا ملاحظه میکینید
1-نمونه ی تصادفی n تایی از یونیفرم
(a,b)
را انتخاب میکنیم
2-تابع انتگرال پذیر را بر اساس نمونه مرتب و از انها میانگین میگیریم


3-در رابطه اخر ان را به عنوان یک براورد و جواب انتگرال در نظر میگیریم

و میدانیم تتا حد زمانی براورد نااریب تتا خواهد بود که حجم نمونه انتخابی بالا باشد

@R_Experts
#الگوریتم_انتگرال_گیری_مونت_کارلو
MC.simple.est <- function(g, a, b, n=1e4) {

  xi <- runif(n,a,b)      # step 1

  g.mean <- mean(g(xi))   # step 2

  (b-a)*g.mean            # step 3

}


runif(n,a,b)»n random sampling from uniform(a,b) distribution 


نمونه تصادفی n تایی
از توزیع یونیفرم
(a,b)


@R_Experts
#Example
g <- function(x) exp(-x)

MC.simple.est(g, 2, 4)

[1] 0.1161926


@R_Experts
#Example_2

> MC.simple.est <- function(g, a, b, n=1e4) {
+ xi <- runif(n,a,b) # step 1
+ g.mean <- mean(g(xi)) # step 2
+ (b-a)*g.mean # step 3
+ }
> g <- function(x) 1/log(x)
>
> MC.simple.est(g, 2, 4)
[1] 1.922819
> integrate(g,2,4)
1.922421 with absolute error < 7.2e-14
>
#آموزش_درخواستی_جدوال_توافقی

برای این کار از دو دستور
peg.tab

peg.df


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

ودر دستور دوم تابع
expand.gird()

هر یک از اعضای بردار ها را نظیر به نظیر به صورت جدولی مقابل هم قرار میدهد

#Example_1


> pag.tab <- matrix(c(762, 484, 327, 239, 468, 477), nrow=2)

> dimnames(pag.tab) <-list(Gender=c("Female","Male"),Party=c("Democrat","Independent","Republican"))

> pag.tab <- as.table(pag.tab)

> pag.tab

        Party

Gender   Democrat Independent Republican

  Female      762         327        468

  Male        484         239        477

> # Or

> pag.df <-expand.grid(Gender=c("Female","Male"),Party=c("Democrat","Independent","Republican"))

> pag.df

  Gender       Party

1 Female    Democrat

2   Male    Democrat

3 Female Independent

4   Male Independent

5 Female  Republican

6   Male  Republican

>



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

#Chernoff_face

اسمی که برای شبیه سازی داده مورد نظر شما بر اساس شکل و شمایل ادمک

هست که هر یک از جوارح صورت این ادمک گویای این ارتباط در بین داده های شما میباشند

داده های
data(iris)

مربوط به گونه ی گیاهی هستن
که در اینجا
chernoff face

مربوط به گونه ی
setosa

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

install.packages("aplpack")
library(aplpack)
data = iris
faces(data[1:25, c("Sepal.Length", "Sepal.Width", "Petal.Length", "Petal.Width")],
face.type = 1, scale = TRUE, labels = data$Species, plot.faces = TRUE, nrow.plot = 5,
ncol.plot = 5)



@R_Experts
#Example_Chernoff_Face

در مثال زیر که مربوط به 31


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


Chernoff_face
30 استان در مقابل بعضی از عوامل


از جمله جمعیت،درصد با سوادی ،مساحت،رشد متوسط جمعیت و ... رسم شده است


rm(list=ls())

mydata<-read.csv(file.choose())

mydata

fix(mydata)

install.packages("aplpack")

library(aplpack)

data =mydata

faces(data[1:30, c("Jamiyat", "M.R.S.J", "S.J.K", "M.SH","Masahat")], 

face.type = 1, scale = TRUE, 

labels = data$Species, 

plot.faces = TRUE, nrow.plot =6, 

ncol.plot = 5)


@R_Experts
#Rstudio
شرکتی است که تهیه نرم‌افزار، آموزش و خدماتی را برای محیط محاسباتی برنامه آر تخصیص داده است. برنامه ساخته شده توسط این شرکت، محیطی توسعه یافته و یکپارچه برای نرم افزار آر به حساب می‌آید.
از قابلیت‌های این محیط می‌توان به:

1- ابزارهای سودمند قدرتمند (متمایز کردن، کامل شدن دستورات، دندانه‌های هوشمند...)

2-محیط برنامه‌نویسی ساخته شده برای نرم‌افزار آر (جستجو در فضای کاری، نمایشگر داده‌ها خروجی پی‌دی‌اف و ...)

3- سازگار (قابلیت کار کردن با هر نسخه‌ای از نرم‌افزار آر (نسخه‌های 2.11.1 به بالا)، رایگان و منبع آزاد و...)،

اشاره کرد.
@R_Experts
برای دانلود این نرم‌افزار می‌توانید به لینک زیر مراجعه کنید.
http://www.rstudio.com/ide/download/desktop

#تذکر1: #Rstudio یک ویرایشگر می باشد بدین معنی که نرم افزار #R حتما حتما باید در سیستم شما نصب شده باشد
تا بتوانيد از #Rstudio استفاده نمایید.

#تذکر2 : به دلخواه خودتان می توانيد #فونت ویا #بک_گراند محیط #Rstudio را انتخاب کنید.

@R_Experts