怎么利用pandas做数据分析

Python012

怎么利用pandas做数据分析,第1张

Pandas是Python下一个开源数据分析的库,它提供的数据结构DataFrame极大的简化了数据分析过程中一些繁琐操作。

1. 基本使用:创建DataFrame. DataFrame是一张二维的表,大家可以把它想象成一张Excel表单或者Sql表。Excel 2007及其以后的版本的最大行数是1048576,最大列数是16384,超过这个规模的数据Excel就会弹出个框框“此文本包含多行文本,无法放置在一个工作表中”。Pandas处理上千万的数据是易如反掌的sh事情,同时随后我们也将看到它比SQL有更强的表达能力,可以做很多复杂的操作,要写的code也更少。

说了一大堆它的好处,要实际感触还得动手码代码。首要的任务就是创建一个DataFrame,它有几种创建方式:

(1)列表,序列(pandas.Series), numpy.ndarray的字典

二维numpy.ndarray

别的DataFrame

结构化的记录(structured arrays)

(2)其中,二维ndarray创建DataFrame,代码敲得最少:

import pandas as pd

import numpy as np

df = pd.DataFrame(np.random.randn(10, 4))

df

0 1 2 3

0 0.927474 0.127571 1.655908 0.570818

1 -0.425084 -0.382933 0.468073 -0.862898

2 -1.602712 -0.225793 -0.688641 1.167477

3 -1.771992 -0.692575 -0.693494 -1.063697

4 -0.456724 0.371165 1.883742 -0.344189

5 1.024734 0.647224 1.134449 0.266797

6 1.247507 0.114464 2.271932 -0.682767

7 -0.190627 -0.096997 -0.204778 -0.440155

8 -0.471289 -1.025644 -0.741181 -1.707240

9 -0.172242 0.702187 -1.138795 -0.112005

(3)通过describe方法,可以对df中的数据有个大概的了解:

df.describe()

0 1 2 3

count 10.000000 10.000000 10.000000 10.000000

mean -0.189096 -0.046133 0.394722 -0.320786

std 1.027134 0.557420 1.258019 0.837497

min -1.771992 -1.025644 -1.138795 -1.707240

25% -0.467648 -0.343648 -0.692281 -0.817865

50% -0.307856 0.008734 0.131648 -0.392172

75% 0.652545 0.310266 1.525543 0.172096

max 1.247507 0.702187 2.271932 1.167477

2. 改变cell。

3. group by。

4. 读写文件。

正文共: 4314字 54图

预计阅读时间: 11分钟

嘿喽,我是则已。这是stata的第五期学习。

前面学习了聚类分析、ols回归分析。今天来学习:回归检验。学到这里,恭喜你,你已经对最基本回归分析整个流程都走了一遍。接下来涉及的非线性回归,Logit回归,因变量受限回归,时间序列分析,面板数据分析都与最基本的回归方法有一些联系。

划线部分是自己要研究的变量。

回归检验

前面我们学习了最小二乘回归,这种回归方法简单并且满足我们大部分的研究需要,但是能进行这种回归的前提是有条件的:变量无异方差,变量无自相关,变量无多重共线性。 所以在进行回归之后我们要检验一下数据是否存在这样的问题,如果存在了,我们要进行处理之后再进行一次最小二乘回归分析。本回归检验包含三部分:异方差检验与应对、自相关检验与应对、多重共线性检验与应对。 01 异方差检验与应对 能进行回归分析的一个基本假设:因变量的方差不随自身预测值和其他自变量的值变化而改变。但是如果在回归时不满足这个假设条件,就会出现异方差的情况。常用来判断是否出现异方差的检验办法有:绘制残差序列图、怀特检验、BP检验 解决出现异方差的的方法有:使用标准差进行回归、使用加权最小二乘回归分析方法进行回归。 首先对数据进行描述性分析,看看数据特征: summarize V1 V2 V3 V4 V5,detail

结果分析:描述性分析可以进行简单的数字分析,也可以进行比较仔细地数字分析,这里进行的是比较详细的分析,故加了detail。进行描述性分析是为了看看样本中是否存在极端的数据,看看极大值、极小值,还有数据之间是不是差距过大。 数据整体不错,进行下一步相关性分析:correlate V1 V2 V3 V4 V5

