Regression in R (vs Eviews)

2.3k views Asked by At

When you do a regression in Eviews, you get a panel of statistics like this:

enter image description here

Is there a way in R in which I can get all/most of these statistics about a regression in R in one list as well?

2

There are 2 answers

2
Spacedman On BEST ANSWER

See summary, which will produce summaries for most classes of regression object.

For example, from help(glm):

> clotting <- data.frame(
+          u = c(5,10,15,20,30,40,60,80,100),
+          lot1 = c(118,58,42,35,27,25,21,19,18),
+          lot2 = c(69,35,26,21,18,16,13,12,12))
>      summary(glm(lot1 ~ log(u), data = clotting, family = Gamma))

Call:
glm(formula = lot1 ~ log(u), family = Gamma, data = clotting)

Deviance Residuals: 
     Min        1Q    Median        3Q       Max  
-0.04008  -0.03756  -0.02637   0.02905   0.08641  

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept) -0.0165544  0.0009275  -17.85 4.28e-07 ***
log(u)       0.0153431  0.0004150   36.98 2.75e-09 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

(Dispersion parameter for Gamma family taken to be 0.002446059)

    Null deviance: 3.51283  on 8  degrees of freedom
Residual deviance: 0.01673  on 7  degrees of freedom
AIC: 37.99

Number of Fisher Scoring iterations: 3

The big win of R over GUI programs is generally that the output from functions is available. So you can do:

> s =  summary(glm(lot1 ~ log(u), data = clotting, family = Gamma))
> s$coefficients[1,]
     Estimate    Std. Error       t value      Pr(>|t|) 
-1.655438e-02  9.275466e-04 -1.784749e+01  4.279149e-07 
> s$cov.scaled
              (Intercept)        log(u)
(Intercept)  8.603427e-07 -3.606457e-07
log(u)      -3.606457e-07  1.721915e-07

To get the t's and p's and all that for parameters, or the scaled covariance matrix. But always read the docs for the summary method to make sure you are getting what you think you are getting. Sometimes things in the returned object may be calculated on transformed scales, and presented on untransformed scales when the object is printed.

Note however that what you seem to have shown as an example is an ARIMA model, and there's no nice summary function for arima objects in R:

> m = arima(lh, order = c(1,0,1))
> summary(m)
          Length Class  Mode     
coef       3     -none- numeric  
sigma2     1     -none- numeric  
var.coef   9     -none- numeric  
mask       3     -none- logical  
loglik     1     -none- numeric  
aic        1     -none- numeric  
arma       7     -none- numeric  
residuals 48     ts     numeric  
call       3     -none- call     
series     1     -none- character
code       1     -none- numeric  
n.cond     1     -none- numeric  
model     10     -none- list     

this is just the default summary for a list object with those elements. Simply printing it gets you a few things:

> m

Call:
arima(x = lh, order = c(1, 0, 1))

Coefficients:
         ar1     ma1  intercept
      0.4522  0.1982     2.4101
s.e.  0.1769  0.1705     0.1358

sigma^2 estimated as 0.1923:  log likelihood = -28.76,  aic = 65.52
0
Martin Dinov On

If m is your lm-generated model, simply do: summary(m) to get all those model statistics and numbers.