楼主: laojianga
9958 15

[问答] r语言将回归结果输出到txt时如何控制小数点位数 [推广有奖]

11
蓝色 发表于 2015-9-23 13:41:07
  1. # Econometric Analysis, Fourth Edition by William Greene
  2. # Chapter 14: Models for Panel Data

  3. # 可以到下面两个链接看stata的例子和解释
  4. # http://www.stata.com/support/faqs/statistics/intercept-in-fixed-effects-model/
  5. # http://www.ats.ucla.edu/stat/stata/examples/greene/greene14.htm


  6. rm(list=ls())
  7. library(foreign); library(plm); library(dummies)

  8. # 读取数据:6个企业,每个企业15年的面板数据
  9. greene <- read.dta("http://www.ats.ucla.edu/stat/stata/examples/greene/table14_1.dta")
  10. names(greene)

  11. greene <- within(greene, {
  12.                        id <- i
  13.                        logc <- log(c)
  14.                        logq <- log(q)
  15.                        logf <- log(pf)                       
  16.                        })

  17. # 设定虚拟变量
  18. greene <- dummy.data.frame(greene, names = "i")

  19. # 设定为面板数据
  20. greene <- plm.data(greene, index = c("id", "t"))  
  21. greene <- pdata.frame(greene)   


  22. # 1.固定效应模型  lsdv
  23. # 包含常数项:其它虚拟变量是以省略的i1为参照组
  24. greene.lsdv1 <- lm(logc ~ logq + logf + lf +i2 + i3 + i4 + i5 +i6, data = greene)
  25. summary(greene.lsdv1)

  26. # 不包含常数项:
  27. greene.lsdv2 <- lm(logc ~ 0+ logq + logf + lf + i1 +i2 + i3 + i4 + i5 +i6, data = greene)
  28. summary(greene.lsdv2)


  29. # 2.固定效应模型  within 等价于lsdv方法
  30. greene.fe <- plm(logc ~ logq + logf + lf, data = greene, model = "within")
  31. summary(greene.fe)


  32. # 面板数据模型: yit   = a + xit*b + vi + eit                   (1)
  33. # level的常数项是 yit   = (a + vi) + xit*b + eit   中的  (a + vi)
  34. # level的系数与dmean的系数的差值其实算的是   a   

  35. summary(fixef(greene.fe, type = "level"))     #此结果等同于greene.lsdv2
  36. summary(fixef(greene.fe, type = "dmean"))   


  37. #dmean的系数 =  level的系数  减去 (level系数的平均值)
  38. b.level <- summary(fixef(greene.fe, type = "level"))[,1]   #level的系数
  39. b.dmean <- summary(fixef(greene.fe, type = "dmean"))[,1]   #dmean的系数
  40. b.diff  <- b.level - b.dmean                 #系数的差值等于level系数的平均值        

  41. b.diff
  42. mean(b.level)                 #level系数的平均值  
  43. mean(b.dmean)                 #dmean系数的平均值=0 由于精度问题,数值很小了

  44. # ------------------------------------------------------------------------------