结果分析:大家可以发现在回归前数据必定会进行描述性分析和相关性分析,进行相关性分析是为了看看变量之间有没有关系。可以看出它们的关系还是可以接受的。 进行回归分析:regress V1 V2 V3 V4 V5

结果分析:F值为437.69,P值为0可以看出模型是非常显著的。R-squared超过了92%说明模型解释能力近乎完美的。但是V5的P值是0.518,比较不显著的。由下表Coef、cons可以得到该模型的方程式: V1=0.7203941V2+0.4363412V3+0.426517V4-0.2198884V5+0.3897354 获取方差和协方差矩阵:vce

结果分析:自变量方差和协方差都不大。 检验各个变量系数的显著性:test V2 V3 V4 V5

结果分析:发现自变量联合系数检验是非常显著的。通过了假设检验。 预测因变量的拟合值和残差: predict yhat predict e,resid

以上回归步骤操作完毕,下面我们来进行检验是否存在异方差,绘制残差与因变量的散点图:rvfplot

图形分析:Fitted values指回归得到的拟合值,Residuals指残差。可以看出,残差随着拟合值的不同而不同,尤其是在4-8,变动那是相当剧烈。,同一个拟合值对应非常多残差。所以存在一定异方差。 再来看看残差与自变量的散点图: rvpplot V2

结果分析:还是可以看到残差在0-4的波动还是比较剧烈的。数据还是存在一定的异方差。 绘制残差序列图只是比较粗略的看到是否存在异方差,为了精确测量,应该使用怀特检验:estat imtest,white

结果分析:怀特检验的原假设:数据是同方差,不存在异方差。我们观察P值为0是非常显著地拒绝了原假设,P值越小越拒绝,所以我们认为数据存在严重的异方差的。 下面我们用BP检验:estat hettest,iid

BP检验有很多方法,上面用的是得克尼克值来检验的。 也可以用方程右边的解释变量来解释异方差:estat hettest,rhs iid

也可以指定变量来进行BP检验:estat hettest V2,rhs iid

结果解释:BP检验的原假设也是:数据是同方差,不存在异方差。 既然我们已经发现了数据存在异方差,我们必须重新回归一次。 使用稳健性标准差对数据进行回归:regress V1 V2 V3 V4 V5,robust

结果分析:可以看出模型的F值是175.79,P值是0,模型也是非常显著的。R值也是超过92%,说明模型的解释力度很强。同时也可以得到模型的方程式,特别是V5的P值减,显著性得到一定的提高。可见我们利用稳健性标准差进行回归取得了一定的效果。 试试另外一种:使用加权平均数最小二乘回归分析来解决数据的异方差性:reg V1-V5

先删除第一回归分析预测的残差e,并重新进行预测e,然后进行平方变换: drop e predict e,resid gen ee=e^2 在残差进行平方变换的基础上再进行取对数: gen lnee=ln(ee) 再进行一次回归:reg lnee V2,nocon

删除掉第一次回归预测的拟合值,并重新预测拟合值: drop yhat predict yhat 对预测的拟合值进行指数变换:gen yhatthat=exp(yhat)

最后进行加权最小二乘回归分析:reg V1 V2 V3 V4 V5[aw=1/yhatthat]

结果分析:模型的F值,P值及R方值都得到了很大程度的提高。这就是我们使用加权最小二乘回归分析得到模型的改善效果。

02 自相关检验与应对 自相关性指随机误差项的各期望值之间存在相关关系,引起自相关性的原因有很多:经济变量惯性作用、经济行为的滞后性等。自相关性会使T检验不再显著,模型的预测功能失效。判断存在方法:绘制残差序列图,BG检验,Box-Pierce检验,DW检验。 解决自相关的方法:自相关异方差稳健的标准差进行回归、使用广义最小二乘回归分析方法进行回归。

跟上面一样,先进行描述性分析,相关性分析,回归分析,获取方差和协方差矩阵,检各个变量系数显著性,预测模型拟合值和残差。

由于自相关性往往出现在时间序列数据,故对这类数据进行分析还需要添加一些额外步骤: 首先对时间序列数据进行定义: tsset month

结果分析:把整个数据的变量定义为以月为周期的时间序列数据。 绘制残差滞后一期的散点图:scatter e l.e

结果分析:l.e指残差数据滞后一期,如要残差数据滞后两期则是l2.e。可以看到数据之间存在正相关的关系,即它y轴随着纵轴的数据变大。 如要更精致的图,我们可以绘制残差的自相关图,探索一下它的自相关阶数: ac e

