Instant PDF download, name-and-email checkout. Complete Book Bundle: every Economics, Statistics, Mathematics and Econometrics book
Econometrics guide, Unit 2, step 5 of 20Previous stepNext step

Step 5: Inference in Regression: t-Tests and Confidence Intervals

MatchesHypothesis tests and confidence intervals for a regression slope · Wooldridge ch. 4 · Stock and Watson ch. 5
In 30 seconds
  • Under the classical assumptions (SLR.1–SLR.6, with normal errors), \( t = (\hat\beta_1 – \beta_1)/\text{se}(\hat\beta_1) \) follows a \( t \) distribution with \( n-2 \) degrees of freedom.
  • To test \( H_0: \beta_1 = c \), compute \( t = (\hat\beta_1 – c)/\text{se}(\hat\beta_1) \) and compare it with a critical value, or reject when \( p < \alpha \). The \( t \) printed by software tests only \( c = 0 \).
  • A 95% confidence interval is \( \hat\beta_1 \pm t_{0.025,\,n-2}\,\text{se}(\hat\beta_1) \): exactly the values a two-sided 5% test would not reject.
  • Statistical significance measures precision; economic significance measures size. Report both.
  • For a 2,000-square-foot house the 95% interval for the average price is $389,400 to $404,100, but for one house it is $238,700 to $554,800.
Video lesson coming soonA short animated lesson for this step will appear here.

From estimates to inference

In the companion house data, each extra square foot is associated with a price $140.76 higher. An estate agent says the going rate is $150. Is the gap a real difference, or the kind of difference you would expect from the luck of which 500 houses happened to sell? In the wage data, one more year of school goes with wages about 10.3% higher. Is that consistent with a return of 8%? Step 4 gave the centre and spread of the OLS slope. To turn them into probabilities you need its whole shape, and that is what statistical inference in regression adds.

Key termStatistical inference uses an estimate and its sampling distribution to draw conclusions about the unknown parameter: whether it equals a particular value (a hypothesis test) and which values are plausible (a confidence interval).
Econometrics Made Simple textbook coverChapter 5 of Econometrics Made Simple covers this in full, with Python, R and Stata code for every example.Get the textbook · $15

The normality assumption

SLR.6 (normality) says the error is independent of \( x \) and normally distributed, \( u \sim N(0, \sigma^2) \). It implies SLR.4 and SLR.5 and adds a bell shape; SLR.1–SLR.6 together are the classical linear model (CLM) assumptions. Why might errors be normal? The error collects many small, separate influences, and the central limit theorem (Step 2) says such sums tend towards normality. The argument is weaker for skewed variables such as wages and house prices; the last section shows that in large samples it hardly matters.

Because \( \hat\beta_1 = \beta_1 + \sum w_i u_i \) is a weighted sum of the errors, and a weighted sum of normals is normal, SLR.6 gives \( \hat\beta_1 \sim N\!\left(\beta_1,\ \sigma^2/\text{SST}_x\right) \).

The t statistic

You never know \( \sigma \), so you replace it with \( \hat\sigma \) and the standard deviation with the standard error. For the house regression, \( \hat\sigma = 80.33 \) and \( \text{SST}_x = 199{,}526{,}258 \), so \( \text{se}(\hat\beta_1) = 80.33/14{,}125 = 0.005687 \).

\[ t = \frac{\hat\beta_1 – c}{\text{se}(\hat\beta_1)} \ \sim\ t_{n-2} \quad \text{under } H_0: \beta_1 = c. \]

The \( t \) statistic counts how many standard errors the estimate lies from the hypothesised value. Dividing by an estimated quantity adds uncertainty, which fattens the tails relative to the normal. The degrees of freedom are \( n-2 \) because the residuals must satisfy two equations, one for each estimated parameter. With more than about 120 degrees of freedom the \( t \) and the normal are almost identical.

Two-sided level (one-sided)df 10df 18df 30df 60df 120df 498\( \infty \)
10% (5%)1.8121.7341.6971.6711.6581.6481.645
5% (2.5%)2.2282.1012.0422.0001.9801.9651.960
1% (0.5%)3.1692.8782.7502.6602.6172.5862.576
Exam tipAlways state the degrees of freedom with a critical value: “\( t_{498} \), 5% two-sided critical value 1.965”. With more than 120 df examiners accept 1.96, but with 18 df using 1.96 instead of 2.101 is marked wrong.