复制代码

  1. > # Econometric Analysis, Fourth Edition by William Greene
  2. > # Chapter 14: Models for Panel Data
  3. >
  4. > # 可以到下面两个链接看stata的例子和解释
  5. > # http://www.stata.com/support/faqs/statistics/intercept-in-fixed-effects-model/
  6. > # http://www.ats.ucla.edu/stat/stata/examples/greene/greene14.htm
  7. >
  8. >
  9. > rm(list=ls())
  10. > library(foreign); library(plm); library(dummies)
  11. 载入需要的程辑包:Formula
  12. dummies-1.5.6 provided by Decision Patterns

  13. Warning message:
  14. 程辑包‘dummies’是用R版本3.2.2 来建造的
  15. >
  16. > # 读取数据:6个企业,每个企业15年的面板数据
  17. > greene <- read.dta("http://www.ats.ucla.edu/stat/stata/examples/greene/table14_1.dta")
  18. > names(greene)
  19. [1] "i"  "t"  "c"  "q"  "pf" "lf"
  20. >
  21. > greene <- within(greene, {
  22. +                        id <- i
  23. +                        logc <- log(c)
  24. +                        logq <- log(q)
  25. +                        logf <- log(pf)                       
  26. +                        })
  27. >
  28. > # 设定虚拟变量
  29. > greene <- dummy.data.frame(greene, names = "i")
  30. >
  31. > # 设定为面板数据
  32. > greene <- plm.data(greene, index = c("id", "t"))  
  33. > greene <- pdata.frame(greene)   
  34. >
  35. >
  36. > # 1.固定效应模型  lsdv
  37. > # 包含常数项:其它虚拟变量是以省略的i1为参照组
  38. > greene.lsdv1 <- lm(logc ~ logq + logf + lf +i2 + i3 + i4 + i5 +i6, data = greene)
  39. > summary(greene.lsdv1)

  40. Call:
  41. lm(formula = logc ~ logq + logf + lf + i2 + i3 + i4 + i5 + i6,
  42.     data = greene)

  43. Residuals:
  44.       Min        1Q    Median        3Q       Max
  45. -0.156041 -0.035217 -0.009302  0.034926  0.165866

  46. Coefficients:
  47.             Estimate Std. Error t value Pr(>|t|)   
  48. (Intercept)  9.70594    0.19312  50.258  < 2e-16 ***
  49. logq         0.91928    0.02989  30.756  < 2e-16 ***
  50. logf         0.41749    0.01520  27.468  < 2e-16 ***
  51. lf          -1.07040    0.20169  -5.307  9.5e-07 ***
  52. i2          -0.04124    0.02518  -1.637  0.10543   
  53. i3          -0.20892    0.04280  -4.881  5.2e-06 ***
  54. i4           0.18456    0.06075   3.038  0.00321 **
  55. i5           0.02405    0.07990   0.301  0.76415   
  56. i6           0.08706    0.08420   1.034  0.30421   
  57. ---
  58. Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

  59. Residual standard error: 0.06011 on 81 degrees of freedom
  60. Multiple R-squared:  0.9974,        Adjusted R-squared:  0.9972
  61. F-statistic:  3936 on 8 and 81 DF,  p-value: < 2.2e-16

  62. >
  63. > # 不包含常数项:
  64. > greene.lsdv2 <- lm(logc ~ 0+ logq + logf + lf + i1 +i2 + i3 + i4 + i5 +i6, data = greene)
  65. > summary(greene.lsdv2)

  66. Call:
  67. lm(formula = logc ~ 0 + logq + logf + lf + i1 + i2 + i3 + i4 +
  68.     i5 + i6, data = greene)

  69. Residuals:
  70.       Min        1Q    Median        3Q       Max
  71. -0.156041 -0.035217 -0.009302  0.034926  0.165866

  72. Coefficients:
  73.      Estimate Std. Error t value Pr(>|t|)   
  74. logq  0.91928    0.02989  30.756  < 2e-16 ***
  75. logf  0.41749    0.01520  27.468  < 2e-16 ***
  76. lf   -1.07040    0.20169  -5.307  9.5e-07 ***
  77. i1    9.70594    0.19312  50.258  < 2e-16 ***
  78. i2    9.66471    0.19898  48.571  < 2e-16 ***
  79. i3    9.49702    0.22496  42.217  < 2e-16 ***
  80. i4    9.89050    0.24176  40.910  < 2e-16 ***
  81. i5    9.73000    0.26094  37.288  < 2e-16 ***
  82. i6    9.79300    0.26366  37.142  < 2e-16 ***
  83. ---
  84. Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

  85. Residual standard error: 0.06011 on 81 degrees of freedom
  86. Multiple R-squared:      1,        Adjusted R-squared:      1
  87. F-statistic: 4.98e+05 on 9 and 81 DF,  p-value: < 2.2e-16

  88. >
  89. >
  90. > # 2.固定效应模型  within 等价于lsdv方法
  91. > greene.fe <- plm(logc ~ logq + logf + lf, data = greene, model = "within")
  92. > summary(greene.fe)
  93. Oneway (individual) effect Within Model

  94. Call:
  95. plm(formula = logc ~ logq + logf + lf, data = greene, model = "within")

  96. Balanced Panel: n=6, T=15, N=90

  97. Residuals :
  98.    Min. 1st Qu.  Median 3rd Qu.    Max.
  99. -0.1560 -0.0352 -0.0093  0.0349  0.1660

  100. Coefficients :
  101.       Estimate Std. Error t-value Pr(>|t|)   
  102. logq  0.919285   0.029890 30.7555  < 2e-16 ***
  103. logf  0.417492   0.015199 27.4682  < 2e-16 ***
  104. lf   -1.070396   0.201690 -5.3071  9.5e-07 ***
  105. ---
  106. Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

  107. Total Sum of Squares:    39.361
  108. Residual Sum of Squares: 0.29262
  109. R-Squared      :  0.99257
  110.       Adj. R-Squared :  0.89331
  111. F-statistic: 3604.81 on 3 and 81 DF, p-value: < 2.22e-16
  112. >
  113. >
  114. > # 面板数据模型: yit   = a + xit*b + vi + eit                   (1)
  115. > # level的常数项是 yit   = (a + vi) + xit*b + eit   中的  (a + vi)
  116. > # level的系数与dmean的系数的差值其实算的是   a   
  117. >
  118. > summary(fixef(greene.fe, type = "level"))     #此结果等同于greene.lsdv2
  119.   Estimate Std. Error t-value  Pr(>|t|)   
  120. 1  9.70594    0.19312  50.258 < 2.2e-16 ***
  121. 2  9.66471    0.19898  48.571 < 2.2e-16 ***
  122. 3  9.49702    0.22496  42.217 < 2.2e-16 ***
  123. 4  9.89050    0.24176  40.910 < 2.2e-16 ***
  124. 5  9.73000    0.26094  37.288 < 2.2e-16 ***
  125. 6  9.79300    0.26366  37.142 < 2.2e-16 ***
  126. ---
  127. Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
  128. > summary(fixef(greene.fe, type = "dmean"))   
  129.    Estimate Std. Error t-value Pr(>|t|)
  130. 1 -0.007586   0.193124 -0.0393   0.9687
  131. 2 -0.048822   0.198982 -0.2454   0.8062
  132. 3 -0.216507   0.224958 -0.9624   0.3358
  133. 4  0.176970   0.241763  0.7320   0.4642
  134. 5  0.016469   0.260942  0.0631   0.9497
  135. 6  0.079476   0.263662  0.3014   0.7631
  136. >
  137. >
  138. > #dmean的系数 =  level的系数  减去 (level系数的平均值)
  139. > b.level <- summary(fixef(greene.fe, type = "level"))[,1]   #level的系数
  140. > b.dmean <- summary(fixef(greene.fe, type = "dmean"))[,1]   #dmean的系数
  141. > b.diff  <- b.level - b.dmean                 #系数的差值等于level系数的平均值        
  142. >
  143. > b.diff
  144.        1        2        3        4        5        6
  145. 9.713528 9.713528 9.713528 9.713528 9.713528 9.713528
  146. > mean(b.level)                 #level系数的平均值  
  147. [1] 9.713528
  148. > mean(b.dmean)                 #dmean系数的平均值=0 由于精度问题,数值很小了
  149. [1] 2.960595e-16
  150. >
