gpt4 book ai didi

r - R 中的循环 - 回归

转载 作者:行者123 更新时间:2023-12-01 12:28:21 28 4
gpt4 key购买 nike

我刚刚开始使用 R 进行统计分析,而且我还在学习。我在 R 中创建循环时遇到问题。我有以下案例,我想知道是否有人可以帮助我。对我来说,这似乎是不可能的,但对你们中的一些人来说,这只是小菜一碟。我有不同年份不同公司的数据集。对于每一家公司,我在同一年都有不同的观察结果,我需要每年对每家公司进行以下回归(我有 1000 多家公司,似乎不可能分别对每家公司进行回归):Ri = α0 + β1Rm + β2Rz + Ɛ

the data I have looks like the following example:
Year Firm Ri Rm Rz
2009 A 30 55 85
2009 A 11 55 85
2009 A 1 55 85
2010 A 7 55 85
2010 A 15 55 85
2011 A 20 55 85
2011 A 3.5 55 85
2011 A 8 55 85
2009 B 24 55 85
2009 B 30 55 85
2009 B 25 55 85
2010 B 5.2 55 85
2010 B 11.8 55 85
2011 B 78 55 85
2011 B 90 55 85
2011 B 57 55 85

我需要获得每家公司每年的 B1、B2 和误差项Ɛ。就像这样:

Year Firm       B1    B2    Ɛ
2009 A 0.30 0.55 0.85
2010 A 0.11 0.55 0.85
2011 A 0.1 0.55 0.85
2009 B 0.7 0.55 0.85
2010 B 0.15 0.55 0.85
2011 B 0.20 0.55 0.85

预先感谢您的帮助

最佳答案

您可以使用循环和子集来执行此操作,但您也可以像这样使用 mapply。 (我制作了一个更大的数据集以便能够正确演示)。

Year <- sort(rep.int(2009:2011, 30))
Firm <- gl(n = 2, k = 15, length = 90, labels = c('A', 'B'))
dta <- data.frame(Year, Firm, Ri = rnorm(90, 5, 2), Rm = rnorm(90, 2, 1), Rz = rnorm(90, -1, 0.5))

filt <- expand.grid(unique(dta$Year), unique(dta$Firm))

op <- mapply(function(x, y) lm(Ri ~ Rm + Rz, data = dta, subset = Year == x & Firm == y),
filt$Var1, filt$Var2, SIMPLIFY = FALSE)

sapply(op,coef)

关于r - R 中的循环 - 回归,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37216459/

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