Testing whether x matters: H₀: β₁ = 0

The most common question asked of a regression is whether \( x \) has any linear association with \( y \): \( H_0: \beta_1 = 0 \) against \( H_1: \beta_1 \ne 0 \). A test does not try to prove \( H_0 \); it asks whether the data are inconsistent with it. Every test follows five steps.

StepWhat you do
1State \( H_0 \), \( H_1 \) and the significance level \( \alpha \), before looking at the results.
2Compute \( t = (\hat\beta_1 – c)/\text{se}(\hat\beta_1) \).
3Find the critical value from \( t_{n-2} \).
4Reject \( H_0 \) if \( |t| \) exceeds it (or if \( p < \alpha \)).
5Conclude in words, in terms of the economic question.
Worked example

For 500 houses, \( \hat\beta_1 = 0.140765 \) with \( \text{se} = 0.005687 \). Is floor area associated with price at the 5% level?

Step 1\( H_0: \beta_1 = 0 \), \( H_1: \beta_1 \ne 0 \), \( \alpha = 0.05 \).
Step 2\( t = 0.140765/0.005687 = 24.75 \).
Step 3df \( = 498 \); critical value 1.965.
Step 4\( 24.75 > 1.965 \): reject \( H_0 \), and far beyond the 1% value of 2.586 too.
Step 5Floor area is statistically significant; each extra square foot is associated with a price about $140.76 higher.

The \( p \)-value is the probability, computed assuming \( H_0 \) is true, of a \( t \) statistic at least as extreme as the one observed: \( p = 2P(T > |t|) \) for a two-sided test. Here it is so small that software prints 0.000 or <2e-16. It is not the probability that \( H_0 \) is true.

When the result is not significant. Take only the first 20 workers in wages.csv and regress the log wage on education: \( \hat\beta_1 = 0.119 \), \( \text{se} = 0.067 \), \( t = 1.770 \), \( p = 0.094 \). With 18 df the 5% critical value is 2.101, so we do not reject \( H_0: \beta_1 = 0 \) at 5% (we would at 10%). Yet the estimated return, 11.9% a year, is larger than the full-sample 10.3%. The problem is precision: the standard error is more than eight times the full-sample value of 0.0081.

Common mistakeConcluding from an insignificant result that “education has no effect” or that “the data prove \( \beta_1 = 0 \)”. Failing to reject means the data are consistent with zero, and also with many other values, including large positive ones. Write “we cannot reject the null at 5%”, never “we accept the null”.

Testing other values and one-sided alternatives

Theory and policy often supply a value other than zero: is the price $150 a square foot, is the return to school 8%, is an elasticity equal to \(-1\)? The only change is that \( t \) measures the distance from \( c \).

Worked example

An estate agent claims houses sell for $150 per square foot. With price in $000, that is \( \beta_1 = 0.15 \). Test it at 5%.

Step 1\( H_0: \beta_1 = 0.15 \), \( H_1: \beta_1 \ne 0.15 \).
Step 2\( t = (0.140765 – 0.15)/0.005687 = -1.624 \).
Step 3\( |{-1.624}| < 1.965 \): do not reject. Two-sided \( p = 0.105 \).

The estimate is below $150, but only by 1.6 standard errors, a gap sampling variation produces about one time in ten. The data do not contradict the claim.

Is the price $150 a square foot? H₀: β₁ = 0.15
t distribution, 498 df5% rejection regionp-value area beyond ±1.624
−4−3−2−1012340.00.10.20.30.4t statistic under H₀densityobserved t = −1.624reject if |t| > 1.965p = 0.105
Figure 1. The observed t of −1.624 falls short of the 5% critical value of 1.965, so the agent’s claim is not rejected. The p-value is the whole area beyond ±1.624 (gold plus coral): 0.105. Numbers from Econometrics Made Simple, Chapter 5.
Worked example

In the full wage sample, \( \hat\beta_1 = 0.1026 \) with \( \text{se} = 0.0081 \) and \( n = 1{,}000 \). Test \( H_0: \beta_1 = 0.08 \) at 5%.

Step 1\( t = (0.1026 – 0.08)/0.0081 = 2.79 \) (2.791 with unrounded figures).
Step 2With 998 df the critical value is 1.962; \( 2.79 > 1.962 \), so reject. \( p = 0.0054 \), so we reject at 1% too.

