Python_4组数据看线性回归的假设检验问题
一般情况下,当H0:β1=0H_0: \beta_1 = 0H0:β1=0 被接受的时候,表明 yyy 的取值倾向不随 xxx 的值按线性关系变化。这种情况的原因可能是变量 yyy 与 xxx 之间的相关关系不显著,也可能是 yyy 与 xxx 并非线性相关。
当H0:β1=0H_0: \beta_1 = 0H0:β1=0 被拒绝的时候,如果没有其它信息,只能认为因变量 yyy 对 xxx 的线性回归是有效的,但并没有说明回归的有效程度,不能断言 yyy 与 xxx 之间一定是线性相关关系,而不是曲线关系或其他关系。这时候图形表现就很重要了。
4组数据示例
1-数据准备
import numpy as np
x1 = list(range(4,15))
x4 = [8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 19]
y1 = [4.26, 5.68, 7.24, 4.82, 6.95, 8.81, 8.04, 8.33, 10.84, 7.58, 9.96]
y2 = [3.10, 4.74, 6.13, 7.26, 8.14, 8.77, 9.14, 9.26, 9.13, 8.74, 8.10]
y3 = [5.39, 5.73, 6.08, 6.44, 6.77, 7.11, 7.46, 7.81, 8.15, 12.74, 8.84]
y4 = [6.58, 5.76, 7.71, 8.84, 8.47, 7.04, 5.25, 5.56, 7.91, 6.89, 12.5]
x1_in = np.array(x1).reshape(-1,1)
x4_in = np.array(x4).reshape(-1,1)
y1_in = np.array(y1).reshape(-1,1)
y2_in = np.array(y2).reshape(-1,1)
y3_in = np.array(y3).reshape(-1,1)
y4_in = np.array(y4).reshape(-1,1)
图示
import matplotlib.pyplot as plt
plt.style.use('ggplot')
plt.subplot(2,2,1)
plt.xlim(0,20),plt.ylim(0,15)
plt.scatter(x1_in, y1_in,s = 8)
plt.subplot(2,2,2)
plt.xlim(0,20),plt.ylim(0,15)
plt.scatter(x1_in, y2_in, s = 8)
plt.subplot(2,2,3)
plt.xlim(0,20),plt.ylim(0,15)
plt.scatter(x1_in, y3_in,s = 8)
plt.subplot(2,2,4)
plt.xlim(0,20),plt.ylim(0,15)
plt.scatter(x4_in, y4_in,s = 8)
plt.show()
2-回归
from sklearn.linear_model import LinearRegression
lrg1 = LinearRegression()
lrg1.fit(x1_in,y1_in)
lrg2 = LinearRegression()
lrg2.fit(x1_in,y2_in)
lrg3 = LinearRegression()
lrg3.fit(x1_in,y3_in)
lrg4 = LinearRegression()
lrg4.fit(x4_in,y4_in)
get_lr_stats(x1_in, y1_in, lrg1)
get_lr_stats(x1_in, y2_in, lrg2)
get_lr_stats(x1_in, y3_in, lrg3)
get_lr_stats(x4_in, y4_in, lrg4)
四个模型参数几乎一样(
get_lr_stats
在Python_一元线性回归及回归显著性 中)
但是并非全都是线性回归
>>> get_lr_stats(x1_in, y1_in, lrg1)
一元线性回归方程为: y=3.000090909090906 + 0.5000909090909094*x
相关系数(R^2): 0.6665424595087752;
回归分析(SSR): 27.51000090909094; 残差(SSE): 13.76269;F : 17.989942967676996; pf : 0.002169628873078789t : 4.689105252775333; pt : 0.0005687504416628528
>>> get_lr_stats(x1_in, y2_in, lrg2)
一元线性回归方程为: y=3.0009090909090883 + 0.5000000000000002*x
相关系数(R^2): 0.6662420337274844;
回归分析(SSR): 27.500000000000014; 残差(SSE): 13.776290909090912;F : 17.965648492271313; pf : 0.002178816236910796t : 4.685937987627148; pt : 0.0005712964612135407
>>> get_lr_stats(x1_in, y3_in, lrg3)
一元线性回归方程为: y=3.007545454545453 + 0.49936363636363645*x
相关系数(R^2): 0.6660467267232798;
回归分析(SSR): 27.430044545454564; 残差(SSE): 13.753319090909097;F : 17.949878082322083; pf : 0.0021848056073100444t : 4.683880856554066; pt : 0.0005729566449371534
>>> get_lr_stats(x4_in, y4_in, lrg4)
一元线性回归方程为: y=3.0017272727272726 + 0.4999090909090909*x
相关系数(R^2): 0.6667072568984653;
回归分析(SSR): 27.490000909090913; 残差(SSE): 13.742490000000004;F : 18.003288209183207; pf : 0.0021646023471972213t : 4.690844158819928; pt : 0.0005673577949779548
3-回归图示
## 回归后图示
xl = np.array(list(range(0,21))).reshape(-1,1)
plt.subplot(2,2,1)
plt.xlim(0,20),plt.ylim(0,15)
plt.scatter(x1_in, y1_in,s = 8)
plt.plot(xl, lrg1.predict(xl),c='steelblue', alpha=0.7, lw=1)plt.subplot(2,2,2)
plt.xlim(0,20),plt.ylim(0,15)
plt.scatter(x1_in, y2_in, s = 8)
plt.plot(xl, lrg1.predict(xl),c='steelblue', alpha=0.7, lw=1)plt.subplot(2,2,3)
plt.xlim(0,20),plt.ylim(0,15)
plt.scatter(x1_in, y3_in,s = 8)
plt.plot(xl, lrg1.predict(xl),c='steelblue', alpha=0.7, lw=1)plt.subplot(2,2,4)
plt.xlim(0,20),plt.ylim(0,15)
plt.scatter(x4_in, y4_in,s = 8)
plt.plot(xl, lrg1.predict(xl),c='steelblue', alpha=0.7, lw=1)
plt.show()
因此,在实际应用中,不应该局限于一种方法去分析判断。要得到,确实可信的结果,应该将F检验、散点图、残差分析等方法一起使用,得到一致的结果才可以下定论
Python_4组数据看线性回归的假设检验问题相关推荐
- API生态的发展与机遇:从5000组数据看中国API生态与开发者现状
摘要:华为云联合多家单位发布了<中国API生态与开发者现状调研报告(2020年)>,旨在通过API生态.API开发者.使用者.API全生命周期管理等多视角展现我国API发展的现状与机遇,力 ...
- graphpad做折线图坐标轴数字_多组数据制作折线图,四步让你的图表实用又美观,老板看了都说好...
Excel图表相信许多朋友都操作过,图表能够更加形象和生动的展示出我们的数据趋势和差异.但在做图表的过程中,相信许多朋友都碰到过一个尴尬的问题,那就是对多组数据进行图表展示的时候,图表就会堆积到一起, ...
- matlab建立rbf网络,大家看一下,这组数据Matlab如何构建RBF神经网络!!!!
大家看一下,这组数据如何构建RBF神经网络!!!! 大家看一下如何编写RBF网络,前4例是输入,后2列是输出.共有19组数据,谁会呀!!谢谢. m_data=[0.000000 -96.688193 ...
- 用excel中数据分析功能做线性回归练习。分别选取20、200、2000(或20000)组数据,进行练习。记录回归方程式、相关系数R2并用jupyter编程
目录 excel数据分析 jupyter编程用最小二乘法重做线性分析 借助skleran重做分析过程 excel数据分析 首先选取20组数据,回归方程式和相关系数R2如下图: 接下来选取200组数据进 ...
- datagrid出现相同两组数据_数据分析之统计学
统计学知识 思维导图 第一节 统计学基本原理 数据分析相关概念 一.描述统计 测量尺度 1.定类(nominal) 功能:分类的作用,比如性别 2.定序(ordinal) 功能:分类.排序的作用,比如 ...
- Nature综述:Rob Knight带你分析微生物组数据(2020版)
文章目录 微生物组分析最佳实践 导读 摘要Abstract 背景介绍Introduction 实验设计Experimental design 图1. 微生物组实验设计中的注意事项 知识点1. 优秀工作 ...
- 怎么评价两组数据是否接近_接近组数据(组间)
怎么评价两组数据是否接近 接近组数据(组间) (Approaching group data (between-group)) A typical situation regarding solvin ...
- Nature综述:Rob Knight带你分析微生物组数据
微生物组分析最佳实践 Best practices for analysing microbiomes Impact Factor:34.648 https://doi.org/10.1038/s41 ...
- python怎么分析数据差异的方法_如何比较两组数据之间的差异性
展开全部 1, 首先,分别把这两组数据分别设为x和y,打开SPSS,点击左下角的Variable View选项卡,e5a48de588b6323131333532363134313032313635 ...
最新文章
- (转载)MyEclipse github
- Exploiting “BadIRET” vulnerability (CVE-2014-9322, Linux kernel privilege escalation)
- java连接到mysql_[操作系统]Java如何连接到MySQL数据库的
- 【STM32】USART收发---内嵌中断向量控制器
- 【EMNLP2020】融合自训练和自监督方法的无监督文本顺滑研究
- 关于java第八章的想法
- java合同到期提醒_合同到期提醒,你会操作吗?
- html注册页面多选代码,利用HTML表单标签编写一个注册页面
- 三调业务摘要201709
- 语音数据标注工具与平台
- 单工,半双工,全双工区别以及TDD和FDD区别
- 数字万用表常用软件分享:数字万用表自动计量软件数字万用表上位机软件
- 雷电模拟器修改本地IP
- 2018年全国大学生电子设计竞赛
- 【asAI创新】华为CloudIVS轻量云:借力打力,四两拨千斤
- 【python】如何快速生成26位字母表?这里看过来。
- 【Lesson 13】万能和弦和弦走向
- If I Die Young
- Ubuntu 安装迅雷替代软件XwareDesktop
- 16k a4_A4、16开的纸张有多大?
热门文章
- Unity 360全景图转换为天空盒子
- 【解决方案】TSINGSEE青犀视频互联网直播/点播平台EasyDSS构建户外无人机直播
- 浏览器是先执行js还是先加载HTML,在HTML中使用JavaScript(浏览器对js的加载机制分析)...
- 别人可以在今日头条发文章赚钱,为什么你赚不到呢?
- iphone4s更换电池_如果更换了iPhone电池后仍然出现问题该怎么办
- FootStep 6、诺基亚、摩托罗拉、索尼爱立信和三星手机系列命名介绍『整理、了解』
- 【CV Transformer 论文笔记】Intriguing Properties of Vision Transformers
- 用PS怎样把一张图片切割成几张小图片?
- Unity Shader 实现简单的压扁效果
- matplotlib设置颜色、标记、线条,让你的图像更加丰富