楼主: kk22boy
13146 38

[问答] 请问R哪个包可以做面板分位数、面板误差修正、面板联立方程呀 [推广有奖]

11
hqs00000 在职认证  发表于 2011-12-17 22:00:22
kk22boy 发表于 2011-12-17 21:57
感觉R的语言灵活性比stata好多了,可是为什么还是有那么多的计量学家选择stata呢
我是stata,呵呵  只是习惯了。。。思维也习惯了。。。
失去的东西太多了!

12
epoh 发表于 2012-1-11 10:24:07
kk22boy 发表于 2011-12-16 15:42
谢谢epoh兄的回复!
systemfit包我已经看过,这个包好像是对面板的sur模型进行回归,并不是对面板联立方 ...
kk22boy老兄
我忘掉了R package "plm"
有个pseries (panel series)
        A class for panel series for which several
        useful computations are available.
底下有些function可用
  between(x, ...)
  Between(x, ...)
  Within(x, ...)
  #data type1  between-groups
  #data type2  between-time-periods
  #data type3  within-groups-and-time-periods
有了这些function,配合package "systemfit"
  eq1= y1 ~ y2 + y3 + x1 + x2 + x3-1;
  eq2= y2 ~ z1 + z2 + z3 + x1 + x2 + x3-1;
  eq3= y3 ~ z1 + z2 + z3 + x1 + x2 + x3-1;
  eq=list(eq1,eq2,eq3)
  inst <- ~ z1+ z2+ z3+ x1+ x2+ x3
  systemfit( eq, "3SLS",inst=inst,data = type1,control = systemfit.control
             (methodResidCov = "noDfCor",method3sls = "GLS"))
  systemfit( eq, "3SLS",inst=inst,data = type2,control = systemfit.control
             (methodResidCov = "noDfCor",method3sls = "GLS"))
  systemfit( eq, "3SLS",inst=inst,data = type3,control = systemfit.control
             (methodResidCov = "noDfCor",method3sls = "GLS"))
就可依据 Analysis of Panel Data_CHENG HSIAO
chap5 Simultaneous-Equations Models
page 126  formula(5.3.24),formula(5.3.25)
结合出 EC3SLS estimator.
  It is a weighted combination of three 3SLS
  (within, between-groups, and between-time-periods)
  estimators of the structural parameters (Baltagi (1981a)).

##########
es3sls.csv是个artificial data
N = 20, T = 10 , NT=N*T;
   ec3sls.rar (7.59 KB) 本附件包括:
  • ec3sls.csv

这个数据在TSP运行的结果是:
                          EC3SLS estimates
                          ================

                         Standard
Parameter  Estimate        Error       t-statistic   P-value
AY2        2.09867       .173249       12.1136       [.000]
AY3        2.81814       .173011       16.2888       [.000]
AX1        1.05647       .273610       3.86122       [.000]
AX2        2.23706       .468995       4.76989       [.000]
AX3        3.19135       .619738       5.14952       [.000]
BZ1        .841134       .065666       12.8093       [.000]
BZ2        1.79433       .083007       21.6165       [.000]
BZ3        2.95608       .088837       33.2752       [.000]
BX1        .833237       .085284       9.77011       [.000]
BX2        1.84213       .085569       21.5281       [.000]
BX3        4.26827       .082978       51.4388       [.000]
CZ1        1.10205       .063534       17.3459       [.000]
CZ2        3.06440       .086328       35.4972       [.000]
CZ3        1.94955       .091493       21.3082       [.000]
CX1        1.08035       .087626       12.3291       [.000]
CX2        4.00091       .087992       45.4693       [.000]
CX3        .928418       .085612       10.8444       [.000]

#########
同样数据在R运行的结果,
几乎与TSP相同.
> coef
       Value Std. Error   t value     Pr(>|t|)
