当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R simulate 模拟反应


R语言 simulate 位于 stats 包(package)。

说明

模拟与拟合模型对象相对应的分布的一个或多个响应。

用法

simulate(object, nsim = 1, seed = NULL, ...)

参数

object

代表拟合模型的对象。

nsim

要模拟的响应向量的数量。默认为 1

seed

指定是否以及如何初始化随机数生成器的对象 (‘seeded’)。
对于 "lm" 方法,NULL或将在调用中使用的整数set.seed在模拟响应向量之前。如果设置,该值将保存为"seed"返回值的属性。默认情况下,NULL不会改变随机生成器状态,并返回.Random.seed作为"seed"属性,请参阅“值”。

...

附加可选参数。

细节

这是一个通用函数。有关如何使用此函数的详细信息,请参阅各个建模函数。

stats 有一个用于 "lm" 对象的方法,该方法用于 lmglm 拟合。 MASS 包中的 glm.nb 有一种拟合方法,因此 "lm" 方法不涵盖负二项式族的情况。

lmglm(family = "gaussian") 拟合的线性模型的方法假设已提供的任何权重与误差方差成反比。对于其他 GLM,使用 family 对象的(可选)simulate 组件 - ‘quasi’ 模型没有适当的模拟方法,因为它们最多只指定两个时刻。

对于二项式和泊松 GLM,色散固定为 1。整数先验权重 可以解释为观察值 观察值的平均值,这对于指定为比例的二项式来说是自然的,但对于泊松分布来说就不那么自然了,因为泊松分布会忽略先验权重并发出警告。

对于伽马 GLM,形状参数通过最大似然估计(使用包 MASS 中的函数 gamma.shape )。权重的解释是基本形状参数的乘数,因为色散与形状成反比。

对于逆高斯 GLM,假设模型为 (请参阅 https://en.wikipedia.org/wiki/Inverse_Gaussian_distribution ),其中 通过拟合的色散估计值的倒数来估计。方差为 ,因此与先前的权重成反比。模拟是通过必须安装的 SuppDists 包中的函数 rinvGauss 完成的。

通常,模拟响应的长度为 nsim 的列表。在适当的情况下,结果可以是 DataFrame (这是一种特殊类型的列表)。

对于 "lm" 方法,结果是具有属性 "seed" 的数据帧。如果参数seedNULL,则该属性为仿真开始前.Random.seed的值;否则,它是带有 "kind" 属性且值为 as.list(RNGkind()) 的参数值。

例子

x <- 1:5
mod1 <- lm(c(1:3, 7, 6) ~ x)
S1 <- simulate(mod1, nsim = 4)
## repeat the simulation:
.Random.seed <- attr(S1, "seed")
identical(S1, simulate(mod1, nsim = 4))

S2 <- simulate(mod1, nsim = 200, seed = 101)
rowMeans(S2) # should be about the same as
fitted(mod1)

## repeat identically:
(sseed <- attr(S2, "seed")) # seed; RNGkind as attribute
stopifnot(identical(S2, simulate(mod1, nsim = 200, seed = sseed)))

## To be sure about the proper RNGkind, e.g., after
RNGversion("2.7.0")
## first set the RNG kind, then simulate
do.call(RNGkind, attr(sseed, "kind"))
identical(S2, simulate(mod1, nsim = 200, seed = sseed))

## Binomial GLM examples
yb1 <- matrix(c(4, 4, 5, 7, 8, 6, 6, 5, 3, 2), ncol = 2)
modb1 <- glm(yb1 ~ x, family = binomial)
S3 <- simulate(modb1, nsim = 4)
# each column of S3 is a two-column matrix.

x2 <- sort(runif(100))
yb2 <- rbinom(100, prob = plogis(2*(x2-1)), size = 1)
yb2 <- factor(1 + yb2, labels = c("failure", "success"))
modb2 <- glm(yb2 ~ x2, family = binomial)
S4 <- simulate(modb2, nsim = 4)
# each column of S4 is a factor

也可以看看

RNG关于随机数生成R,fitted.valuesresiduals相关方法;glm,lm用于模型拟合。

在‘simulate.R' 包源中的测试文件stats.

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Simulate Responses。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。