121 11 个案例掌握 Python 数据可视化--星际探索

Python017

121 11 个案例掌握 Python 数据可视化--星际探索,第1张

星空是无数人梦寐以求想了解的一个领域,远古的人们通过肉眼观察星空,并制定了太阴历,指导农业发展。随着现代科技发展,有了更先进的设备进行星空的探索。本实验获取了美国国家航空航天局(NASA)官网发布的地外行星数据,研究及可视化了地外行星各参数、寻找到了一颗类地行星并研究了天体参数的相关关系。

输入并执行魔法命令 %matplotlib inline, 设置全局字号,去除图例边框,去除右侧和顶部坐标轴。

本数据集来自 NASA,行星发现是 NASA 的重要工作之一,本数据集搜集了 NASA 官网发布的 4296 颗行星的数据,本数据集字段包括:

导入数据并查看前 5 行。

截至 2020 年 10 月 22 日 全球共发现 4296 颗行星,按年聚合并绘制年度行星发现数,并在左上角绘制 NASA 的官方 LOGO 。

从运行结果可以看出,2005 年以前全球行星发现数是非常少的,经计算总计 173 颗,2014 和 2016 是行星发现成果最多的年份,2016 年度发现行星 1505 颗。

对不同机构/项目/计划进行聚合并降序排列,绘制发现行星数目的前 20 。

2009 年至 2013 年,开普勒太空望远镜成为有史以来最成功的系外行星发现者。在一片天空中至少找到了 1030 颗系外行星以及超过 4600 颗疑似行星。当机械故障剥夺了该探测器对于恒星的精确定位功能后,地球上的工程师们于 2014 年对其进行了彻底改造,并以 K2 计划命名,后者将在更短的时间内搜寻宇宙的另一片区域。

对发现行星的方式进行聚合并降序排列,绘制各种方法发现行星的比例,由于排名靠后的几种方式发现行星数较少,因此不显示其标签。

行星在宇宙中并不会发光,因此无法直接观察,行星发现的方式多为间接方式。从输出结果可以看出,发现行星主要有以下 3 种方式,其原理如下:

针对不同的行星质量,绘制比其质量大(或者小)的行星比例,由于行星质量量纲分布跨度较大,因此采用对数坐标。

从输出结果可以看出,在已发现的行星中,96.25% 行星的质量大于地球。(图中横坐标小于 e 的红色面积非常小)

通过 sns.distplot 接口绘制全部行星的质量分布图。

从输出结果可以看出,所有行星质量分布呈双峰分布,第一个峰在 1.8 左右(此处用了对数单位,表示大约 6 个地球质量),第二个峰在 6.2 左右(大概 493 个地球质量)。

针对不同发现方式发现的行星,绘制各行星的公转周期和质量的关系。

从输出结果可以看出:径向速度(Radial Velocity)方法发现的行星在公转周期和质量上分布更宽,而凌日(Transit)似乎只能发现公转周期相对较短的行星,这是因为两种方法的原理差异造成的。对于公转周期很长的行星,其运行到恒星和观察者之间的时间也较长,因此凌日发现此类行星会相对较少。而径向速度与其说是在发现行星,不如说是在观察恒星,由于恒星自身发光,因此其观察机会更多,发现各类行星的可能性更大。

针对不同发现方式发现的行星,绘制各行星的距离和质量的关系。

从输出结果可以看出,凌日和径向速度对距离较为敏感,远距离的行星大多是通过凌日发现的,而近距离的行星大多数通过径向速度发现的。原因是:近距离的行星其引力对恒星造成的摆动更为明显,因此更容易观察;当距离较远时,引力作用变弱,摆动效应减弱,因此很难借助此方法观察到行星。同时,可以观察到当行星质量更大时,其距离分布相对较宽,这是因为虽然相对恒星的距离变长了,但是由于行星质量的增加,相对引力也同步增加,恒星摆动效应会变得明显。

将所有行星的质量和半径对数化处理,绘制其分布并拟合其分布。

由于:

因此,从原理上质量对数与半径对数应该是线性关系,且斜率为定值 3 ,截距的大小与密度相关。

从输出结果可以看出:行星质量和行星半径在对数变换下,具有较好的线性关系。输出 fix_xy 数值可知,其关系可以拟合出如下公式:

拟合出曲线对应的行星平均密度为:

同样的方式绘制恒星质量与半径的关系。