复制代码

已有 1 人评分学术水平 热心指数 收起 理由
laojianga + 1 + 1 精彩帖子

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

12
laojianga 发表于 2015-9-23 23:12:17 来自手机
蓝色 发表于 2015-9-23 13:39
请把你帖子里面  跪求   的词语删除
好的   其实我也是求解心切  还望蓝老师理解

13
laojianga 发表于 2015-9-24 09:50:42
蓝色 发表于 2015-9-23 13:41
谢谢蓝色老师的精彩解答!

14
laojianga 发表于 2015-9-24 09:56:00
蓝色 发表于 2015-9-23 13:41
蓝色老师,我还有个疑问,stata可以做面板分位数回归分析吗?我查了一些资料都表示只能做截面分位数回归分析而不能直接进行面板分位数回归分析,直到现在我也不确定这个问题,后来我就只能求助于r语言了。就这个问题蓝色老师能帮忙解答一下吗?不胜感激!

15
蓝色 发表于 2015-9-24 14:02:28
没有用过面板分位数
下面的链接看看吧,
http://www.rand.org/economics/resources.html

16
laojianga 发表于 2015-9-24 18:48:55
蓝色 发表于 2015-9-24 14:02
没有用过面板分位数
下面的链接看看吧,
http://www.rand.org/economics/resources.html
谢谢蓝色老师!
正在努力学习中!

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2025-12-30 06:41