Bootstrap

回归方程的显著性检验——F检验

回归方程的显著性检验——F检验

9.2 回归方程的显著性检验 (edu-edu.com.cn)

概念

记号:

  • y i y_i yi:真实值,观测值
  • y ˉ \bar{y} yˉ:真实值的平均值
  • y ^ \hat{y} y^:估计值,预测值

几个差:

  1. 变差(variation):指实际值与平均值之间的差异。变差的绝对值越大表示实际值越偏离平均值。
  • 变差 = 真实值 − 平均值 变差 = 真实值 - 平均值 变差=真实值平均值
  1. 离差(deviation):指每个数据项与平均值的差异的平方。
  • 离差 = 变 差 2 = ( 真实值 − 平均值 ) 2 离差 = 变差^2 = (真实值 - 平均值)^2 离差=2=(真实值平均值)2
  1. 残差(residual):指实际值与预测值之间的差异。如果通过线性回归等方法预测的结果与实际值越接近,残差就越小。
  • 残差 = 真实值 − 估计值 残差 = 真实值 - 估计值 残差=真实值估计值

几个平方和:

  • 总平方和SST: SST = ∑ i = 1 n ( y i − y ˉ ) 2 \textbf{SST}=\sum_{i=1}^{n}(y_i-\bar{y})^2 SST=i=1n(yiyˉ)2
  • 回归平方和SSR: SSR = ∑ i = 1 n ( y ^ − y ˉ ) 2 \textbf{SSR}=\sum_{i=1}^{n}(\hat{y}-\bar{y})^2 SSR=i=1n(y^yˉ)2
  • 残差平方和SSE: SSE = ∑ i = 1 n ( y i − y ^ ) 2 \textbf{SSE}=\sum_{i=1}^{n}(y_i-\hat{y})^2 SSE=i=1n(yiy^)2

容易发现: SST = SSR + SSE \textbf{SST}=\textbf{SSR}+\textbf{SSE} SST=SSR+SSE

F检验

F = SSR SSE / ( n − 2 ) ∼ F ( 1 , n − 2 ) \textbf{F}=\frac{\textbf{SSR}}{\textbf{SSE}/(n-2)} \sim F(1,n-2) F=SSE/(n2)SSRF(1,n2)

其中 n n n 是样本数量。

在这里插入图片描述

在这里插入图片描述

计算过程

例题1

设有以下数据:

XY
12
23
35
47

首先需要计算出平均值:

x ˉ = 1 + 2 + 3 + 4 4 = 2.5 \bar{x} = \frac{1+2+3+4}{4} = 2.5 xˉ=41+2+3+4=2.5

y ˉ = 2 + 3 + 5 + 7 4 = 4.25 \bar{y} = \frac{2+3+5+7}{4} = 4.25 yˉ=42+3+5+7=4.25

接下来,计算回归方程的斜率:

b = ∑ i = 1 n ( x i − x ˉ ) ( y i − y ˉ ) ∑ i = 1 n ( x i − x ˉ ) 2 = ( 1 − 2.5 ) ∗ ( 2 − 4.25 ) + ( 2 − 2.5 ) ∗ ( 3 − 4.25 ) + ( 3 − 2.5 ) ∗ ( 5 − 4.25 ) + ( 4 − 2.5 ) ∗ ( 7 − 4.25 ) ( 1 − 2.5 ) 2 + ( 2 − 2.5 ) 2 + ( 3 − 2.5 ) 2 + ( 4 − 2.5 ) 2 = 2.25 b = \frac{\sum_{i=1}^n(x_i-\bar{x})(y_i-\bar{y})}{\sum_{i=1}^n(x_i-\bar{x})^2} = \frac{(1-2.5)*(2-4.25)+(2-2.5)*(3-4.25)+(3-2.5)*(5-4.25)+(4-2.5)*(7-4.25)}{(1-2.5)^2+(2-2.5)^2+(3-2.5)^2+(4-2.5)^2} = 2.25 b=i=1n(xixˉ)2i=1n(xixˉ)(yiyˉ)=(12.5)2+(22.5)2+(32.5)2+(42.5)2(12.5)(24.25)+(22.5)(34.25)+(32.5)(54.25)+(42.5)(74.25)=2.25

