运行回归多次面板数据

时间:2016-03-16 06:43:48

标签: r loops panel regression

我想为我的面板数据运行回归。 我有以下格式的面板数据: 第1列有年份第2列有公司名称,第3列有权益变量

Year company name EQUITY
2006 A                          12
2007 A                            13
2008 A                           23
2009 A                            24
2010 A                            13
2011 A                            14
2012 A                            12
2013 A                             14
2014 A                           14
2015 A                             15
2006 B                            221
2007 B                            242
2008 B                            262
2009 B                           250
2010 B                           400
2011 B                          411
2012 B                           420
2013 B                            420
2014 B                           422
2015 B                           450

我有200家公司10年的数据。我想在几年(时间 - 10年)内回归每家公司的股权记录。我只想要斜率系数。 我希望我的输出像这样: 专栏1年第2栏 - 公司名称列3-beta值

Year company name slope(beta) p-value
2006 A                          beta value (assumed) 
2007  A                          "
2008 A                           " 
2009 A
2010 A
2011 A
2012 A                           "
2013 A
2014 A                          "
2015 A                         " 

我的意思是每个公司的斜率系数。

1 个答案:

答案 0 :(得分:1)

看不到你到目前为止所尝试的内容,所以这里是一个让你开始运行的解决方案。你绘制出来的最终输出并没有多大意义,因为每个公司都有一个斜率 - 而不是每个公司每年都有斜率。

这是用于运行回归的基本R版本。 by用于分割数据,然后lm用于估算。

res <- by(indata, indata$company, FUN=function(x) { coef(lm(log(EQUITY) ~ Year+0, data=x))} )

这导致斜率的以下输出,输出可用于绘图或列表

> res

indata$company: A
[1] 0.001344837
------------------------------------------------------- 
indata$company: B
[1] 0.002896053

<强>更新

如果您想为每年的数据集添加斜率,可以添加

indata$slope <- res[indata$company]

给出了

> indata
   Year company EQUITY       slope
1  2006       A     12 0.001344837
2  2007       A     13 0.001344837
3  2008       A     23 0.001344837
4  2009       A     24 0.001344837
5  2010       A     13 0.001344837
6  2011       A     14 0.001344837
7  2012       A     12 0.001344837
8  2013       A     14 0.001344837
9  2014       A     14 0.001344837
10 2015       A     15 0.001344837
11 2006       B    221 0.002896053
12 2007       B    242 0.002896053
13 2008       B    262 0.002896053
14 2009       B    250 0.002896053
15 2010       B    400 0.002896053
16 2011       B    411 0.002896053
17 2012       B    420 0.002896053
18 2013       B    420 0.002896053
19 2014       B    422 0.002896053
20 2015       B    450 0.002896053