2013-09-26 25 views
9

Tôi muốn một đồng nghiệp sao chép mô hình dữ liệu bảng tuyến tính khác biệt đầu tiên mà tôi ước tính với Stata với gói plm trong R (hoặc một số gói khác).phương sai mô hình bảng tuyến tính khác biệt đầu tiên trong R và Stata

Trong Stata, xtreg không có một lựa chọn khác biệt đầu tiên, vì vậy thay vào đó tôi chạy:

reg D.(y x), nocons cluster(ID) 

Trong R, tôi đang làm:

plm(formula = y ~ -1 + x, data = data, model = "fd", index = c("ID","Period")) 

Các hệ số phù hợp, nhưng các sai số chuẩn trong R lớn hơn trong Stata. Tôi đã xem tài liệu trợ giúp và tài liệu pdf plm, nhưng tôi phải bỏ sót điều gì đó.

Trả lời

10

Lỗi chuẩn khác nhau vì bạn sử dụng tùy chọn cluster trong Stata.

R:

data(Grunfeld) 
library(plm) 
grun.re <- plm(inv~-1+value+capital,data=Grunfeld,model="fd") 
> summary(grun.re) 
Oneway (individual) effect First-Difference Model 

Call: 
plm(formula = inv ~ -1 + value + capital, data = Grunfeld, model = "fd") 

Balanced Panel: n=10, T=20, N=200 

Residuals : 
    Min. 1st Qu. Median Mean 3rd Qu. Max. 
-202.00 -15.20 -1.76 -1.39 7.95 199.00 

Coefficients : 
     Estimate Std. Error t-value Pr(>|t|)  
value 0.0890628 0.0082341 10.816 < 2.2e-16 *** 
capital 0.2786940 0.0471564 5.910 1.58e-08 *** 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Stata

reg D.(inv value capital), nocons 

     Source |  SS  df  MS    Number of obs =  190 
-------------+------------------------------   F( 2, 188) = 70.58 
     Model | 259740.92  2 129870.46   Prob > F  = 0.0000 
    Residual | 345936.615 188 1840.08838   R-squared  = 0.4288 
-------------+------------------------------   Adj R-squared = 0.4228 
     Total | 605677.536 190 3187.7765   Root MSE  = 42.896 

------------------------------------------------------------------------------ 
     D.inv |  Coef. Std. Err.  t P>|t|  [95% Conf. Interval] 
-------------+---------------------------------------------------------------- 
     value | 
     D1. | .0890628 .0082341 10.82 0.000  .0728197 .1053059 
      | 
    capital | 
     D1. | .278694 .0471564  5.91 0.000  .1856703 .3717177 

Nếu bạn muốn cụm theo nhóm, đây là giải pháp:

R:

library(lmtest) # for coeftest function 
coeftest(grun.re,vcov=vcovHC(grun.re,type="HC0",cluster="group")) 

t test of coefficients: 

     Estimate Std. Error t value Pr(>|t|)  
value 0.089063 0.013728 6.4878 7.512e-10 *** 
capital 0.278694 0.130954 2.1282 0.03462 * 
--- 
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1 

Stata:

. reg D.(inv value capital), nocons cluster(firm) 

Linear regression          Number of obs =  190 
                 F( 2,  9) = 47.80 
                 Prob > F  = 0.0000 
                 R-squared  = 0.4288 
                 Root MSE  = 42.896 

            (Std. Err. adjusted for 10 clusters in firm) 
------------------------------------------------------------------------------ 
      |    Robust 
     D.inv |  Coef. Std. Err.  t P>|t|  [95% Conf. Interval] 
-------------+---------------------------------------------------------------- 
     value | 
     D1. | .0890628 .0145088  6.14 0.000  .0562416 .1218841 
      | 
    capital | 
     D1. | .278694 .138404  2.01 0.075 -.0343976 .5917857 
------------------------------------------------------------------------------ 

Bạn có thể thấy rằng có sự khác biệt đáng kể. Để biết chi tiết trong R, hãy xem plm manual trang 39 và cũng here cộng here

+0

Cảm ơn. Tôi nên nhận ra rằng plm chỉ chạy OLS trên dữ liệu khác nhau mà không cần điều chỉnh cho cấu trúc bảng điều khiển. Có cách nào để làm cho nó cluster trên ID (hoặc một cái gì đó thích hợp hơn)? –

+0

Tôi đã cập nhật câu trả lời. Nhưng, có sự khác biệt nhỏ. Bạn có thể kiểm tra các tài liệu tham khảo. – Metrics

+0

Vẫn còn trên trang 'plm manual' trang 39? Hay đó là phần về 'Các ước lượng ma trận hiệp ước mạnh mẽ của vcovHC Robust', trên trang 65 (phiên bản 1.4-0)? Cảm ơn – pidosaurus

Các vấn đề liên quan