Two warnings belong in any write-up. This tests the association; omitted ability probably biases the OLS return upwards (Step 4). And the wage errors are heteroskedastic, which makes the usual standard error unreliable (Step 11).

Common mistakeUsing the \( t \) printed by the software to test \( \beta_1 = c \) with \( c \ne 0 \). The printed \( t \) always tests \( \beta_1 = 0 \). Compute \( (\hat\beta_1 – c)/\text{se} \) yourself or ask the software for the specific test. In Python, model.t_test("educ = 0.08") does it; note that its coef column still shows the estimate itself, 0.1026.

One-sided alternatives. When theory says which direction to expect, put all of \( \alpha \) in one tail.

AlternativeReject \( H_0: \beta_1 = c \) if\( p \)-value
\( \beta_1 \ne c \)\( |t| > t_{\alpha/2,\,n-2} \)\( 2P(T > |t|) \)
\( \beta_1 > c \)\( t > t_{\alpha,\,n-2} \)\( P(T > t) \)
\( \beta_1 < c \)\( t < -t_{\alpha,\,n-2} \)\( P(T < t) \)

For the 20 workers, human-capital theory predicts a positive return, so test against \( H_1: \beta_1 > 0 \). The one-sided 5% critical value with 18 df is 1.734, and \( t = 1.770 > 1.734 \): now we reject, with one-sided \( p = 0.047 \). The same data are “significant” or not depending on the alternative, which is why you must choose it before seeing the estimate. A buyer who suspects the agent is overstating prices would test \( H_1: \beta_1 < 0.15 \): \( t = -1.624 \) against \(-1.648\), just failing to reject (\( p = 0.053 \)).

Exam tipIf the estimate has the opposite sign to a one-sided alternative, you can never reject: say so in one line. And never switch from two-sided to one-sided after seeing a result that is “nearly” significant; that doubles the real chance of a Type I error.
Econometrics Made Simple Practice Questions coverPractise until it sticks: Econometrics Made Simple Practice Questions has over 1,150 questions, each with a worked answer.Get the practice book · $9

Statistical and economic significance

“Significant” in statistics means only that an estimate is precise enough to be told apart from zero (or from \( c \)). It says nothing about whether the effect is big enough to matter. Since \( \text{se}(\hat\beta_1) \approx \hat\sigma/(s_x\sqrt{n}) \), multiplying the sample by 100 cuts the standard error tenfold and raises \( t \) tenfold, with the same estimate.

Tiny but potentially significant. Regress the log wage on distance to the nearest college: the slope is \(-0.00129\) (each extra kilometre goes with a wage 0.13% lower), with \( t = -1.36 \) and \( p = 0.17 \). In the actual sample it is not significant, but with ten times as many workers and the same estimate \( t \) would be about \( -1.36 \times \sqrt{10} \approx -4.3 \). Nothing about the size would have changed. Large but insignificant. The 20-worker return of 11.9% is economically large but imprecise. The right conclusion is “a possibly large effect, too imprecisely estimated to be sure”.

So talk about size. A 500-square-foot extension is associated with a price about $70,000 higher (\( 0.1408 \times 500 = 70.4 \) in $000). Four extra years of school are associated with wages about 51% higher (\( 100(e^{4 \times 0.1026}-1) \)). The American Statistical Association’s 2016 statement on \( p \)-values makes the same point: a \( p \)-value does not measure the size of an effect or the importance of a result.

Confidence intervals for β₁

A test asks about one value. A confidence interval reports all the values the data do not reject. Rearranging \( P(-t_{0.025} < (\hat\beta_1 – \beta_1)/\text{se} < t_{0.025}) = 0.95 \) gives:

\[ \hat\beta_1 \pm t_{\alpha/2,\,n-2} \cdot \text{se}(\hat\beta_1). \]
Worked example

Compute 95% confidence intervals for the price per square foot, the return to schooling and the 20-worker return.

