Python统计分析库statsmodels的OLS
来源:互联网 发布:流燕抢票软件下载 编辑:程序博客网 时间:2024/06/06 04:13
statsmodels库官方文档http://www.statsmodels.org/stable/,里面包含很多统计模型和相应计算结果;一些Linear Regression Models例子http://www.statsmodels.org/stable/examples/index.html#regression
下面主要陈述常用的回归分析中的OLS:Ordinary Least Squares。
给定
用
其中
这里将常数项并入
对上述
statsmodels.OLS 的参数有endog, exog, missing, hasconst等 ,现在只考虑前两个。
第一个输入 endog 是回归模型中的因变量
通常,我们使用的数据集的
import pandas as pd # 读取数据到DataFrameimport urllib # 获取网络数据import shutil # 文件操作import zipfile # 压缩解压import os# 建立临时目录try: os.system('mkdir bike_data')except: os.system('rm -rf bike_data; mkdir bike_data')data_source = 'http://archive.ics.uci.edu/ml/machine-learning-databases/00275/Bike-Sharing-Dataset.zip' # 网络数据地址zipname = 'bike_data/Bike-Sharing-Dataset.zip' # 拼接文件和路径urllib.request.urlretrieve(data_source, zipname) # 获得数据zip_ref = zipfile.ZipFile(zipname, 'r') # 创建一个ZipFile对象处理压缩文件#zip_ref.extractall(temp_dir) # 解压zip_ref.extractall('bike_data')zip_ref.close()daily_path = 'bike_data/day.csv'daily_data = pd.read_csv(daily_path) # 读取csv文件daily_data['dteday'] = pd.to_datetime(daily_data['dteday']) # 把字符串数据传换成日期数据drop_list = ['instant', 'season', 'yr', 'mnth', 'holiday', 'workingday', 'weathersit', 'atemp', 'hum'] # 不关注的列daily_data.drop(drop_list, inplace = True, axis = 1) # inplace=true在对象上直接操作daily_data.head() # 看一看数据~
import statsmodels.api as sm #最小二乘from statsmodels.stats.outliers_influence import summary_table #获得汇总信息
x=sm.add_constant(daily_data['temp'])#线性回归增加常数项 y=kx+by=daily_data['cnt']regr=sm.OLS(y,x)res=regr.fit()
st, data, ss2 = summary_table(res, alpha=0.05) #置信水平alpha=5%,st数据汇总,data数据详情,ss2数据列名fitted_values = data[:,2] #等价于res.fittedvalues
res.model.endog ==y.values #拟合回归模型的endog值就是因变量y
res.fittedvalues #获取拟合y值
res.params #拟合回归模型参数res.params[0]+res.params[1]*daily_data['temp']==res.fittedvalues #验证二维回归模型的拟合y值计算原理
总结下,常用的OLS模型模板
import statsmodels.api as sm # 最小二乘from statsmodels.stats.outliers_influence import summary_table # 获得汇总信息x = sm.add_constant(daily_data['temp']) # 线性回归增加常数项 y=kx+by = daily_data['cnt']regr = sm.OLS(y, x) # 普通最小二乘模型,ordinary least square modelres = regr.fit() #res.model.endog# 从模型获得拟合数据st, data, ss2 = summary_table(res, alpha=0.05) # 置信水平alpha=5%,st数据汇总,data数据详情,ss2数据列名fitted_values = data[:,2] #等价于res.fittedvalues
以上内容参考statsmodels官网和pip install的源码
阅读全文
0 0
- Python统计分析库statsmodels的OLS
- statsmodels 的result classes
- python中如何查看statsmodels相关知识
- 统计处理包Statsmodels: statistics in python
- python处理时序模型之StatsModels
- Windows下Python安装numpy+mkl,Scipy和statsmodels
- 关于python包不能安装问题(statsmodels、sklearn、matplotlib)
- 用python进行统计分析
- 压缩感知重构算法之OLS算法python实现
- statsmodels笔记
- 最小二乘法OLS
- 统计分析的体会
- Oracle的统计分析方法
- 统计分析工具的作用
- 统计分析工具的基本要求
- 数据的统计分析
- 使用python统计建模和计量经济学工具包Statsmodels进行线性回归
- 机器学习之线性回归:OLS 无偏估计及相关性python分析
- CentOS下Maven安装
- Spring AOP从入门到放弃之概念以及Spring Boot AOP demo
- 全局异常捕获
- 问题 H: B C++时间类的运算符重载
- sparql第一章第一节
- Python统计分析库statsmodels的OLS
- Springmvc学习(07)-文件上传
- 杂七杂八
- 出现( linker command failed with exit code 1)错误总结
- redispubsub
- centos7.3火狐浏览器安装flash失败后安装goole浏览器
- CGI、FastCGI和PHP-FPM关系图解
- 658. Find K Closest Elements
- Tensorflow Day19 Denoising Autoencoder