0

每个人。我有一个关于如何使用 pymc 在贝叶斯模型中进行面板数据分析的问题。数据是这样的:

..........................................................
User    Time     x1          x2         x3           Y
1        1        1          1           3           2      
1        2        2          1           4           1
1        3        2          2           2           1
1        4        1          3           1           3
1        5        1          1           2           3
2        1        1          3           1           3  
2        2        1          1           2           2
2        3        2          3           1           0
2        4        1          2           2           3
2        5        1          1           1           2    
3        1        4          3           1           3  
3        2        3          1           3           2
3        3        2          3           2           2
3        4        2          1           2           3
3        5        1          1           1           2
4        1        1          1           3           2      
4        2        2          2           4           3
4        3        2          2           2           1
4        1        1          3           1           3
4        1        4          5           2           3  
.............   
..........................................................

现在,我有 N 个用户使用 T 次样本 (N≫T),以及自变量 (x1,x2,x3) 和因变量 (Y)。

现在,我想在集体层面分析 X 对 Y 的影响。以最简单的线性回归为例,参照《贝叶斯计量经济学导论》(PP.145)一书,一般模型常写为:

$$ y_{it} = x_{it}{\beta}+ w_{it}{b_i}+ {u_{it}}, i = 1,...,n;\;\;t = 1,。 ..,T $$

其中,$i$ 表示用户;$t$ 代表时间;${\beta}$ 在 $i$ 之间没有差异,称为固定效应;${b_i}$ 与 $i$ 不同,称为随机效应。

在贝叶斯看来,${\beta}$ 和 ${b_i}$ 都被视为随机变量。所以,设 ${\beta} $~$ N({\beta}_0,{\beta}_1)$, 和 ${b_i} $~$ N({\lambda_0},{\lambda_1})$

但是,这是理论上的一般思想,但我对如何在 pymc 中建模和拟合它没有任何想法。

感谢任何人给我一些灵感或示例代码。

4

1 回答 1

0

以下博客文章包含使用 PyMC3 拟合线性回归的一个很好的示例。它还包含一个捷径,使用 glm 模块,这对于熟悉 R 语法的人特别有用。

http://twiecki.github.io/blog/2013/09/12/bayesian-glms-1/

对于您的多变量模型,您需要为每个变量设置一个 x_coeff。最简单的方法是在调用 Normal() 时传递“size = 4”。这将生成 4 个随机变量,每个变量对应一个数据,并将其作为数组返回。

于 2015-01-25T16:43:51.303 回答