當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。