从输出结果可以看出,恒星与行星的规律不同,其质量与半径在对数下呈二次曲线关系,其关系符合以下公式:

同样的方式研究恒星表面重力加速度与半径的关系。

从输出结果可以看出,恒星表面对数重力加速度与其对数半径呈现较好的线性关系:

以上我们分别探索了各变量的分布和部分变量的相关关系,当数据较多时,可以通过 pd.plotting.scatter_matrix 接口,直接绘制各变量的分布和任意两个变量的散点图分布,对于数据的初步探索,该接口可以让我们迅速对数据全貌有较为清晰的认识。

通过行星的半径和质量,恒星的半径和质量,以及行星的公转周期等指标与地球的相似性,寻找诸多行星中最类似地球的行星。

从输出结果可以看出,在 0.6 附近的位置出现了一个最大的圆圈,那就是我们找到的类地行星 Kepler - 452 b ,让我们了解一下这颗行星:

数据显示,Kepler - 452 b 行星公转周期为 384.84 天,半径为 1.63 地球半径,质量为 3.29 地球质量;它的恒星为 Kepler - 452 半径为太阳的 1.11 倍,质量为 1.04 倍,恒星方面数据与太阳相似度极高。

以下内容来自百度百科。 开普勒452b(Kepler 452b) ,是美国国家航空航天局(NASA)发现的外行星, 直径是地球的 1.6 倍,地球相似指数( ESI )为 0.83,距离地球1400光年,位于为天鹅座。

2015 年 7 月 24 日 0:00,美国国家航空航天局 NASA 举办媒体电话会议宣称,他们在天鹅座发现了一颗与地球相似指数达到 0.98 的类地行星开普勒 - 452 b。这个类地行星距离地球 1400 光年,绕着一颗与太阳非常相似的恒星运行。开普勒 452 b 到恒星的距离,跟地球到太阳的距离相同。NASA 称,由于缺乏关键数据,现在不能说 Kepler - 452 b 究竟是不是“另外一个地球”,只能说它是“迄今最接近另外一个地球”的系外行星。

在银河系经纬度坐标下绘制所有行星,并标记地球和 Kepler - 452 b 行星的位置。

类地行星,是人类寄希望移民的第二故乡,但即使最近的 Kepler-452 b ,也与地球相聚 1400 光年。

以下通过行星的公转周期和质量两个特征将所有行星聚为两类,即通过训练获得两个簇心。

定义函数-计算距离

聚类距离采用欧式距离:

定义函数-训练簇心

训练簇心的原理是:根据上一次的簇心计算所有点与所有簇心的距离,任一点的分类以其距离最近的簇心确定。依此原理计算出所有点的分类后,对每个分类计算新的簇心。

定义函数预测分类

根据训练得到的簇心,预测输入新的数据特征的分类。

开始训练

随机生成一个簇心,并训练 15 次。

绘制聚类结果

以最后一次训练得到的簇心为基础,进行行星的分类,并以等高面的形式绘制各类的边界。

从运行结果可以看出,所有行星被分成了两类。并通过上三角和下三角标注了每个类别的簇心位置。

聚类前

以下输出了聚类前原始数据绘制的图像。

1.基本概念

多项式回归(Polynomial Regression)是研究一个因变量与一个或多个自变量间多项式的回归分析方法。如果自变量只有一个 时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。

1.在一元回归分析中,如果依变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。

2.多项式回归的最大优点就是可以通过增加x的高次项对实测点进行逼近,直至满意为止。

3.事实上,多项式回归可以处理相当一类非线性问题,它在回归分析 中占有重要的地位,因为任一函数都可以分段用多项式来逼近。

2.实例

我们在前面已经根据已知的房屋成交价和房屋的尺寸进行了线 性回归,继而可以对已知房屋尺寸,而未知房屋成交价格的实例进行了成 交价格的预测,但是在实际的应用中这样的拟合往往不够好,因此我们在 此对该数据集进行多项式回归。

目标:对房屋成交信息建立多项式回归方程,并依据回归方程对房屋价格进行预测

import matplotlib.pyplot as plt

import numpy as np

from sklearn import linear_model

#导入线性模型和多项式特征构造模块

from sklearn.preprocessing import PolynomialFeatures

datasets_X =[]

datasets_Y =[]

fr =open('prices.txt','r')

#一次读取整个文件。

