gpt4 book ai didi

r - 函数 "simulate"在概念上是如何工作的?

转载 作者:行者123 更新时间:2023-12-03 19:58:12 24 4
gpt4 key购买 nike

如果我的问题看起来真的很简单或幼稚,我提前道歉,但我试图了解函数 simulate确实,从概念上讲(即,我对它的逻辑感兴趣,与它是否应用于 lm、lme 等无关)

假设我正在对以下数据进行简单的多元回归:

n <- 40

x1 <- rnorm(n, mean=3, sd=1)

x2 <- rnorm(n, mean=4, sd=1.25)

y <- 2*x1 + 3*x2 + rnorm(n, mean=2, sd=1)

mydata <- data.frame(x1, x2, y)

mod <- lm(y ~ x1 + x2, data=mydata)
simulate有什么作用什么时候适用于那种情况?所以如果我这样做:
simulate(mod, nsim=2)

我得到的两个向量是什么?

本质上,它类似于做:
replicate(2, y + rnorm(n=length(y), mean="some value", sd="some other value"))

如果它类似于那个逻辑,那么“一些值(value)”和“一些其他值(value)”是什么?他们会是 mean(mod$residuals)sd(mod$residuals) ?还是实际残差的排列?或者完全是别的什么?

或者它正在做一些完全不同的事情?

如果有人可以解释/确认如何 simulate以简单的非技术术语工作,将不胜感激。

最佳答案

它基本上按照帮助文件中的说明进行操作:“从与拟合模型对象对应的分布中模拟一个或多个响应。”

因此,对于每次模拟,从以协变量为条件的结果变量的条件分布中随机抽取。默认情况下,此条件分布是正态分布 lm .此正态分布的标准偏差对应于 mod 的 MSE 的平方.

下面的代码复制输出(假设您使用相同的种子):

set.seed(1)
head(simulate(mod, nsim=2))

set.seed(1)
for(i in 1:nsim) {
tmp <- predict(mod) + rnorm(length(predict(mod)), 0, summary(mod)$sigma)
res <- if (i==1) tmp else cbind(res, tmp)
}
head(res)

关于r - 函数 "simulate"在概念上是如何工作的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29349602/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com