概率统计Python计算:一元线性回归回归系数a=0的假设检验

在这里插入图片描述
设试验样本数据 x = ( x 1 , x 2 , ⋯   , x n ) x=(x_1,x_2,\cdots,x_n) x=(x1,x2,,xn) Y = ( Y 1 , Y 2 , ⋯   , Y n ) Y=(Y_1,Y_2,\cdots,Y_n) Y=(Y1,Y2,,Yn),若拒绝假设
H 0 : a = 0 ( H 1 : a ≠ 0 ) H_0: a=0(H_1:a\not=0) H0:a=0(H1:a=0)
则诸 Y i Y_i Yi~ N ( a x + b , σ 2 ) N(ax+b, \sigma^2) N(ax+b,σ2) i = 1 , 2 , ⋯   , n i=1,2,\cdots,n i=1,2,,n。由于 ( a ∧ − a ) n σ 2 ∧ ( n − 2 ) ∑ i = 1 n ( x i − x ‾ ) 2 (\stackrel{\wedge}{a}-a)\sqrt{\frac{n\stackrel{\wedge}{\sigma^2}}{(n-2)\sum\limits_{i=1}^n(x_i-\overline{x})^2}} (aa)(n2)i=1n(xix)2nσ2 ~ t ( n − 2 ) t(n-2) t(n2),可将 a ∧ n σ 2 ∧ ( n − 2 ) ∑ i = 1 n ( x i − x ‾ ) 2 \stackrel{\wedge}{a}\sqrt{\frac{n\stackrel{\wedge}{\sigma^2}}{(n-2)\sum\limits_{i=1}^n(x_i-\overline{x})^2}} a(n2)i=1n(xix)2nσ2 作为假设检验量,检验假设 H 0 : a = 0 H_0:a=0 H0:a=0
然而,函数linregress函数的返回值所含字段pvalue,就是表示的该统计量值对应检验p值,只需将其与给定的显著水 α \alpha α比较,即可得到检验结果。
当假设 H 0 : a = 0 H_0:a=0 H0:a=0被拒绝时,认为回归效应是显著的。此时,可利用linregress函数的返回值所含的表示样本相关系数 ∑ i = 1 n ( x i − x ‾ ) ( y i − y ‾ ) ∑ i = 1 n ( x i − x ‾ ) 2 ∑ i = 1 n ( y i − y ‾ ) 2 \frac{\sum\limits_{i=1}^n(x_i-\overline{x})(y_i-\overline{y})}{\sqrt{\sum\limits_{i=1}^n(x_i-\overline{x})^2}\sqrt{\sum\limits_{i=1}^n(y_i-\overline{y})^2}} i=1n(xix)2 i=1n(yiy)2 i=1n(xix)(yiy)的字段rvalue来判断回归效应的高低:其绝对值越接近1,意味着回归效应越高。
例1设炼铝厂所产铸模的抗张强度与所用铝的硬度有关。设当铝的硬度为 x x x时,抗张强度 Y Y Y~ N ( a x + b , σ 2 ) N(ax+b,\sigma^2) N(ax+b,σ2),其中 a a a b b b σ 2 \sigma^2 σ2均未知。对于一系列的 x x x值,测得相应的抗张强度如下表
硬度 x : 51 , 53 , 60 , 64 , 68 , 70 , 70 , 72 , 83 , 84 抗张强度 Y : 283 , 293 , 290 , 256 , 288 , 349 , 340 , 354 , 324 , 343 \text{硬度}x: 51,53,60,64,68,70,70,72,83,84\\ \text{抗张强度}Y: 283,293,290,256,288,349,340,354,324,343 硬度x:51,53,60,64,68,70,70,72,83,84抗张强度Y:283,293,290,256,288,349,340,354,324,343
希望根据样本数据计算假设 H 0 : a = 0 H_0:a=0 H0:a=0对显著水平 α = 0.05 \alpha=0.05 α=0.05的检验。
解: 下列代码完成本例计算。

import numpy as np
from scipy.stats import linregress
alpha=0.05
x=np.array([51, 53, 60, 64, 68, 70, 70, 72, 83, 84])
y=np.array([283, 293, 290, 286, 288, 349, 340, 354, 324, 343])
res=linregress(x, y)
print('H0:a=0 is %s'%(res.pvalue>=alpha))
print('correlation coefficient is %.4f'%res.rvalue)

第6行调用linregress函数,返回值为res。第7行利用res的pvalue字段检验回归系数 a = 0 a=0 a=0的假设,第8行显示表示回归效应的res的rvalue字段值。运行程序,输出

H0:a=0 is False
correlation coefficient is 0.6968

表示拒绝假设 H 0 : a = 0 H_0:a=0 H0:a=0,且样本相关系数值为0.6968,回归效应比较高(超过0.5)。
写博不易,敬请支持:
如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!
返回《导引》

猜你喜欢

转载自blog.csdn.net/u012958850/article/details/117848535