前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >R Programming week 4 simulation

R Programming week 4 simulation

作者头像
统计学家
发布2019-04-10 16:54:02
3520
发布2019-04-10 16:54:02
举报

Generating Random Numbers

Functions for probability distributions in R

rnorm: generate random Normal variates with a given mean and standard deviation

dnorm: evaluate the Normal probability density (with a given mean/SD) at a point (or vector ofpoints)

pnorm: evaluate the cumulative distribution function for a Normal distribution

rpois: generate random Poisson variates with a given rate

Probability distribution functions usually have four functions associated with them. The functions are prefixed with a

d for density

r for random number generation

p for cumulative distribution

q for quantile function

Working with the Normal distributions requires using these four functions

dnorm(x, mean = 0, sd = 1, log = FALSE)

pnorm(q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)

qnorm(p, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)

rnorm(n, mean = 0, sd = 1)

> x <- rnorm(10)

> x

[1] 1.38380206 0.48772671 0.53403109 0.66721944

[5] 0.01585029 0.37945986 1.31096736 0.55330472

[9] 1.22090852 0.45236742

> x <- rnorm(10, 20, 2)

> x

[1] 23.38812 20.16846 21.87999 20.73813 19.59020

[6] 18.73439 18.31721 22.51748 20.36966 21.04371

> summary(x)

Min. 1st Qu. Median Mean 3rd Qu. Max.

18.32 19.73 20.55 20.67 21.67 23.39

Setting the random number seed with set.seed ensures reproducibility

> set.seed(1)

> rnorm(5)

[1] -0.6264538 0.1836433 -0.8356286 1.5952808

[5] 0.3295078

> rnorm(5)

[1] -0.8204684 0.4874291 0.7383247 0.5757814

[5] -0.3053884

> set.seed(1)

> rnorm(5)

[1] -0.6264538 0.1836433 -0.8356286 1.5952808

[5] 0.3295078

Always set the random number seed when conducting a simulation!

Suppose we want to simulate from the following linear model

y = β0 + β1x + ε

> set.seed(20)

> x <- rnorm(100)

> e <- rnorm(100, 0, 2)

> y <- 0.5 + 2 * x + e

> summary(y)

Min. 1st Qu. Median

-6.4080 -1.5400 0.6789 0.6893 2.9300 6.5050

> plot(x, y)

Random Sampling

The sample function draws randomly from a specified set of (scalar) objects allowing you to sample from arbitrary distributions.

> set.seed(1)

> sample(1:10, 4)

[1] 3 4 5 7

> sample(1:10, 4)

[1] 3 9 8 5

> sample(letters, 5)

[1] "q" "b" "e" "x" "p"

> sample(1:10) ## permutation

[1] 4 710 6 9 2 8 3 1 5

> sample(1:10)

[1] 2 3 4 1 9 5 10 8 6 7

> sample(1:10, replace = TRUE) ## Sample w/replacement

[1] 2 9 7 8 2 8 5 9 7 8

求扩散 求关注

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-04-23,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习与统计学 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档