一元线性回归模型系数、方差估计、检验回归效果显著性,b的置信区间,Y约为X的指数函数时,求Y关于x的回归方程

梦想与她 提交于 2020-01-04 00:17:20

y=a^+b^xy=\hat a + \hat b x
Sxy=(x1y1+x2y2+...+xnyn)(x1+x2+...+xn)(y1+y2+...+yn)nS_{xy}=(x_1y_1+x_2y_2+...+x_ny_n)-\frac{(x_1+x_2+...+x_n)(y_1+y_2+...+y_n)}{n}
Sxx=(x12+x22+...+xn2)(x1+x2+...+xn)2nS_{xx}=(x_1^2+x_2^2+...+x_n^2)-\frac{(x_1+x_2+...+x_n)^2}{n}
b^=SxySxx\hat b=\frac{S_{xy}}{S_{xx}}
a^=y1+y2+...+ynn(x1+x2+...+xn)nb^\hat a =\frac{y_1+y_2+...+y_n}{n}-\frac{(x_1+x_2+...+x_n)}{n} \hat b
σ2^=SyySxyb^n2\hat{\sigma^2}=\frac{S_{yy}-S_{xy}\hat{b}}{n-2}

python代码实现:

import numpy as np 
import math
def Sxy(x,y):
    sum = 0
    sumx = 0
    sumy = 0
    for i in range(len(x)):
        sum+=x[i]*y[i]
        sumx+=x[i]
        sumy+=y[i]
    return sum-sumx*sumy/len(x)

def a(x,y,b):
    sumy = 0
    sumx = 0
    for i in range(len(x)):
        sumy += y[i]
        sumx += x[i]
    sumy/=len(x)
    sumx/=len(x)
    return sumy - sumx * b
    

	
x = [100,110,120,130,140,150,160,170,180,190]
y = [45,51,54,61,66,70,74,78,85,89]
sxy = Sxy(x,y)
print('sxy:',sxy)
sxx = Sxy(x,x)
print('sxx:',sxx)
b = sxy/sxx
print('b:',b)
a = a(x,y,b)
print('a:',a)
print('所有一元回归函数为Y=',a,'x+',b)


在这里插入图片描述
检验回归效果显著性
1)设H0:b=0,H1:b0H_0:b=0,H_1:b\not =0
2)判断b^σ^Sxxtα2(n2)\frac{|\hat b|}{\hat \sigma}\sqrt{S_{xx}}与t_{\frac{\alpha}{2}(n-2)}则回归效果显著

import numpy as np 
import math
def Sxy(x,y):
    sum = 0
    sumx = 0
    sumy = 0
    for i in range(len(x)):
        sum+=x[i]*y[i]
        sumx+=x[i]
        sumy+=y[i]
    return sum-sumx*sumy/len(x)

def a(x,y,b):
    sumy = 0
    sumx = 0
    for i in range(len(x)):
        sumy += y[i]
        sumx += x[i]
    sumy/=len(x)
    sumx/=len(x)
    return sumy - sumx * b
    

	
x = [100,110,120,130,140,150,160,170,180,190]
y = [45,51,54,61,66,70,74,78,85,89]
sxy = Sxy(x,y)
print('sxy:',sxy)
sxx = Sxy(x,x)
print('sxx:',sxx)
b = sxy/sxx
print('b:',b)
a = a(x,y,b)
print('a:',a)
print('所有一元回归函数为Y=',a,'x+',b)
syy = Sxy(y,y)
print('syy:',syy)
sigma2 = (syy-b*sxy)/(len(x)-2) 
print('sigma2:',sigma2)
print(abs(b)/math.sqrt(sigma2)*math.sqrt(sxx))

在这里插入图片描述
求系数b的置信区间
置信区间为(b^tα2(n2)a^Sxx,b^+tα2(n2)a^Sxx)(\hat b-t_{\frac{\alpha}{2}(n-2)}\frac{\hat a}{S_{xx}},\hat b+t_{\frac{\alpha}{2}(n-2)}\frac{\hat a}{S_{xx}})
在这里插入图片描述

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!