Python 之多元线性回归分析

数据预处理

使用pandas进行数据预处理

本文使用的数据处理工具为pandas,其提供了对excel文件,csv文件的高效处理,操作简单。
‘’’

def read_excel(path, save=False):# 读取excel 文件data = pd.read_excel(path, index_col=[])# 读取csv 文件data = pd.read_csv(path, index_col=[])# 获取特定的columnsdata = data[['c1', 'c2', 'c3', ...,'cn']]# 将获取的文件保存为excel 格式,或者其他的格式csv等。if save:data.to_excel("d.xlsx", index=False)# 将文件保存为csv格式的其他方法:numpy.savetxt(path, data, delimiter=',', header="x1", fmt='%f', comments='')# 丢弃选取的列的方法,dropdata = data.drop(columns = ['c1','c2','c3']# 添加一列的方法 insert (index, new_data)col_name = data.columns.tolist()  # 获取原始的列名称col_name.insert(6, 'column_name')  # 选择要插入的位置和列名称data = data.reindex(columns=col_name)  # 刷新列名称data1['column_name'] = new_data # 插入数据

多元线性回归分析库

常见的线性回归库

linearmodels.panel.PanelOLS,sklearn.linear_model.LinearRegression,statsmodels.api.OLS
这些都是可以执行多元线性回归分析的库。本例子中,使用linearmodels.panel.PanelOLS。

# y是因变量,x是自变量,可以为多元的形式,选取需要的列名称输入即可。
entry1 = PanelOLS(y, x, entity_effects=False, time_effects=False, check_rank=False, drop_absorbed=False)# 自变量的获取
import statsmodels.api as sm
x = sm.add_constant(data.iloc[:, columns_you_need])
# columns_you_need 表示那些你需要的列,可以使用np.hstack((index1,index2))进行组装获得。add_constant表示需要考虑多元线性回归中的常数项。

固定效应如何添加

报错之 ValueError: DataFrame input must have a MultiIndex with 2 levels

在使用固定效应的时候,需要创建一个二级的联合索引。联合索引的第一个是实体维度,第二个是时间维度。

报错值 TypeError: ufunc ‘isnan’ not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule ‘‘safe’’

这里估计是创建了一个新的列,但是没有为它设置索引,导致在使用函数isnan的时候会出现数据格式检查有问题的情况。

固定效应的添加

使用PanelOLS包提供的工具

‘’’

from linearmodels.panel import
model = PanelOLS(y, x, entity_effects=True, time_effects=False, check_rank=False, drop_absorbed=True)
# entity_effects=True表示使用固定效应。

‘’’

固定效应和2-level中的索引的关系

在使用固定效应的时候,有时候并不能同时开启行业控制。会出现列丢失的情况。AbsorbingEffectWarning:
Variables have been fully absorbed and have removed from the regression。

题主崔对此进行了实验发现,如果将行业作为2-level index 的时候,在开启行业控制和固定效应的同时,会丢弃掉行业控制。这可能是因为固定效应本身就为你考虑了行业控制?

同时,如果2-level index 中的第一个索引(实体索引)不是行业控制的变量的话,那么就可以同时开启行业控制,年度控制和固定效应。因此,题主得出的结论是,如果2-level index 中的实体索引和时间索引如果同时是行业控制和年度控制中相关的列,那么就会出现丢弃列的情况,因为开启固定效应就表示帮你控制了实体列的变量,同时,开启时间控制的话,就表示帮你控制了时间列的变量。而此时如果实体变量列又是你的行业控制的话,那么就会出现重复的情况,会出现丢弃。同理,如果时间变量列又是你的年度控制的话,那么开启时间控制的同时又加入年度控制的话,同样会出现丢弃的情况。

年度控制和行业控制如何添加

何为年度控制和行业控制

一般来说,存在着解释变量和控制变量,解释变量与控制变量都是作为自变量放在方程的右边,二者为了突出研究的问题进行了区分。解释变量是指着重研究的自变量,是研究者重点考查对因变量有何影响的变量。而控制变量是指与特定研究目标无关的非研究变量,即除了研究者重点研究的解释变量和需要测定的因变量之外的变量,是研究者不想研究,但会影响研究结果的,需要加以考虑的变量。 http://blog.sciencenet.cn/blog-334577-426759.html

也就是说,我们将控制变量也当成变量进行回归,例如,将行业也加入到回归中,就表示行业控制。那么怎么加?将所有的行业名称作为新的列添加到原始数据中,该列的数值取值为0或者1,如果该行数据的原始控制变量和列名称一致,则取值1,否则为0。这样就将该控制变量也考虑到回归中。

# 年度控制和行业控制的添加很简单,只需要使用下列函数即可。
data = pd.get_dummies(data=data, columns=['ind', 'year'])# 单独的行业控制
data = pd.get_dummies(data=data, columns=['ind'])# 单独的年度控制
data = pd.get_dummies(data=data, columns=['year'])#之后,将生成的列也添加到线性回归中进行分析即可。pd.get_dummies会自动帮你生成需要的列。