Step 1Houses: \( 0.140765 \pm 1.965 \times 0.005687 = 0.140765 \pm 0.011174 = [0.1296,\ 0.1519] \): $129.59 to $151.94 per square foot. $150 is inside (not rejected); $160 is outside (rejected).
Step 2Wages: \( 0.1026 \pm 1.962 \times 0.0081 \), or \( [0.0867,\ 0.1185] \) with unrounded inputs: a return of about 8.7% to 11.8%. 0.08 is outside, matching the rejection.
Step 3Twenty workers: \( 0.1191 \pm 2.101 \times 0.0673 = [-0.022,\ 0.260] \). It contains zero, but also returns of 20% and more.

What “95% confidence” means: the parameter is fixed and the interval is random. If you repeated the sampling many times and built an interval each time, about 95% of those intervals would contain \( \beta_1 \). For your one interval, \( \beta_1 \) is either inside or not.

Common mistake“There is a 95% probability that \( \beta_1 \) lies between 0.1296 and 0.1519”, or “95% of houses sell for $129.59 to $151.94 per square foot”. The first gives a fixed number a probability; the second confuses the population slope with individual houses. Say: “we are 95% confident that the interval contains the true price per square foot”.

Predicting: the mean response and a single outcome

At floor area \( x_0 \), the fitted value \( \hat y_0 = \hat\beta_0 + \hat\beta_1 x_0 \) answers two different questions. What is the average price of all houses of that size? And what will this particular house sell for? The point estimate is the same; the uncertainty is not, because a single house also has its own error \( u_0 \), which no amount of data can predict.

\[ \text{Mean response: } \hat y_0 \pm t_{\alpha/2,\,n-2}\,\hat\sigma\sqrt{\frac1n + \frac{(x_0 – \bar x)^2}{\text{SST}_x}} \] \[ \text{One outcome: } \hat y_0 \pm t_{\alpha/2,\,n-2}\,\hat\sigma\sqrt{1 + \frac1n + \frac{(x_0 – \bar x)^2}{\text{SST}_x}} \]
Worked example

With \( \hat\beta_0 = 115.2163 \), \( \hat\beta_1 = 0.140765 \), \( \hat\sigma = 80.333 \), \( n = 500 \), \( \bar x = 1{,}803.706 \) and \( \text{SST}_x = 199{,}526{,}258 \), find 95% intervals for the mean price of 2,000-square-foot houses and for one such house.

Step 1\( \hat y_0 = 115.2163 + 0.140765 \times 2{,}000 = 396.75 \).
Step 2\( (x_0 – \bar x)^2/\text{SST}_x = 196.294^2/199{,}526{,}258 = 0.000193 \).
Step 3Mean: \( \text{se} = 80.333\sqrt{0.002 + 0.000193} = 3.762 \); interval \( 396.75 \pm 1.965 \times 3.762 = [389.4,\ 404.1] \).
Step 4One house: \( \text{se} = 80.333\sqrt{1.002193} = 80.421 \); interval \( 396.75 \pm 158.0 = [238.7,\ 554.8] \).

The average is pinned down to about ±$7,400; one house could sell for anything from about $239,000 to $555,000.

Two kinds of interval around the house-price line price in $000
95% confidence band for the mean price95% prediction band for one houseHouse sale
1,0002,0003,0004,0000200400600800floor area (sq ft)price ($000)2,000 sq ft: one house 238.7 to 554.8
Figure 2. The coral band for the average price is narrow (at 2,000 sq ft it runs from 389.4 to 404.1) and is tightest at the mean floor area of 1,804 sq ft. The gold band for a single sale is more than twenty times as wide; 474 of the 500 sales (94.8%) fall inside it. Data: houses.csv, Econometrics Made Simple, Chapter 5.

The confidence band is a narrow “bow tie”, tightest at \( \bar x \) and flaring out as \( x_0 \) moves away, because a small slope error matters more far from the centre. The prediction band is wide and nearly parallel, dominated by the constant \( \hat\sigma^2 \) term, which does not shrink as \( n \) grows. In Python, get_prediction().summary_frame() returns both (mean_ci_* and obs_ci_*); in R, predict() takes interval = "confidence" or "prediction".

Reading and reporting regression output

Python (statsmodels)R (lm)Meaning, house regression
coefEstimate\( \hat\beta_0 = 115.22 \), \( \hat\beta_1 = 0.1408 \)
std errStd. Error\( \text{se}(\hat\beta_1) = 0.005687 \) (Python prints 0.006)
tt valuecoef / std err: tests \( \beta_j = 0 \) only; 24.751
P>|t|Pr(>|t|)two-sided \( p \) for \( \beta_j = 0 \); 0.000 means below 0.0005
[0.025 0.975]confint()95% interval: 0.130 to 0.152
—Residual standard error\( \hat\sigma = 80.33 \) on 498 df
R-squaredMultiple R-squared0.552
F-statisticF-statisticwith one regressor \( F = t^2 = 24.751^2 = 612.6 \) (Step 7)

