使用python进行数据清洗及ols回归分析

使用python进行数据清洗及ols回归分析,第1张

概述本文使用jupyter平台进行回归分析,相比pycharm而言,jupyter可分布查看各个步骤结果,能及时发现问题importpandasaspdfrommatplotlibimportpyplotaspltfromsklearn.linear_modelimportLinearRegressionimportstatsmodels.apiassmimportnumpyasnp#1、读取

本文使用jupyter平台进行回归分析,相比pycharm而言,jupyter可分布查看各个步骤结果,能及时发现问题

import pandas as pdfrom matplotlib import pyplot as pltfrom sklearn.linear_model import linearRegressionimport statsmodels.API as smimport numpy as np# 1、读取数据df = pd.read_csv("2021-2-7all_year.csv")df.head()df.shape# 2、数据预处理# 2.1 缺失值处理df['是否套期(年报)'] = df['是否套期(年报)'].fillna(value=0)  # 缺失值用0填充df = df.dropna(subset=["托宾q","是否套期(年报)",'是否套期(公告)','ln_资产总计','资产负债率','营业收入增长率A','速动比率','股权集中度'])  # 删除缺失数据速动比率# 2.2数值变换df['ln_资产总计'] =np.log(df['资产总计'].values+1) # 变换log类型df['股权集中度'] = df['股权集中指标4(%)']*0.01 #将百分数变为小数df.describe()  # 做描述统计df.info()    # 统计数据类型及个数# 2.3数值类型变换# df = pd.DataFrame(df,dtype=np.float)df['托宾q']=pd.to_numeric(df['托宾q'],errors='coerce')  # 2.4.1转换数值类型为floatdf['托宾q'].dtypedf['风险因子_流通市值加权_Beta_TMV']=pd.to_numeric(df['风险因子_流通市值加权_Beta_TMV'],errors='coerce')df['风险因子_流通市值加权_Beta_TMV'].dtypedf.describe()# 2.4 异常值处理# 绘制箱线图(1.5倍的四分位差,如需绘制3倍的四分位差,只需调整whis参数)plt.Boxplot(x=df['托宾q'])plt.show()df.info()# 3.模型搭建 x = df[['是否套期(年报)','ln_资产总计','资产负债率','营业收入增长率A','速动比率','股权集中度']]y = df['托宾q']estimator = linearRegression().fit(x,y)y_pre = estimator.predict(x)# 4.线性回归方程的构造print('系数a:'+str(estimator.coef_))print('系数b:'+str(estimator.intercept_))# 5模型评估-olsX = sm.add_constant(x)est = sm.olS(y,X).fit()# result = est.fit()est.summary()

回归分析的关键在于数据处理,要充分利用df.info()以及df.describe()函数,观察数据类型、异常值、缺失值等,进一步做处理

总结

以上是内存溢出为你收集整理的使用python进行数据清洗及ols回归分析全部内容,希望文章能够帮你解决使用python进行数据清洗及ols回归分析所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1189087.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-03
下一篇 2022-06-03

发表评论

登录后才能评论

评论列表(0条)

保存