1  2.0986729 0.17324959 12.113581 0.000000e+00
2  2.8181408 0.17301123 16.288774 0.000000e+00
3  1.0564684 0.27361058  3.861212 1.128260e-04
4  2.2370508 0.46899628  4.769869 1.843458e-06
5  3.1913567 0.61973874  5.149519 2.611548e-07
6  0.8411371 0.06566620 12.809286 0.000000e+00
7  1.7943307 0.08300745 21.616503 0.000000e+00
8  2.9560759 0.08883729 33.275170 0.000000e+00
9  0.8332361 0.08528437  9.770092 0.000000e+00
10 1.8421346 0.08556889 21.528087 0.000000e+00
11 4.2682707 0.08297780 51.438708 0.000000e+00
12 1.1020543 0.06353414 17.345859 0.000000e+00
13 3.0644023 0.08632836 35.497053 0.000000e+00
14 1.9495534 0.09149329 21.308157 0.000000e+00
15 1.0803494 0.08762621 12.329067 0.000000e+00
16 4.0009113 0.08799192 45.469075 0.000000e+00
17 0.9284183 0.08561262 10.844410 0.000000e+00

已有 2 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 1 + 1 + 1 精彩帖子
kk22boy + 5 + 5 + 5 谢谢epoh兄,这么久了还放在心上,提前祝ep.

总评分: 学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

13
kk22boy 发表于 2012-1-11 16:34:23
epoh 发表于 2012-1-11 10:24
kk22boy老兄
我忘掉了R package "plm"
有个pseries (panel series)
谢谢epoh兄,这么久了还放在心上,
提前祝epoh兄新年快乐!
如果该贴对您有些许帮助,希望你能回复一下或者评一下热心指数!谢谢!

14
kk22boy 发表于 2012-1-11 17:45:54
另外,希望epoh兄能否把数据处理的R代码发一下,刚才试了一下,也没有得到您的回归结果
有点笨了~
如果该贴对您有些许帮助,希望你能回复一下或者评一下热心指数!谢谢!

15
epoh 发表于 2012-1-11 19:50:07
kk22boy 发表于 2012-1-11 17:45
另外,希望epoh兄能否把数据处理的R代码发一下,刚才试了一下,也没有得到您的回归结果
有点笨了~
也祝kk22boy兄新年快乐!
其实这个帖子蕴含相当丰富的内容,
应该不断的讨论,在R逐渐完成一些程序.
鉴于用R研究panel data的人不多
程序先提供给kk22boy,ywh,zhangtao三位老兄
试跑看看,并可以与EC3SLS.tsp比较
########
library(plm)
library(systemfit)
tsp=read.csv("ec3sls.csv")  #2011.01.10 N=20,T=10
N=20
T=10
n1 = N-1;
n2 = T-1;
n3 = n1*n2;
mat=tsp[,3:11]
dim(mat)   # 200 x 9
demean=matrix(0,dim(mat)[1],dim(mat)[2])  #remove the means from all variables
for(i in 1:dim(mat)[2]){
demean[,i]=mat[,i]- apply(mat,2,mean)}
tsp[,3:11]=demean
ts=pdata.frame(tsp)                      #data.frame for panel data
type1=matrix(0,dim(mat)[1],dim(mat)[2])  #between-groups
type2=matrix(0,dim(mat)[1],dim(mat)[2])  #between-time-periods
type3=matrix(0,dim(mat)[1],dim(mat)[2])  #within-groups-and-time-periods
.....
.....
EC3SLS.tsp,ec3sls_R.txt(need pw)
    ec3sls_R_script.rar (3.25 KB)
已有 5 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 1 + 1 + 1 精彩帖子
whxaitpc + 3 + 3 + 3 epoh老师,这个pw是什么啊
ywh19860616 + 5 + 5 + 5 非常精彩,谢谢您
zhangtao + 5 + 5 + 5 非常感谢epoh老师!向导师致以最崇高的敬意.
kk22boy + 5 + 5 + 5 已经收到,谢谢epoh兄!

总评分: 学术水平 + 19  热心指数 + 19  信用等级 + 19   查看全部评分

16
kk22boy 发表于 2012-1-11 20:03:17
每次上论坛,基本每次都要把您在论坛的回帖看一遍,从您这里学习了太多太多
可惜也不能帮上您什么忙
如果epoh兄有什么需要帮忙的,务必说一声!
再次感谢epoh兄!
如果该贴对您有些许帮助,希望你能回复一下或者评一下热心指数!谢谢!