lines =fr.readlines()

#逐行进行操作,循环遍历所有数据

for line in lines:

#去除数据文件中的逗号

items =line.strip().split(',')

#将读取的数据转换为int型,并分别写入datasets_X和datasets_Y。

datasets_X.append(int(items[0]))

datasets_Y.append(int(items[1]))

#求得datasets_X的长度,即为数据的总数。

length =len(datasets_X)

#将datasets_X转化为数组, 并变为二维,以符合线性回 归拟合函数输入参数要求

datasets_X= np.array(datasets_X).reshape([length,1])

#将datasets_Y转化为数组

datasets_Y=np.array(datasets_Y)

minX =min(datasets_X)

maxX =max(datasets_X)

#以数据datasets_X的最大值和最小值为范围,建立等差数列,方便后续画图。

X=np.arange(minX,maxX).reshape([-1,1])

#degree=2表示建立datasets_X的二 次多项式特征X_poly。

poly_reg =PolynomialFeatures(degree=2)

X_ploy =poly_reg.fit_transform(datasets_X)

lin_reg_2=linear_model.LinearRegression()

lin_reg_2.fit(X_ploy,datasets_Y)

#查看回归方程系数

print('Cofficients:',lin_reg_2.coef_)

#查看回归方程截距

print('intercept',lin_reg_2.intercept_)

plt.scatter(datasets_X,datasets_Y,color='red')

plt.plot(X,lin_reg_2.predict(poly_reg.fit_transform(X)),color='blue')

plt.xlabel('Area')

plt.ylabel('Price')

plt.show()

运行结果:

Cofficients: [0.00000000e+00 4.93982848e-02 1.89186822e-05]

intercept 151.8469675050044

通过多项式回归拟合的曲线与 数据点的关系如下图所示。依据该 多项式回归方程即可通过房屋的尺 寸,来预测房屋的成交价格。

文章知识点与官方知识档案匹配

Python入门技能树人工智能基于Python的监督学习

194396 人正在系统学习中

打开CSDN,阅读体验更佳

基于Python的多项式拟合方法_飘羽的博客_python 多项式...

基于Python的多项式拟合方法 1. 直接上代码进行介绍 __author__ ='Administrator' # coding=utf8 # 导入相关包 importmatplotlib.pyplotasplt importnumpyasnp frompandasimportread_csv fromsklearn.metricsimportr2_score...

继续访问

python机器学习 | 多项式回归和拟合_Claire_chen_jia的博客...