结果分析:横轴表示滞后的阶数lag,阴影部分表示95%的自相关置信区间。阴影部分之外,表示自相关系数显著不为0。例如:从左往右第一条竖线的在阴影之外表示一阶自相关系数显著不为零。所以说数据主要存在一阶自相关。 我们也可以绘制一下偏自相关图:pac e

结果分析:从这个偏自相关图,同样可以看出这个一阶自相关。 还可以用BG检验自相关性:estat bgodfre

结果分析:BG检验的原假设是:数据没有自相关性。可以看到P值远远小于0.05,所以显著拒绝了原假设。即数据存在自相关。 还可以用BPQ假设检验自相关:wntestq e

结果分析:BPQ检验的原假设也是:数据不存在自相关。可以看出是显著拒绝了原假设的。 还可以用DW检验:estat dwatson

结果分析:DW检验的原假设是数据没有自相关的值正好等于2。我们的数据是0.35,所以远远小于2,存在正自相关。 既然已经知道了存在自相关性,我们要设法改进模型。 异方差稳健的标准差对数据进行重新回归分析,首先确定异方差稳健的标准差进行回归之后的阶数:di 49^0.25

结果分析:这个阶数是样本个数的0.25次幂,所以确定了阶数是3。 再进行异方差自相关稳健性的标准差分析:newey profit asset,lag(3)

结果分析:利用确定因变量profit,自变量asset,阶数3来进行分析。我们可以看到模型是非常显著的。 可以使用广义的最小二乘回归分析方法来解决数据的异方差,corc估计法: prais profit asset,corc

结果分析:怎么看还是和前面一样。特别的,我们看到最后那两行,发现DW的值由0.35变化到了1.92,基本上接近了2。所以模型消除了自相关。 广义的最小二乘估计法去解决异方差问题,还有pw估计法: prais profit asset,nolog

结果分析:同样的,pw估计方也是DW检验值接近2,基本上消除了自相关性。

03 多重共线性检验与应对 多重共线性指如果某自变量能够被其他自变量通过线性组合得到,则存在严重的多重共线性。若一个自变量能被其他自变量解释,则存在相近的多重共线性。多重共线性会导致系数估计不准确,使部分系数的显著性很弱。 解决多重共线性的方法有两种:剔除不显著的变量、进行因子分析提取相关性较弱的几个主因子

跟上面一样,先进行描述性分析,相关性分析,回归分析。

结果分析:注意我们回归全是自变量,看到回归分析后的结果,这些自变量的系数P值都大于0.05,说明系数存在不显著的问题,判断数据可能存在多重共线性。 进行多重共线性检验:estat vif

结果分析:vif指方差膨胀因子,方差膨胀因子和合理值是10以内,可看出我们的结果是41.77, 所以存在较高的多重共线性。 剔除较高的V5,重新进行回归:regress V2 V3 V4 V6

再进行多重共线性检验:estat vif

结果分析:可以发现V6方差因子值较大。但是整体的方差值降到10.85,得到很大的改善。 再剔除V6,回归并检验: regress V2 V3 V4 estat vif

结果分析:可以看出膨胀因子变成1,多重共线性得到很大改善。不过看到V4的回归系数显著性不是很好。 试试删除V4再进行回归检验: regress V2 V3 estat vif

结果分析:模型的解释能力R方值、模型的显著性都近乎完美。所以V3是最能解释V1的变量。 还可以用因子分析来检验模型的多重共线性:factor V3 V4 V5 V6,pcf

结果分析:可以看出只保留了一个主成因子,这个因子特征值和解释力度都很大。 提取公因子变量:predict f1

回归分析:reg V2 f1

vif检验:vif

结果分析:可以看出多重共线性没了。模型中各个系数的值也是非常显著的。

今天学习了回归检验,它是在对回归之后的模型进行检验的方法。主要涉及异方差检验,自相关性检验,多重共线性检验。一旦数据出现这些问题:前两个问题可以通过绘制图形大致了解是否存在,后一个问题只要在回归之后分析各自变量的系数的P值来判断是否显著从而判断出数据是否存在。解决它们的方法多种多样,根据自己的需要选择适当方法。好啦,今天的学习到这里!如果有什么不懂,或者需要软件和教学资源请到后台联系我。

- End -

