Learn how to test the significance of slope and intercept in simple linear regression using t-statistics, p-values, and confidence intervals. Explore both theoretical foundations and practical finance applications.
So, you’ve estimated a simple linear regression model. You’ve got an intercept (often called \(\beta_0\)) and a slope (\(\beta_1\)) that you believe describes the relationship between an independent variable \(X\) (maybe the market returns) and a dependent variable \(Y\) (possibly a stock’s returns). The next question is classic in statistics: Are these estimated coefficients actually meaningful, or could they just be the result of random noise?
This section explores how to conduct hypothesis tests on both the slope and intercept of a simple linear regression model. We’ll talk about the famous t-test, confidence intervals, and the interpretation that connects them all back to real-world financial analysis, such as deciding if there’s a significant linear relationship between market movements and an asset’s returns.
We’ll keep it slightly informal. I remember when I first started analyzing stock market data, I got excited whenever I saw a slope that wasn’t zero. But then—whoa—I realized that just because it’s not zero in my tiny sample doesn’t mean it’s “actually” not zero in the population. Hypothesis testing was my wake-up call, teaching me to quantify my uncertainty.
Recall from previous sections like 10.1 (The Least Squares Criterion) and 10.2 (Assumptions of the Simple Linear Regression Model) that if we’ve modeled:
Most commonly, we start with the slope. We can think of a real-world scenario where \(X\) might be a market factor, such as a broad equity index, and \(Y\) is a specific asset’s returns. If \(\beta_1\) is significantly greater than zero, that suggests a positive linear relationship.
• Null Hypothesis (\(H_0\)):
• Alternative Hypothesis (\(H_a\)):
In capital market contexts, you might often see a two-sided test because you’re open to the possibility that \(\beta_1\) could be positive or negative.
We compute the t-value for \(\hat{\beta}_1\) like this:
You compare that computed t-value against a critical t-value from the \(t\)-distribution with \(n-2\) degrees of freedom (because in simple linear regression, we lose 2 degrees of freedom—one for the intercept, one for the slope). Or, equivalently, you can look at the p-value. If the p-value is less than your chosen significance level (like \(\alpha = 0.05\)), you reject \(H_0\). In practice, software will do all the heavy lifting: just read “Pr > |t|” or something similar in the output.
Let’s imagine you have 20 monthly data points for an exchange-traded fund (ETF) that tracks technology stocks. You regress the ETF’s monthly returns (\(Y\)) on the S&P 500 monthly returns (\(X\)). Suppose your software yields:
• \(\hat{\beta}_1 = 1.10\)
• \(\mathrm{SE}(\hat{\beta}_1)=0.20\)
• \(n=20\)
Then,
With 18 degrees of freedom (\(n-2=18\)) and a typical \(\alpha=0.05\), a t-stat of 5.50 is huge. We quickly see the p-value is very small, so we’d reject \(H_0\colon \beta_1=0\). Interpretation? The ETF returns move strongly in line with the market, with an estimated slope of 1.10. That means, for a 1% move in the market, the ETF moves about 1.10% on average.
A lot of times, people aren’t super interested in the intercept. If you’re analyzing a stock’s returns versus the market, the intercept might be interpreted as the asset’s alpha. Testing if \(\beta_0 = 0\) is effectively testing if the alpha is zero. But in other contexts, maybe the regression is about supply and demand, or about cost when \(X=0\). If you want to see if the cost is truly zero at the baseline, you might test that intercept.
It’s basically the same approach as with the slope:
• Null Hypothesis (\(H_0\)):
• Alternative Hypothesis (\(H_a\)):
In finance, if you’re testing for alpha, a significantly positive \(\hat{\beta}_0\) indicates that, when the market factor is zero, your returns are significantly above zero—i.e., you may have a positive alpha. But be cautious; if your slope is large and the data points for \(X\approx 0\) are limited, the intercept test might be less meaningful.
You might prefer constructing a confidence interval (CI) around \(\hat{\beta}_1\) rather than just deciding to reject or not reject \(H_0\). A common \((1-\alpha)\)\(\times 100%\) CI is:
Having an interval for a regression slope is often more informative. In practice, if you’re analyzing a bond fund vs. an aggregate bond index, you might decide that if the slope is between 0.90 and 1.10, you classify your fund as having “normal” sensitivity. If your slope’s CI is significantly higher than 1.10, you might say your bond fund is more sensitive to interest rate changes than the aggregate index.
Below is a simple Mermaid diagram representing a top-level flow of how you might proceed with testing the slope coefficient in a linear regression:
flowchart TB A["Start: <br/>Compute slope estimate <br/>& standard error"] --> B["Compute t-statistic <br/> (slope / SE)"] B --> C["Compare to t-critical (n-2 df) <br/> or get p-value"] C --> D{"Significance?"} D -- "Yes" --> E["Reject H0: <br/>\u03B2\u2081 is not zero"] D -- "No" --> F["Fail to reject H0: <br/>\u03B2\u2081 may be zero"]
• If the p-value is below \(\alpha\) (often 0.05 or 0.01), we say the result is “statistically significant.”
• “Statistically significant” doesn’t always mean “important.” Practitioners should consider economic significance (is the slope big enough to matter in practical portfolio decisions?).
• Overemphasis on the Intercept Test: Testing \(\beta_0 = 0\) might not always be that insightful unless you have a domain reason (e.g., alpha).
• Type II Errors (Insufficient Power): Not finding significance doesn’t automatically prove there’s no relationship. Maybe your sample size is just too small.
• Data Snooping: If you keep testing many different relationships, some might appear significant by chance. Always keep track of how many hypotheses you truly test.
If you’re curious how you might code a t-test for slope in a quick script:
1import numpy as np
2from scipy import stats
3
4beta_hat = 1.10
5SE_beta_hat = 0.20
6df = 18 # degrees of freedom, n-2
7
8t_stat = beta_hat / SE_beta_hat
9p_value = (1 - stats.t.cdf(abs(t_stat), df=df)) * 2 # two-sided
10
11print("t-statistic:", t_stat)
12print("p-value:", p_value)
This snippet uses SciPy to compute a p-value. If the p-value’s below your alpha, you reject the null.
• Chapter 8 (Hypothesis Testing) includes more about significance levels, Type I and II errors, and parametric test procedures like t-tests.
• In multiple regression contexts (see Chapter 14), you’ll simultaneously test many slopes (\(\beta_1,\beta_2,\dots\)). The concept remains similar; each coefficient has a t-value.
• Chapter 3 (Statistical Measures of Asset Returns) is a nice refresher on sample means and variances, building up to regression analysis.
• Prepare to do quick mental or calculator-based t-tests on the exam. You might see a vignette with a partial regression output table asking you to evaluate whether the slope is significant.
• Know exactly how to interpret the p-value and confidence intervals: if the 95% CI for \(\beta_1\) excludes zero, you’d reject the null at the 5% level.
• Watch for trick questions about the intercept: sometimes exam questions revolve around whether alpha is significantly different from zero.
• Time management: in a constructed-response setting, be succinct yet precise. Mention the null, the alternative, the computed statistic, how it compares to the critical value or p-value, and your conclusion.
Important Notice: FinancialAnalystGuide.com provides supplemental CFA study materials, including mock exams, sample exam questions, and other practice resources to aid your exam preparation. These resources are not affiliated with or endorsed by the CFA Institute. CFA® and Chartered Financial Analyst® are registered trademarks owned exclusively by CFA Institute. Our content is independent, and we do not guarantee exam success. CFA Institute does not endorse, promote, or warrant the accuracy or quality of our products.