多项式回归中,加入了特征的更高次方(例如平方项或立方项),也相当于增加了模型的自由度,用来捕获数据中非线性的变化。 多项式拟合lm_sklearn之多项式回归 weixin_34419561的博客 601 '''多项式回归:若希望回归模型更好的拟合训练样本...

继续访问

最新发布 Python回归预测建模实战-多项式回归预测房价(附源码和实现效果)

Python回归预测建模实战-多项式回归预测房价(附源码和实现效果)

继续访问

sklearn实现非线性回归模型

sklearn实现非线性回归模型 前言: sklearn实现非线性回归模型的本质是通过线性模型实现非线性模型,如何实现呢?sklearn就是先将非线性模型转换为线性模型,再利用线性模型的算法进行训练模型。 一、线性模型解决非线性模型的思想 1、样本数据如下 x y 1 45000 2 50000 3 60000 4 80000 5 110000 6 15000...

继续访问

多项式拟合,模型的复杂度以及权重的变化_今晚打佬虎的博客...

sklearn,提供了多项式特征的方法: fromsklearn.preprocessingimportPolynomialFeatures X=np.arange(6).reshape(3,2)poly=PolynomialFeatures(2)poly.fit_transform(X)>>>array([[1.,0.,1.,0.,0.,1.],[1.,2.,3.,4.,6.,9...

继续访问

python数据处理三:使用sklearn实现曲线拟合_耐心的小黑的博客-CSDN博 ...

from sklearn.linear_model import LinearRegressionfrom sklearn.preprocessing import PolynomialFeaturesimport numpy as npimport matplotlib.pyplot as plt#获取待拟合数据x = np.linspace(1, 50, 50)f = np.poly1d([2,5,10])y ...

继续访问

机器学习(十)线性&多项式回归之房价与房屋尺寸关系

一.线性回归 (1)线性回归  线性回归(Linear Regression)是利用数理统计中回归分析,来确定两种或两种以上变量间相互依赖的定量关系的一种统计分 析方法。  线性回归利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归 线性回归:使用形如y=w T x+b的线性模型拟合数据输入和输出之间的映射关系的。 线性回归有很多实际的用途,分为以下两类: 1.如果目标是预测或者映射,线性回归可以用来对观测数据集的y和X的值拟合出一个预测模型。

python完成非线性拟合

在之前的博客"使用python来完成数据的线性拟合"当中,介绍了基于python,使用三种方法完成线性拟合的理论和代码实现。同样经常会碰到样本分布呈现非线性关系的情况,那么如何拟合出来呢?本文侧重对数据已经有建模,但是准确的关系需要得以确定的情况。 如果想直接求出拟合系数,而不清楚原本模型的话,直接利用theta = np.polyfit(X, Y_noise, deg=4)得到y=a*x^4+b*x^3+c*x^2+d方程的theta=[a,b,c,d]。这里deg=4表...

继续访问

sklearn实现多项式回归_盛夏未来的博客

sklearn实现多项式回归 多项式回归 一个数据集,用散点图画出来如下图,可以看到此时用一条直线(或者超平面)是不能拟合的,所以需要用一个多项式表示的曲线(或者超曲面)才能得到更好的拟合结果。

继续访问

多项式回归+房价与房屋尺寸的非线性拟合

多项式回归 多项式回归(Polynomial Regression)是研究一个因变量与一个或多个自变量间多项式的回归分析方法。如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。 在一元回归分析中,如果依变量y与自变量X的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。后续的实例就是这个例子。 多项式回归的最大优点就是可以通过增加X的高次...

继续访问

Python机器学习应用 | 多项式回归

1 多项式回归多项式回归(Polynomial Regression)是研究一个因变量与一个或多个自变量间多项式的回归分析方法。如果自变量只有一个时,称为一元多项式回归;如果自变量有多个时,称为多元多项式回归。 在一元回归分析中,如果依变量y与自变量x的关系为非线性的,但是又找不到适当的函数曲线来拟合,则可以采用一元多项式回归。 多项式回归的最大优点就是可以通过增加x的高次项对实测点进行逼近,直

继续访问

多项式拟合lm_sklearn之多项式回归

'''多项式回归:若希望回归模型更好的拟合训练样本数据,可以使用多项式回归器。一元多项式回归:数学模型:y = w0 + w1 * x^1 + w2 * x^2 + .... + wn * x^n将高次项看做对一次项特征的扩展得到:y = w0 + w1 * x1 + w2 * x2 + .... + wn * xn那么一元多项式回归即可以看做为多元线性回归,可以使用LinearRegressio...

继续访问

sklearn多项式拟合

https://blog.csdn.net/bxg1065283526/article/details/80043049

继续访问

【Scikit-Learn】多项式拟合

%matplotlib inline import matplotlib.pyplot as plt import numpy as np n_dots = 20 x = np.linspace(0, 1, n_dots) # [0, 1] 之间创建 20 个点 y = np.sqrt(x) + 0.2*np.random.rand(n_dots) - 0....

继续访问

python 非线性多项式拟合_浅析多项式回归与sklearn中的Pipeline

0x00 前言 之前我们介绍了简单线性回归,其输入特征只有一维,即:;推广到多维特征,即多元线性回归:。但是在线性回归的背后是有一个很强的假设条件:数据存在线性关系。但是更多的数据之间具有非线性关系。因此对线性回归法进行改进,使用多项式回归法,可以对非线性数据进行处理。0x01 什么是多项式回归 研究一个因变量与一个或多个自变量间多项式的回归分析方法,称为多项式回归(Polynomial...

继续访问

机器学习-sklearn-多项式回归-对函数拟合-看学习曲线(均方误差MSE)-pipeline

python sklearn pipeline做函数拟合,-看学习曲线(均方误差MSE)

继续访问

sklearn实现多项式回归

1)生成数据集 import numpy as np import matplotlib.pyplot as plt n_train, n_test, true_w, true_b = 100, 100, [1.2, -3.4, 5.6], 5 # X = np.linspace(-3,3,n_train+n_test) X = np.random.normal(size=(n_train...

继续访问

多项式回归

