gpt4 book ai didi

r - 模拟线性模型 100 次

转载 作者:行者123 更新时间:2023-12-04 12:11:08 25 4
gpt4 key购买 nike

我需要模拟 n=100 次线性模型,但在 R 命令中迷失了方向。

我还在学习统计和 R 的基础知识,我对这个练习有点困惑:

我需要使用 OLS 将基本线性模型复制 100 次并收集 N 个估计值,以便执行一致性和效率测试。我试图通过这种方式解决问题:

a <- 3
B <- 0.5
C <- -0.7

for (i in 1:100){
x1[i] <- rnorm(200, mean=0, sd=1)
x2[i] <- rnorm(200, mean=0, sd=1)
e[i] <- rnorm(200, mean=0, sd=1)
y1[i] <- a+(B*x1[i])+(C*x2[i])+e[i]

y<- lm(y1[i]~x1[i]+x2[i]))
results <-data.frame(coef(y))
}

但 R 一直告诉我有错误。有人可以帮我解决这个问题吗?

最佳答案

类似于:

a <- 3
B <- 0.5
C <- -0.7

results <- matrix(nrow=100,ncol=3)
for (i in 1:100){
x1 <- rnorm(200, mean=0, sd=1)
x2 <- rnorm(200, mean=0, sd=1)
e <- rnorm(200, mean=0, sd=1)
y1 <- a+B*x1+C*x2+e

y<- lm(y1~x1+x2)
results[i,] <- coef(y)
}

这假设您只需要保存每次运行的系数。一个更优雅的解决方案是这样的:

simfun <- function(a=3,B=0.5,C=-0.7,n=200,x1.sd=1,x2.sd=1,e.sd=1) {
x1 <- rnorm(n, mean=0, sd=x1.sd)
x2 <- rnorm(n, mean=0, sd=x2.sd)
e <- rnorm(n, mean=0, sd=e.sd)
y1 <- a+B*x1+C*x2+e
data.frame(x1,x2,y1)
}

statfun <- function(d) {
coef(lm(y1~x1+x2,data=d))
}

library(plyr)
raply(100,statfun(simfun()))

关于r - 模拟线性模型 100 次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14554558/

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