17
ywh19860616 发表于 2012-1-11 20:06:48
epoh 发表于 2012-1-11 19:50
也祝kk22boy兄新年快乐!
其实这个帖子蕴含相当丰富的内容,
应该不断的讨论,在R逐渐完成一些程序.
谢谢epoh老师了,呵呵
和大家一起讨论,我非常愿意啊

想实现ec3sls目前好像只有epoh老师提供的tsp code
如果是ec2sls,在stata可以实现,命令xtivreg2
一份耕耘,一份收获。

18
kk22boy 发表于 2012-1-11 22:59:32
经过一个晚上的摸索,总算弄的差不多了,虽然理论部分还没看懂,但是操作上,总算搞的差不多了,呵呵,谢谢epoh兄
另外,ywh同学提供了ec3sls程序,都在此表示感谢啦~
已有 1 人评分学术水平 热心指数 信用等级 收起 理由
epoh + 1 + 1 + 1 恭喜你,通了

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

如果该贴对您有些许帮助,希望你能回复一下或者评一下热心指数!谢谢!

19
zhangtao 发表于 2012-1-12 10:16:11
type3=as.data.frame(type3)
> colnames(type3)=c("y1","y2","y3","z1","z2","z3","x1","x2","x3")
epoh老师,您好!
为什么数据还要转化成as.data.frame?
这个colnames是什么函数?

vcovec=solve(wpw1+wpw2+wpw3)
> thetaEC = vcovec%*%(wpy1 + wpy2 + wpy3)
> thetaEC
这个thetaEC是做什么的?
R语言程序基本可以读懂,但是由于对TSP程序不了解,所以TSP程序
没有读懂,但是感觉这个TSP程序做出的结果更全面。
frml 在TSP中这个命令是做什么的?
这个循环是什么意思?
u = 0;
19  set it = 0;
20  do i=1,N;
21    set eii = ei(i);
22    do j=1,T;
23      set etj = et(j);
24      set it = it+1;
25      set u(it) = 4*e1(it) + 3*eii + 2*etj;  ? relative standard
    deviations

这两句regopt(nopvcalc) dw;
40  supres regout @W @COVT;
是什么意思?

非常感谢epoh大师的指导!
提前向epoh大师拜年!
祝epoh导师身体健康,心想事成!


已有 1 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 1  热心指数 + 1  信用等级 + 1   查看全部评分

数学好就是要天天学

20
epoh 发表于 2012-1-12 11:15:37
zhangtao 发表于 2012-1-12 10:16
type3=as.data.frame(type3)
> colnames(type3)=c("y1","y2","y3","z1","z2","z3","x1","x2","x3")
epoh老 ...
也祝zhangtao兄新年快乐!
#####
colnames:
   set the column names of a matrix-like object.
colnames(type3)=c("y1","y2","y3","z1","z2","z3","x1","x2","x3")
就是赋与data type3 个个变量的名字
好让底下程序能找到y1,y2,...得以继续执行
systemfit( eq, "3SLS",inst=inst,data = type3)
#####
covec=solve(wpw1+wpw2+wpw3)
thetaEC = vcovec%*%(wpy1 + wpy2 + wpy3)
thetaEC
thetaEC 就是求解的系数
#####
TSP这个循环是什么意思?
u = 0;
19  set it = 0;
20  do i=1,N;
21    set eii = ei(i);
22    do j=1,T;
23      set etj = et(j);
24      set it = it+1;
25      set u(it) = 4*e1(it) + 3*eii + 2*etj;  

如果你没提供data 给TSP
TSP会自行产生artificial data
上面代码是产生artificial data的一部分
TSP产生artificial data,就是我上传的EC3SLS.CSV
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
日新少年 + 1 + 1 + 1 精彩帖子
zhangtao + 5 + 5 + 5 非常感谢epoh老师!

总评分: 学术水平 + 6  热心指数 + 6  信用等级 + 6   查看全部评分

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-22 07:35