线性回归只能拟合简单的 线性问题,当现在数据的复杂程度不能使用线性拟合,这时要考虑非线性拟合。现在考虑一种最简单的非线性拟合--多项式回归。 多项式回归的含义是直接从线性回归过度到非线性,简单的做法可以将原来的特征的幂次方作为一个新的特征,这样随着特征的逐渐复杂,它也能够解决非线性数据的拟合问题,这种从线性特征集上扩展过来的模型,称为多项式回归。 首先创建非线性带噪声的数据集 import...

继续访问

sklearn多项式回归

# -*- coding: utf-8 -*- """ Created on Mon Jan 29 22:57:10 2018 @author: Administrator """ import matplotlib.pyplot as plt import numpy as np from sklearn.linear_model import LinearRegression#导入线性回归

继续访问

【机器学习】多项式回归python实现

使用python实现多项式回归,没有使用sklearn等机器学习框架,目的是帮助理解算法的原理。 使用一个简单的数据集来模拟,只有几条数据。 代码 从数据集中读取X和y。 为X添加二次方项,用Z替换。 给Z添加 1 列,初始化为 1 ,用来求偏置项。 划分训练集和测试集。 将Z和y的训练集转换为矩阵形式。 和线性回归类似,使用正规方程法,先验证矩阵的可逆性。 去掉Z中全为1的列。 使用测试集...

继续访问

sklearn线性回归完成多次项函数和正弦函数拟合

这样两个式子,使用sklearn 线性回归进行拟合 直接上代码 得到结果:score : 0.9902512046606555 mse : 7940.310765934783画图结果:对于正玄曲线原始数据画图 degree定成三阶拟合图 degree定成二阶拟合图degree定成六阶拟合图,效果非常好,但不知道是不是有点过拟合了、? 话不多说,直接上代码:...

继续访问

热门推荐 python运用sklearn进行数据拟合和回归

在上一篇讲了最小二乘法实现线性回归的原理,实现方面用的是python的static.optimize中的leastsq求出拟合函数。本篇通过sklearn库中的模块来进行拟合和线性回归,并计算拟合误差。 对于线性回归来说,无论是用什么工具实现,步骤都是大同小异的: 初始化多项式方程 对多项式方程进行多次迭代,通过最小二乘法求出使平方损失函数最小情况下的拟合方程。 对模型预测结果进行评估 调整参数...

继续访问

sklearn-多项式回归

import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import PolynomialFeatures from sklearn.linear_model import LinearRegression #载入数据 data = np.genfromtxt("job.csv",delim...

继续访问

[机器学习与scikit-learn-31]:算法-回归-线性模拟拟合拟合非线性数据-概述