In a project, report estimates with standard errors in parentheses beneath them:

\[ \widehat{\text{price}} = \underset{(10.87)}{115.22} + \underset{(0.0057)}{0.1408}\,\text{sqft}, \qquad n = 500, \quad R^2 = 0.552. \]

Our guide to reading regression output goes through every number in a full table.

Exam tipAlways say what the brackets contain. Some authors put \( t \) statistics in parentheses, and \( (0.0081) \) as a standard error means very precise while as a \( t \) statistic it means worthless. State the star convention too: economics journals usually use 10%, 5% and 1%; R’s default codes use 5%, 1% and 0.1%.

Without normality: large samples

House prices and wages are skewed, so their errors are probably not normal. Then \( t \) does not exactly follow \( t_{n-2} \). But by the central limit theorem, \( \hat\beta_1 – \beta_1 = \sum w_i u_i \) is approximately normal in large samples, and \( \hat\sigma \) settles at \( \sigma \). So under SLR.1–SLR.5 alone, \( t \) is approximately \( N(0,1) \), and the usual tests and intervals are approximately right. Econometrics Made Simple checks this by simulating 10,000 samples in which \( H_0 \) is true. With normal errors a 5% test rejects close to 5% of the time even at \( n = 5 \). With very skewed errors it rejects 6.2% of the time at \( n = 5 \) and close to 5% by \( n = 30 \) to 100; one-sided tests are more sensitive (5.8% even at \( n = 500 \)). Prediction intervals are the exception: they depend on the shape of the single error \( u_0 \), and no theorem rescues them.

Econometrics Made Simple Complete Bundle coverThe textbook and the practice book together: the Econometrics Made Simple bundle for $19 (was $24).Both books · $19

Practise: 6 questions

Try each one on paper first, then check the worked answer.

