一般情况下,当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组数据看线性回归的假设检验问题相关推荐

  1. API生态的发展与机遇:从5000组数据看中国API生态与开发者现状

    摘要:华为云联合多家单位发布了<中国API生态与开发者现状调研报告(2020年)>,旨在通过API生态.API开发者.使用者.API全生命周期管理等多视角展现我国API发展的现状与机遇,力 ...

  2. graphpad做折线图坐标轴数字_多组数据制作折线图,四步让你的图表实用又美观,老板看了都说好...

    Excel图表相信许多朋友都操作过,图表能够更加形象和生动的展示出我们的数据趋势和差异.但在做图表的过程中,相信许多朋友都碰到过一个尴尬的问题,那就是对多组数据进行图表展示的时候,图表就会堆积到一起, ...

  3. matlab建立rbf网络,大家看一下,这组数据Matlab如何构建RBF神经网络!!!!

    大家看一下,这组数据如何构建RBF神经网络!!!! 大家看一下如何编写RBF网络,前4例是输入,后2列是输出.共有19组数据,谁会呀!!谢谢. m_data=[0.000000 -96.688193 ...

  4. 用excel中数据分析功能做线性回归练习。分别选取20、200、2000(或20000)组数据,进行练习。记录回归方程式、相关系数R2并用jupyter编程

    目录 excel数据分析 jupyter编程用最小二乘法重做线性分析 借助skleran重做分析过程 excel数据分析 首先选取20组数据,回归方程式和相关系数R2如下图: 接下来选取200组数据进 ...

  5. datagrid出现相同两组数据_数据分析之统计学

    统计学知识 思维导图 第一节 统计学基本原理 数据分析相关概念 一.描述统计 测量尺度 1.定类(nominal) 功能:分类的作用,比如性别 2.定序(ordinal) 功能:分类.排序的作用,比如 ...

  6. Nature综述:Rob Knight带你分析微生物组数据(2020版)

    文章目录 微生物组分析最佳实践 导读 摘要Abstract 背景介绍Introduction 实验设计Experimental design 图1. 微生物组实验设计中的注意事项 知识点1. 优秀工作 ...

  7. 怎么评价两组数据是否接近_接近组数据(组间)

    怎么评价两组数据是否接近 接近组数据(组间) (Approaching group data (between-group)) A typical situation regarding solvin ...

  8. Nature综述:Rob Knight带你分析微生物组数据

    微生物组分析最佳实践 Best practices for analysing microbiomes Impact Factor:34.648 https://doi.org/10.1038/s41 ...

  9. python怎么分析数据差异的方法_如何比较两组数据之间的差异性

    展开全部 1, 首先,分别把这两组数据分别设为x和y,打开SPSS,点击左下角的Variable  View选项卡,e5a48de588b6323131333532363134313032313635 ...

最新文章

  1. (转载)MyEclipse github
  2. Exploiting “BadIRET” vulnerability (CVE-2014-9322, Linux kernel privilege escalation)
  3. java连接到mysql_[操作系统]Java如何连接到MySQL数据库的
  4. 【STM32】USART收发---内嵌中断向量控制器
  5. 【EMNLP2020】融合自训练和自监督方法的无监督文本顺滑研究
  6. 关于java第八章的想法
  7. java合同到期提醒_合同到期提醒,你会操作吗?
  8. html注册页面多选代码,利用HTML表单标签编写一个注册页面
  9. 三调业务摘要201709
  10. 语音数据标注工具与平台
  11. 单工,半双工,全双工区别以及TDD和FDD区别
  12. 数字万用表常用软件分享:数字万用表自动计量软件数字万用表上位机软件
  13. 雷电模拟器修改本地IP
  14. 2018年全国大学生电子设计竞赛
  15. 【asAI创新】华为CloudIVS轻量云:借力打力,四两拨千斤
  16. 【python】如何快速生成26位字母表?这里看过来。
  17. 【Lesson 13】万能和弦和弦走向
  18. If I Die Young
  19. Ubuntu 安装迅雷替代软件XwareDesktop
  20. 16k a4_A4、16开的纸张有多大?

热门文章

  1. Unity 360全景图转换为天空盒子
  2. 【解决方案】TSINGSEE青犀视频互联网直播/点播平台EasyDSS构建户外无人机直播
  3. 浏览器是先执行js还是先加载HTML,在HTML中使用JavaScript(浏览器对js的加载机制分析)...
  4. 别人可以在今日头条发文章赚钱,为什么你赚不到呢?
  5. iphone4s更换电池_如果更换了iPhone电池后仍然出现问题该怎么办
  6. FootStep 6、诺基亚、摩托罗拉、索尼爱立信和三星手机系列命名介绍『整理、了解』
  7. 【CV Transformer 论文笔记】Intriguing Properties of Vision Transformers
  8. 用PS怎样把一张图片切割成几张小图片?
  9. Unity Shader 实现简单的压扁效果
  10. matplotlib设置颜色、标记、线条,让你的图像更加丰富