作者主页(文火冰糖的硅基工坊):文火冰糖(王文兵)的博客_文火冰糖的硅基工坊_CSDN博客 本文网址: 目录 第1章 什么是线性与非线性关系 1.1 描述对象 1.2 什么是线性与非线性关系 第2章 数据(分布)的线性与非线性 2.1 什么是线性与非线性数据(拟合、模拟回归) 2.2什么是线性与非线性可分数据(分类、逻辑回归) 2.3 分类问题的拟合表达 第3章 模型的线性与非线性 3.1 线性模型 3.2 特定的非线性模型 3.3 通用的非线性模型:多项式非线性模型(Polyn.

继续访问

1. 常用函数库

  scipy包中的stats模块和statsmodels包是python常用的数据分析工具,scipy.stats以前有一个models子模块,后来被移除了。这个模块被重写并成为了现在独立的statsmodels包。

 scipy的stats包含一些比较基本的工具,比如:t检验,正态性检验,卡方检验之类,statsmodels提供了更为系统的统计模型,包括线性模型,时序分析,还包含数据集,做图工具等等。

2. 小样本数据的正态性检验

(1) 用途

 夏皮罗维尔克检验法 (Shapiro-Wilk) 用于检验参数提供的一组小样本数据线是否符合正态分布,统计量越大则表示数据越符合正态分布,但是在非正态分布的小样本数据中也经常会出现较大的W值。需要查表来估计其概率。由于原假设是其符合正态分布,所以当P值小于指定显著水平时表示其不符合正态分布。

 正态性检验是数据分析的第一步,数据是否符合正态性决定了后续使用不同的分析和预测方法,当数据不符合正态性分布时,我们可以通过不同的转换方法把非正太态数据转换成正态分布后再使用相应的统计方法进行下一步操作。

(2) 示例

(3) 结果分析

 返回结果 p-value=0.029035290703177452,比指定的显著水平(一般为5%)小,则拒绝假设:x不服从正态分布。

3. 检验样本是否服务某一分布

(1) 用途

 科尔莫戈罗夫检验(Kolmogorov-Smirnov test),检验样本数据是否服从某一分布,仅适用于连续分布的检验。下例中用它检验正态分布。

(2) 示例

(3) 结果分析

 生成300个服从N(0,1)标准正态分布的随机数,在使用k-s检验该数据是否服从正态分布,提出假设:x从正态分布。最终返回的结果,p-value=0.9260909172362317,比指定的显著水平(一般为5%)大,则我们不能拒绝假设:x服从正态分布。这并不是说x服从正态分布一定是正确的,而是说没有充分的证据证明x不服从正态分布。因此我们的假设被接受,认为x服从正态分布。如果p-value小于我们指定的显著性水平,则我们可以肯定地拒绝提出的假设,认为x肯定不服从正态分布,这个拒绝是绝对正确的。

4.方差齐性检验

(1) 用途

 方差反映了一组数据与其平均值的偏离程度,方差齐性检验用以检验两组或多组数据与其平均值偏离程度是否存在差异,也是很多检验和算法的先决条件。

(2) 示例

(3) 结果分析

 返回结果 p-value=0.19337536323599344, 比指定的显著水平(假设为5%)大,认为两组数据具有方差齐性。

5. 图形描述相关性

(1) 用途

 最常用的两变量相关性分析,是用作图描述相关性,图的横轴是一个变量,纵轴是另一变量,画散点图,从图中可以直观地看到相关性的方向和强弱,线性正相关一般形成由左下到右上的图形;负面相关则是从左上到右下的图形,还有一些非线性相关也能从图中观察到。

(2) 示例

(3) 结果分析

 从图中可以看到明显的正相关趋势。

6. 正态资料的相关分析

(1) 用途

 皮尔森相关系数(Pearson correlation coefficient)是反应两变量之间线性相关程度的统计量,用它来分析正态分布的两个连续型变量之间的相关性。常用于分析自变量之间,以及自变量和因变量之间的相关性。

(2) 示例

(3) 结果分析

 返回结果的第一个值为相关系数表示线性相关程度,其取值范围在[-1,1],绝对值越接近1,说明两个变量的相关性越强,绝对值越接近0说明两个变量的相关性越差。当两个变量完全不相关时相关系数为0。第二个值为p-value,统计学上,一般当p-value<0.05时,可以认为两变量存在相关性。

7. 非正态资料的相关分析

(1) 用途

 斯皮尔曼等级相关系数(Spearman’s correlation coefficient for ranked data ),它主要用于评价顺序变量间的线性相关关系,在计算过程中,只考虑变量值的顺序(rank, 值或称等级),而不考虑变量值的大小。常用于计算类型变量的相关性。

(2) 示例

(3) 结果分析

 返回结果的第一个值为相关系数表示线性相关程度,本例中correlation趋近于1表示正相关。第二个值为p-value,p-value越小,表示相关程度越显著。

8. 单样本T检验

(1) 用途

 单样本T检验,用于检验数据是否来自一致均值的总体,T检验主要是以均值为核心的检验。注意以下几种T检验都是双侧T检验。

(2) 示例

(3) 结果分析

 本例中生成了2列100行的数组,ttest_1samp的第二个参数是分别对两列估计的均值,p-value返回结果,第一列1.47820719e-06比指定的显著水平(一般为5%)小,认为差异显著,拒绝假设;第二列2.83088106e-01大于指定显著水平,不能拒绝假设:服从正态分布。

9. 两独立样本T检验

(1) 用途

 由于比较两组数据是否来自于同一正态分布的总体。注意:如果要比较的两组数据不满足方差齐性, 需要在ttest_ind()函数中添加参数equal_var = False。

(2) 示例

(3) 结果分析

 返回结果的第一个值为统计量,第二个值为p-value,pvalue=0.19313343989106416,比指定的显著水平(一般为5%)大,不能拒绝假设,两组数据来自于同一总结,两组数据之间无差异。

10. 配对样本T检验

(1) 用途

 配对样本T检验可视为单样本T检验的扩展,检验的对象由一群来自正态分布独立样本更改为二群配对样本观测值之差。它常用于比较同一受试对象处理的前后差异,或者按照某一条件进行两两配对分别给与不同处理的受试对象之间是否存在差异。

(2) 示例

(3) 结果分析

 返回结果的第一个值为统计量,第二个值为p-value,pvalue=0.80964043445811551,比指定的显著水平(一般为5%)大,不能拒绝假设。

11. 单因素方差分析

(1) 用途

 方差分析(Analysis of Variance,简称ANOVA),又称F检验,用于两个及两个以上样本均数差别的显著性检验。方差分析主要是考虑各组之间的平均数差别。

 单因素方差分析(One-wayAnova),是检验由单一因素影响的多组样本某因变量的均值是否有显著差异。

 当因变量Y是数值型,自变量X是分类值,通常的做法是按X的类别把实例成分几组,分析Y值在X的不同分组中是否存在差异。

(2) 示例

(3) 结果分析

 返回结果的第一个值为统计量,它由组间差异除以组间差异得到,上例中组间差异很大,第二个返回值p-value=6.2231520821576832e-19小于边界值(一般为0.05),拒绝原假设, 即认为以上三组数据存在统计学差异,并不能判断是哪两组之间存在差异 。只有两组数据时,效果同 stats.levene 一样。

12. 多因素方差分析

(1) 用途

 当有两个或者两个以上自变量对因变量产生影响时,可以用多因素方差分析的方法来进行分析。它不仅要考虑每个因素的主效应,还要考虑因素之间的交互效应。

(2) 示例

(3) 结果分析

 上述程序定义了公式,公式中,"~"用于隔离因变量和自变量,”+“用于分隔各个自变量, ":"表示两个自变量交互影响。从返回结果的P值可以看出,X1和X2的值组间差异不大,而组合后的T:G的组间有明显差异。

13. 卡方检验

(1) 用途

 上面介绍的T检验是参数检验,卡方检验是一种非参数检验方法。相对来说,非参数检验对数据分布的要求比较宽松,并且也不要求太大数据量。卡方检验是一种对计数资料的假设检验方法,主要是比较理论频数和实际频数的吻合程度。常用于特征选择,比如,检验男人和女人在是否患有高血压上有无区别,如果有区别,则说明性别与是否患有高血压有关,在后续分析时就需要把性别这个分类变量放入模型训练。

 基本数据有R行C列, 故通称RC列联表(contingency table), 简称RC表,它是观测数据按两个或更多属性(定性变量)分类时所列出的频数表。

(2) 示例

(3) 结果分析

 卡方检验函数的参数是列联表中的频数,返回结果第一个值为统计量值,第二个结果为p-value值,p-value=0.54543425102570975,比指定的显著水平(一般5%)大,不能拒绝原假设,即相关性不显著。第三个结果是自由度,第四个结果的数组是列联表的期望值分布。

14. 单变量统计分析

(1) 用途

 单变量统计描述是数据分析中最简单的形式,其中被分析的数据只包含一个变量,不处理原因或关系。单变量分析的主要目的是通过对数据的统计描述了解当前数据的基本情况,并找出数据的分布模型。

 单变量数据统计描述从集中趋势上看,指标有:均值,中位数,分位数,众数;从离散程度上看,指标有:极差、四分位数、方差、标准差、协方差、变异系数,从分布上看,有偏度,峰度等。需要考虑的还有极大值,极小值(数值型变量)和频数,构成比(分类或等级变量)。

 此外,还可以用统计图直观展示数据分布特征,如:柱状图、正方图、箱式图、频率多边形和饼状图。

15. 多元线性回归

(1) 用途

 多元线性回归模型(multivariable linear regression model ),因变量Y(计量资料)往往受到多个变量X的影响,多元线性回归模型用于计算各个自变量对因变量的影响程度,可以认为是对多维空间中的点做线性拟合。

(2) 示例

(3) 结果分析

 直接通过返回结果中各变量的P值与0.05比较,来判定对应的解释变量的显著性,P<0.05则认为自变量具有统计学意义,从上例中可以看到收入INCOME最有显著性。

16. 逻辑回归

(1) 用途

 当因变量Y为2分类变量(或多分类变量时)可以用相应的logistic回归分析各个自变量对因变量的影响程度。

(2) 示例

(3) 结果分析

 直接通过返回结果中各变量的P值与0.05比较,来判定对应的解释变量的显著性,P<0.05则认为自变量具有统计学意义。