用来自R中的gls输出的所有信息提取系数

时间:2011-06-25 13:23:11

标签: r modeling

我需要从 R 中的gls输出中获取系数以及它们的SE,t值和p值。

library(nlme)
fm1 <- gls(follicles ~ sin(2*pi*Time) + cos(2*pi*Time), Ovary,
       correlation = corAR1(form = ~ 1 | Mare))

summary(fm1)
Generalized least squares fit by REML
  Model: follicles ~ sin(2 * pi * Time) + cos(2 * pi * Time) 
  Data: Ovary 
   AIC      BIC    logLik
  1571.455 1590.056 -780.7273

Correlation Structure: AR(1)
 Formula: ~1 | Mare 
 Parameter estimate(s):
  Phi 
0.7532079 

Coefficients:
                   Value Std.Error   t-value p-value
(Intercept)        12.216398 0.6646437 18.380373  0.0000
sin(2 * pi * Time) -2.774712 0.6450478 -4.301561  0.0000
cos(2 * pi * Time) -0.899605 0.6975383 -1.289685  0.1981

 Correlation: 
               (Intr) s(*p*T
sin(2 * pi * Time)  0.000       
cos(2 * pi * Time) -0.294  0.000

Standardized residuals:
        Min          Q1         Med          Q3         Max 
-2.41180365 -0.75405234 -0.02923628  0.63156880  3.16247697 

Residual standard error: 4.616172 
Degrees of freedom: 308 total; 305 residual

如果有人帮我弄明白,我会非常感激。提前谢谢。

2 个答案:

答案 0 :(得分:6)

试试这个:

> cs <- as.data.frame(summary(fm1)$tTable)
> cs
                        Value Std.Error   t-value      p-value
(Intercept)        12.2163982 0.6646437 18.380373 2.618737e-51
sin(2 * pi * Time) -2.7747122 0.6450478 -4.301561 2.286284e-05
cos(2 * pi * Time) -0.8996047 0.6975383 -1.289685 1.981371e-01
> cs$t
[1] 18.380373 -4.301561 -1.289685
> cs$p
[1] 2.618737e-51 2.286284e-05 1.981371e-01

答案 1 :(得分:2)

假设您想要某种表格的上述值,解决方案相对简单。

sumfm1 <- summary(fm1)

sumfm1$tTable

                       Value Std.Error   t-value      p-value
(Intercept)        12.2163982 0.6646437 18.380373 2.618737e-51
sin(2 * pi * Time) -2.7747122 0.6450478 -4.301561 2.286284e-05
cos(2 * pi * Time) -0.8996047 0.6975383 -1.289685 1.981371e-01 

更一般地说,如果你在任何R对象上调用str()函数,你通常可以(通过一些试验和错误)弄清楚如何提取你需要的结果。

编辑:如果你需要它进入一个sweave文件,然后在上面的对象上调用xtable,一切都应该是好的。