回归方程的截距:
c = y ˉ − b x ˉ = 4.25 − 2.25 ∗ 2.5 = 3.5 c = \bar{y}-b\bar{x} = 4.25-2.25*2.5 = 3.5 c=yˉbxˉ=4.252.252.5=3.5

因此回归方程为:

y = 2.25 x − 3.5 y = 2.25x - 3.5 y=2.25x3.5

计算残差:

e 1 = 2 − ( 2.25 ∗ 1 − 3.5 ) = − 0.5 e_1 = 2 - (2.25*1 - 3.5) = -0.5 e1=2(2.2513.5)=0.5

e 2 = 3 − ( 2.25 ∗ 2 − 3.5 ) = 0.25 e_2 = 3 - (2.25*2 - 3.5) = 0.25 e2=3(2.2523.5)=0.25

e 3 = 5 − ( 2.25 ∗ 3 − 3.5 ) = 1.75 e_3 = 5 - (2.25*3 - 3.5) = 1.75 e3=5(2.2533.5)=1.75

e 4 = 7 − ( 2.25 ∗ 4 − 3.5 ) = 3.5 e_4 = 7 - (2.25*4 -3.5) = 3.5 e4=7(2.2543.5)=3.5

计算总平方和:

S S T = ∑ i = 1 n ( y i − y ˉ ) 2 = ∑ i = 1 n ( y i − 4.25 ) 2 = 16.5 SS_T = \sum_{i=1}^n(y_i-\bar{y})^2 = \sum_{i=1}^n(y_i-4.25)^2 = 16.5 SST=i=1n(yiyˉ)2=i=1n(yi4.25)2=16.5

计算回归平方和:

S S R = ∑ i = 1 n ( y i ^ − y ˉ ) 2 = ∑ i = 1 n ( b x i + c − y ˉ ) 2 = ∑ i = 1 n ( 2.25 x i − 3.5 − 4.25 ) 2 = 14.0625 SS_R = \sum_{i=1}^n(\hat{y_i}-\bar{y})^2 = \sum_{i=1}^n(bx_i+c-\bar{y})^2 = \sum_{i=1}^n(2.25x_i - 3.5 - 4.25)^2 = 14.0625 SSR=i=1n(yi^yˉ)2=i=1n(bxi+cyˉ)2=i=1n(2.25xi3.54.25)2=14.0625

计算剩余平方和:

S S E = ∑ i = 1 n ( y i − y i ^ ) 2 = ∑ i = 1 n ( y i − ( 2.25 x i − 3.5 ) ) 2 = 2.4375 SS_E = \sum_{i=1}^n(y_i-\hat{y_i})^2 = \sum_{i=1}^n(y_i-(2.25x_i-3.5))^2 = 2.4375 SSE=i=1n(yiyi^)2=i=1n(yi(2.25xi3.5))2=2.4375

最终,可得到回归平方和与总平方和之比:

R 2 = S S R S S T = 14.0625 16.5 = 0.853 R^2 = \frac{SS_R}{SS_T} = \frac{14.0625}{16.5} = 0.853 R2=SSTSSR=16.514.0625=0.853

这个结果表明,通过回归方程可以解释数据的85.3%方差。

PPT中F检验的例题

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

Python代码:

x_list = [2, 3, 4, 5, 6, 8, 10, 12, 14, 16]
y_list = [15, 20, 25, 30, 35, 45, 60, 80, 80, 110]
y_pre = []
n = len(x_list)
a = sum(y_list)/n

def func(x):
    return -1.4288+6.4286*x

for i in range(n):
    y_pre.append(func(x_list[i]))

sst = 0
for y in y_list:
    sst += (y-a)**2
print(sst)

ssr = 0
for y in y_pre:
    ssr += (y-a)**2
print(ssr)

sse = sst - ssr
print(sse)

f = ssr/(sse / (n-2))
print(f)
;