EasyQ1. A regression with \( n = 42 \) gives \( \hat\beta_1 = 0.84 \) and \( \text{se}(\hat\beta_1) = 0.30 \). Test \( H_0: \beta_1 = 0 \) against a two-sided alternative at 5%. Show worked answer
\( t = 0.84/0.30 = 2.80 \).
df \( = 40 \); 5% critical value 2.021.
\( 2.80 > 2.021 \): reject \( H_0 \) (\( p = 0.008 \)). \( x \) is significantly associated with \( y \).
EasyQ2. With 60 degrees of freedom, \( \hat\beta_1 = 2.5 \) and \( \text{se} = 0.8 \). Build a 95% confidence interval and say whether \( \beta_1 = 1 \) is rejected at 5%. Show worked answer
Critical value \( t_{0.025,60} = 2.000 \).
\( 2.5 \pm 2.000 \times 0.8 = [0.90,\ 4.10] \).
1 lies inside, so \( \beta_1 = 1 \) is not rejected at 5%.
MediumQ3. A log-log demand regression on 200 observations gives a price elasticity of \( -0.82 \) with standard error 0.07. Test whether demand is unit elastic (\( \beta_1 = -1 \)) at 5%. Show worked answer
\( t = (-0.82 – (-1))/0.07 = 0.18/0.07 = 2.571 \).
df \( = 198 \); critical value 1.972.
\( 2.571 > 1.972 \): reject unit elasticity (\( p = 0.011 \)). Demand is inelastic: less responsive to price than unit elastic.
MediumQ4. With 25 degrees of freedom, \( t = 1.75 \) for \( H_0: \beta_1 = 0 \). Do you reject at 5% against (a) \( H_1: \beta_1 \ne 0 \); (b) \( H_1: \beta_1 > 0 \)? Show worked answer
(a) Two-sided critical value 2.060; \( 1.75 < 2.060 \): do not reject (\( p = 0.092 \)).
(b) One-sided critical value 1.708; \( 1.75 > 1.708 \): reject (\( p = 0.046 \)).
The alternative must be chosen before seeing the data.
MediumQ5. Using the house regression (\( \hat\beta_0 = 115.2163 \), \( \hat\beta_1 = 0.140765 \), \( \hat\sigma = 80.333 \), \( n = 500 \), \( \bar x = 1{,}803.706 \), \( \text{SST}_x = 199{,}526{,}258 \), critical value 1.965), find 95% intervals for the mean price of 3,000-square-foot houses and for one such house. Show worked answer
\( \hat y_0 = 115.2163 + 0.140765 \times 3{,}000 = 537.51 \).
\( (3{,}000 – 1{,}803.706)^2/\text{SST}_x = 1{,}196.294^2/199{,}526{,}258 = 0.007173 \).
Mean: \( \text{se} = 80.333\sqrt{0.002 + 0.007173} = 7.694 \); interval \( 537.51 \pm 15.12 = [522.4,\ 552.6] \).
One house: \( \text{se} = 80.333\sqrt{1.009173} = 80.700 \); interval \( 537.51 \pm 158.6 = [379.0,\ 696.1] \).
The mean interval is twice as wide as at 2,000 sq ft, because 3,000 is far from \( \bar x \).
ExamQ6. For the 500 houses, the regression of \( \log(\text{price}) \) on \( \log(\text{sqft}) \) gives a slope of 0.6929 with standard error 0.0280. (a) Interpret the slope. [1] (b) Test whether the slope is significantly different from zero at 1%. [2] (c) Test whether price is proportional to floor area (\( \beta_1 = 1 \)) at 5%. [3] (d) Build a 95% confidence interval and use it to explain your answer to (c). [2] Show worked answer
(a) An elasticity: a house with 1% more floor area sells for about 0.69% more. [1]
(b) \( t = 0.6929/0.0280 = 24.7 \) [1], far above the 1% critical value of 2.586 (498 df): reject. [1]
(c) \( H_0: \beta_1 = 1 \) vs \( H_1: \beta_1 \ne 1 \). [1] \( t = (0.6929 – 1)/0.0280 = -11.0 \) (\(-10.95\) with unrounded figures). [1] \( |t| > 1.965 \): reject; price rises less than proportionally with size. [1]
(d) \( 0.6929 \pm 1.965 \times 0.0280 = [0.638,\ 0.748] \). [1] 1 lies well outside the interval, so the 5% test rejects it. [1]
Total: 8 marks.

Check yourself

1. The \( t \) value printed next to a coefficient tests

Printed \( t \) = coef / std err, the test of zero. For any other \( c \), compute \( (\hat\beta_j – c)/\text{se} \).

2. A 95% confidence interval for \( \beta_1 \) is [0.42, 0.88]. At 5%, which value is not rejected?

Values inside the interval are exactly those a two-sided 5% test does not reject.

3. Compared with the confidence interval for the mean response, the prediction interval for one new outcome is

It adds the variance of the new error \( u_0 \), the “1” under the square root, which more data cannot remove.

Your score: 0 out of 3

The short version

  • Under SLR.1–SLR.6, \( (\hat\beta_1 – \beta_1)/\text{se}(\hat\beta_1) \sim t_{n-2} \); two degrees of freedom go on estimating \( \beta_0 \) and \( \beta_1 \).
  • Test \( H_0: \beta_1 = c \) with \( t = (\hat\beta_1 – c)/\text{se} \); reject when \( |t| \) exceeds the critical value or \( p < \alpha \). Choose one- or two-sided first.
  • Houses: $140.76 per square foot (\( t = 24.75 \)); the $150 claim is not rejected (\( t = -1.624 \), \( p = 0.105 \)). Wages: an 8% return is rejected (\( t = 2.79 \)); with 20 workers even zero is not rejected at 5%.
  • Statistical significance is about precision; economic significance is about size.
  • 95% interval: \( \hat\beta_1 \pm t_{0.025,\,n-2}\,\text{se} \). The mean-response interval narrows with \( n \); the prediction interval stays wide.
  • In large samples the tests remain approximately valid without normality.
  • Chapter 5 of Econometrics Made Simple has the Python, R and Stata code for every test and interval here, and a full set of exercises with answers.

Studying more than one subject? The Complete Book Bundle includes every Economics, Statistics, Mathematics and Econometrics book.

Want more questions like these, with worked answers?
The practice book has over 1,150 more, graded from easy to exam level.
Next: step 6 of 20Multiple Regression