“如果喜欢这期内容 那么请关注我吧”

r 语言dw检验诊断序列的自相关性

好的铁观音一般多少钱一斤

精选推荐

广告

R语言使用lm函数构建线性回归模型、使用lrtest包的dwtest函数执行残差自相关检验Durbin–Watson检验(Autocorrelation Durbin–Watson Test)

487阅读·0评论·0点赞

2022年7月11日

自相关性的诊断以及修正方法r语言代码

2.3W阅读·14评论·21点赞

2015年10月13日

R语言:相关性分析检验

964阅读·1评论·0点赞

2022年10月3日

违背基本假设的几种情况——自相关性(R语言)

4398阅读·0评论·8点赞

2019年1月20日

r语言确定最优滞后阶数_计量经济学与R语言(四)自相关

3061阅读·0评论·0点赞

2020年12月8日

r语言 相关性作图_R语言学习指南(6) 初探相关性热图

7649阅读·0评论·3点赞

2020年12月24日

高清播放机,图片大全,点击查看详情!

精选推荐

广告

r语言实现自相关分析和偏相关分析

1.4W阅读·0评论·6点赞

2020年8月6日

R语言--数据挖掘7--预测性建模:线性回归

3830阅读·0评论·4点赞

2021年5月10日

异方差与R语言实践

1.1W阅读·8评论·10点赞

2020年3月23日

R语言与回归分析几个假设的检验

3.9W阅读·3评论·12点赞

2012年11月10日

r语言相关性分析_R语言 相关性分析与检验

4473阅读·0评论·4点赞

2020年12月8日

R语言使用lm函数构建线性回归模型、使用lrtest包的dwtest函数执行残差自相关检验Durbin–Watson检验、使用acf函数执行自相关的可视化检验

401阅读·0评论·0点赞

2022年9月12日

DW(德宾-沃森)统计量临界值表

12.7W阅读·2评论·5点赞

2015年12月9日

学习R过程中的一些小总结

257阅读·0评论·0点赞

2020年3月22日

【零基础Eviews实例】02自相关(序列相关)的检验与修正

4.7W阅读·10评论·49点赞

2020年12月4日

R语言之违背基本假设的几种情况xt4.13

5549阅读·3评论·24点赞

2020年11月2日

检验杜宾 瓦森检验法R语言_回归分析 | R语言回归算法、模型诊断

1527阅读·0评论·1点赞

2020年12月23日

R语言使用lm函数构建线性回归模型、使用lrtest包的dwtest函数执行残差自相关检验Durbin–Watson检验、设置alternative参数为two.sided执行双边检验是否存在负自相关

28阅读·0评论·0点赞

2022年8月24日

moran指数 r语言_使用R进行空间自相关检验

3592阅读·0评论·4点赞

2020年12月21日

R语言使用lm函数构建线性回归模型、使用car包中的oulierTest函数识别样本数据中可能的离群值( identify possible outliers)

319阅读·0评论·0点赞

2022年7月11日

去首页

看看更多热门内容

1)在学多元回归分析,我会先去搜集用SPSS软件实现的相关书籍,选择了张文彤老师的书籍《张文彤SPSS初中级教程》、《张文彤SPSS高级教程》等。

2)在学时间序列分析的时候,会去找EVIEWS软件的书籍,张晓峒老师的《计量经济学软件EViews使用指南》。

3)在学面板数据分析的时候,EVIEWS和STATA的相关书籍,陈强老师的《高级计量经济学及STATA应用》。

4)在学机器学习相关的内容的时候,会去找R语言软件的书籍,吴喜之老师《复杂数据统计方法——基于R的应用》等等。工具类书籍有一个好处,就是提供给我们诸多的案例与算法示例,跟着工具书走一遍,就相当于一道证明题跟着书籍证明了一遍,在流程中掌握更多细节。另外,网络学习资源丰富,这里可以给大家推荐一些,经管之家是一个学习统计计量的好去处,很多人会在其中交流自己的心得以及疑问,很多坛友也都见解独到,让人耳目一新,有利于拓展思路。还有一些网站也比较有特色,小木虫、经济学家、科学网等,预测者网有比较多的股市数据给出的指标还是挺全面的。中文互联网数据资讯中心有比较多的当下热门的网络资讯信息与报告,还有一些大城市除了统计局还有自己的数据服务网,譬如上海市政府数据服务网。