Python 之多元线性回归分析相关推荐

  1. 基于Python的多元线性回归分析

    一.多元线性回归分析(Multiple regression) 1.与简单线性回归相比较,具有多个自变量x 2.多元回归模型 其中是误差值,与简单线性回归分析中的要求特点相一致.其余的系数和截距为参数 ...

  2. 用Python进行多元线性回归分析(附代码)

    https://developer.51cto.com/art/202008/624683.htm 很多人在做数据分析时会经常用到一元线性回归,这是描述两个变量间统计关系的最简单的回归模型.但现实问题 ...

  3. python多元线性回归实例_关于多元线性回归分析——PythonSPSS

    原始数据在这里 1.观察数据 首先,用Pandas打开数据,并进行观察. import numpy import pandas as pd import matplotlib.pyplot as pl ...

  4. python数据导入spss_关于多元线性回归分析——PythonSPSS

    原始数据在这里 1.观察数据 首先,用Pandas打开数据,并进行观察. import numpy import pandas as pd import matplotlib.pyplot as pl ...

  5. Python 散点图线性拟合_机器学习之利用Python进行简单线性回归分析

    前言:在利用机器学习方法进行数据分析时经常要了解变量的相关性,有时还需要对变量进行回归分析.本文首先对人工智能/机器学习/深度学习.相关分析/因果分析/回归分析等易混淆的概念进行区分,最后结合案例介绍 ...

  6. 5.1 多元线性回归分析

    在本章中,我们将从线性回归模型开始,它是最简单的模型之一. 数据集来自于UIC数据集中的能效数据集,该数据及用来分析建筑的供热负荷能效和制冷负荷能效,其中自变量有8个,因变量有两个,实例主要分析8个自 ...

  7. 【数学建模】多元线性回归分析

    多元线性回归分析 概念 目的:作出以多个自变量估计因变量的多元线性回归方程. 资料:因变量为定量指标:自变量全部或大部分为定量指标,若有少量定性或等级指标需作转换. 用途:解释和预报. 意义:由于事物 ...

  8. 多元线性回归matlab代码_医学统计|多元线性回归分析

    回归分析的定义:回归分析是确定两种或两种以上变量间相互依赖的定量关系的一种统计分析方法.运用十分广泛.其表达形式为y = w'x+e,e为误差服从均值为0的正态分布.回归分析中,只包括一个自变量和一个 ...

  9. 数学建模-7.多元线性回归分析

    多元线性回归分析 回归分析是数据分析中最基础也是最重要的分析工具,绝大多数的数据分析问题,都可以使用回归的思想解决 回归分析的任务:通过研究自变量X和因变量Y的相关关系(注意相关性≠因果性),尝试解释 ...

  10. 数学建模暑期集训6:用SPSS对数据进行多元线性回归分析

    在本专栏的第六篇数学建模学习笔记(六)多元回归分析算法(matlab)博文中,记录了如何用matlab进行多元回归分析.本篇则将使用spss软件达到同样的效果,且使用起来比matlab更为方便. 空谈 ...

最新文章

  1. CSS基础知识(颜色、伪类、盒子模型)
  2. linux触摸屏两指缩放_自定义TextView实现单指拖动,双指缩放旋转
  3. Android Tcp操作
  4. 快速保留小数点后面几位(转)
  5. 一些杂七杂八的前端知识1
  6. [HTTP] HTTP消息
  7. java发邮件的框架_Java的Spring框架中实现发送邮件功能的核心代码示例
  8. objective-c 关键字和概念
  9. Java之品优购课程讲义_day06(1)
  10. 基于 Flink 打造的伴鱼实时计算平台 Palink 的设计与实现
  11. 华为NP课程笔记9-BGP 3
  12. 周杰伦的歌里都有些啥?
  13. Error: Failed to launch the browser process!
  14. 3.计蒜客ACM题库.A1597 结果填空:年龄
  15. 计算机网络ap参数,酒店计算机网络(含无线AP)系统主要技术参数.docx
  16. 小程序图片底部留白问题
  17. 快速将PDF转换为图片:免费的在线PDF转换器
  18. Fastapi swagger-ui.css 、swagger-ui-bundle.js 无法加载
  19. ffmpeg录制视频时添加时间水印
  20. 我写了一个套路,助你随心所欲运用二分搜索

热门文章

  1. python怎么加字幕_使用moviepy为电影添加字幕
  2. 直角三角公式计算机,直角三角形中的一些常用公式.
  3. 嵌入式怎么入门,嵌入式应该先学习什么
  4. 协同软件解决方案集合
  5. 本机ip地址、本机DNS查询工具地址
  6. Python 流程控制
  7. 蓝牙SBC开发笔记(一)
  8. word2013、word2016、word2019标题序号变黑色竖线解决方法
  9. 京都计算机学院放假时间表,2018年官方放假安排时间一览表
  10. 常见的十大恶意软件类型