900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > python相关性系数显著性检验_【Python计算检验值】一元线性回归拟合 t值与p值 显著性检验...

python相关性系数显著性检验_【Python计算检验值】一元线性回归拟合 t值与p值 显著性检验...

时间:2020-02-07 00:54:25

相关推荐

python相关性系数显著性检验_【Python计算检验值】一元线性回归拟合 t值与p值 显著性检验...

本文主要讨论Python实现一元回归的线性拟合、最小二乘法估计回归参数和显著性检验(t检验和p值).

一元线性回归模型是描述两个变量之间相关关系的最简单的回归模型. 通常人们对所要研究的问题首先要收集与它有关的n组样本数据(x_i,y_i),i=1,2,3...,为了直观的发现样本数据的分布规律,把(x_i,y_i)看成是平面直角坐标系中的点. 描述两个变量之间的线性关系的数学结构通常为:

y=β_0+β_1*x+e

其中,β_0+β_1*x是由于x的变化引起y线性变化的部分,e是随机因素引起的部分.

from scipy import stats

import pandas as pd

import numpy as np

import matplotlib.pyplot as plt

#读取数据并查看数据的前五行,sheetname=n,其中n表示excel中的工作表的索引(即第n+1个工作表)

df=pd.read_excel(u'文件位置',sheetname=0)

print(df.head())

#计算x,y的平均值

x=df['x']

y=df['y']

#画出x与y的散点图

plt.scatter(x,y)

plt.xlabel('x')

plt.ylabel('y')

plt.title('the linear regression')

#线性回归拟合

x_m=np.mean(x)

y_m=np.mean(y)

x1=(x-x_m)

y1=y-y_m

x2=sum((x-x_m)**2)

xy=sum(x1*y1)

#回归参数的最小二乘估计

beta1=xy/x2

beta0=y_m-beta1*x_m

#输出线性回归方程

print('y=',beta0,'+',beta1,'*x')

#画出回归方程的函数图

a=np.linspace(1000,5000,1000)#b表示在(1000,5000)上生成1000个a值

b=[beta0+beta1*i for i in a]

plt.plot(a,b,'r')

#方差

sigma2=sum((y-beta0-beta1*x)**2)/(18)

#标准差

sigma=np.sqrt(sigma2)

#求t值

t=beta1*np.sqrt(x2)/sigma

print('t=',t)

#已知临界值求p值

p=stats.t.sf(t,18)

print('p=',p)

#输出检验结果

if p<0.05:

print ('the linear regression between x and y is significant')

else:

print('the linear regression between x and y is not significant')

plt.show()

执行结果:

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。