Reading summary(lm) for inference
◈ 7 cardsStd. Error = s/√SS_xx, t value = Estimate/Std. Error, Pr(>|t|) is the two-sided p (halve it for a one-sided claim in the predicted direction), the stars code it, RSE is s on n − 2 df, R² is the fit — and the F line is the same test as the slope’s t.
The same printout, second reading
Module 4 printed summary(lm(score ~ income)) and told you to read three things as description. Now every column has a hand formula behind it. The Coefficients block:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 544.1767 10.5049 51.80 3.47e-09 ***
income 2.0659 0.1432 14.42 6.96e-06 ***
Read the income row left to right.
- Estimate 2.0659 — , the slope (L4.3).
- Std. Error 0.1432 — (L13.2).
- t value 14.42 — Estimate ÷ Std. Error, the test of on df.
- Pr(>|t|) 6.96e-06 — the two-sided p-value, . The hand table could only say ; R says how far below.
- \\\* — the significance code: three stars for , two for , one for , a dot for . Decoration for the p-value, never a substitute for stating .
The (Intercept) row tests the same way; its . Nobody asked, but R answers.
The lines below
Residual standard error: 9.642 on 6 degrees of freedom — and (L13.1). Multiple R-squared: 0.972 — the fit (L4.5); Adjusted R-squared: 0.9673 penalises for the number of predictors and matters only with several. F-statistic: 208.1 on 1 and 6 DF, p-value: 6.956e-06 — the overall test that all slopes are zero. With one predictor that is the slope test again: , and the p-value is the same . Read the row and leave the F line.
One-sided from a two-sided p
A question says "test whether higher income is associated with a higher score" — . R printed the two-sided p. If the estimate lies in the direction of (here : yes), the one-sided p is half: . If the estimate pointed the wrong way, the one-sided p would be and would stand. Never double it, and never use it as printed for a one-sided claim without saying why it is conservative.
Two more calls the paper prints
> confint(fit)
2.5 % 97.5 %
(Intercept) 518.472046 569.881284
income 1.715456 2.416387
The income row is L13.3’s interval to six decimals — — and confirms it excludes 0.
> predict(fit, data.frame(income = 75), interval = "prediction")
fit lwr upr
1 699.1208 674.0191 724.2226
L13.5’s prediction interval. With interval = "confidence" the same call prints 690.5496 707.692, the mean-response interval; the word after interval = tells you which question was asked, and a printout without it is the point prediction alone.
The reading checklist
From a summary(lm()) printout: the row named for the predictor is the slope; Std. Error is ; t value is the ratio; Pr(>|t|) is two-sided — halve it for a one-sided claim in the estimate’s direction; the RSE line gives and , so is recoverable; R² is the fit; the F line duplicates the slope test. Write the four steps yourself — the printout has done the arithmetic, not the conclusion.