线性回归分析:

方法:
import statsmodels.api as sm
import pandas as pd
from patsy.highlevel import dmatrices ----2.7里面是 from patsy import dmatrices
hg ='D:/hg.csv'
df=pd.read_csv(hg)
vars=['rkzzl','zrs','rjgdp']
df=df[vars]
y,X=dmatrices(' rkzzl ~ zrs + rjgdp ',data=df,return_type='dataframe')
mod=sm.OLS(y,X)
res=mod.fit()
print res.summary()

所有代码:

import statsmodels.api as sm
import pandas as pd
import numpy as np
from patsy.highlevel import dmatrices
from common.util.my_sqlalchemy import sqlalchemy_engine
import math
sql = "select Q1R3, Q1R5, Q1R6, Q1R7 from db2017091115412316222027656281_1;"
df = pd.read_sql(sql, sqlalchemy_engine)
df_dropna = df.dropna()
y,X=dmatrices(' Q1R3 ~ Q1R5 + Q1R6 + Q1R7',data=df_dropna,return_type='dataframe')
mod=sm.OLS(y,X)
res=mod.fit()
result = res.summary()
print(result)
model = {
'n': int(res.nobs),
'df': res.df_model,
'r': math.sqrt(res.rsquared),
'r_squared':res.rsquared,
'r_squared_adj': res.rsquared_adj,
'f_statistic': res.fvalue, # F检验
'prob_f_statistic': res.f_pvalue,
}
coefficient = {
'coefficient':list(res.params),
'std': list(np.diag(np.sqrt(res.cov_params()))),
't': list(res.tvalues),
'sig': [i for i in map(lambda x:float(x),("".join("{:.4f},"*len(res.pvalues)).format(*list(res.pvalues))).rstrip(",").split(","))]
}
returnValue = {'model': model, 'coefficient': coefficient}
print(returnValue)

{
'model': {
'df': 3.0,
'n': ,
'prob_f_statistic': 1.185607423551511e-17,
'r_squared_adj': 0.11247707470462853,
'f_statistic': 29.049896130483212,
'r_squared': 0.11648696743939679,
'r': 0.3413018714267427},
'coefficient': {
'std': [0.30170364007280126, 0.049972399035516278, 0.051623405028706125, 0.047659986606566104],
'sig': [0.0, 0.0, 0.0, 0.0312],
't': [5.4578212730306044, 5.3469744215460269, 4.3810228293129168, 2.1587543885465008],
'coefficient': [1.6466445449401035, 0.26720113942619689, 0.22616331595762876, 0.10288620524499202]}
}

python进行数据分析----线性回归的更多相关文章

  1. python进行数据分析

    1.  python进行数据分析----线性回归 2. python进行数据分析------相关分析 3. python进行数据分析---python3卡方 4. 多重响应分析,多选题二分法思路 5. ...

  2. 利用Python进行数据分析(12) pandas基础: 数据合并

    pandas 提供了三种主要方法可以对数据进行合并: pandas.merge()方法:数据库风格的合并: pandas.concat()方法:轴向连接,即沿着一条轴将多个对象堆叠到一起: 实例方法c ...

  3. 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

    概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...

  4. 利用Python进行数据分析(9) pandas基础: 汇总统计和计算

    pandas 对象拥有一些常用的数学和统计方法.   例如,sum() 方法,进行列小计:   sum() 方法传入 axis=1 指定为横向汇总,即行小计:   idxmax() 获取最大值对应的索 ...

  5. 利用Python进行数据分析(8) pandas基础: Series和DataFrame的基本操作

    一.reindex() 方法:重新索引 针对 Series   重新索引指的是根据index参数重新进行排序. 如果传入的索引值在数据里不存在,则不会报错,而是添加缺失值的新行. 不想用缺失值,可以用 ...

  6. 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍

    一.pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主要目的是为了数据分析.它提供了大量高级的数据结构和对数据处理的方法. pandas 有两个主要的数据结构 ...

  7. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  8. 《利用python进行数据分析》读书笔记 --第一、二章 准备与例子

    http://www.cnblogs.com/batteryhp/p/4868348.html 第一章 准备工作 今天开始码这本书--<利用python进行数据分析>.R和python都得 ...

  9. 利用python进行数据分析之绘图和可视化

    matplotlib API入门 使用matplotlib的办法最常用的方式是pylab的ipython,pylab模式还会向ipython引入一大堆模块和函数提供一种更接近与matlab的界面,ma ...

随机推荐

  1. Daemontools和Supervisor管理linux常驻进程

    linux主要使用supervise来管理常驻进程.基于supervise的两个比较重要的工具是Daemontools和Supervisor. 实际上,supervise也算Daemontools的一 ...

  2. C语言发展历程及其保留字(关键字)——附:C语言标准文档

    引言         抽时间对C语言发展历程和C语言的标准库文件及其保留字/关键字做了个梳理,后面附C语言各版本国际标准. C语言发展历程及其标准库 C语言关键字/保留字 C语言国际标准       ...

  3. 每日英语:What You Like Best: Shopping, Food and Tech

    In a year that featured one of history's biggest corporate buyouts, a stock-market surge reminiscent ...

  4. shell(2):传入参数

    $1,$2  分别表示第一个第二个参数 #!bin/sh ref=$1 trans=$2 echo $ref echo $trans

  5. 【电子基础】IIC总线工作原理

    IIC总线工作原理 I2C总线进行数据传送时,时钟信号为高电平期间,数据线上的数据必须保持稳定,只有在时钟线上的信号为低电平期间,数据线上的高电平或低电平状态才允许变化. 起始和终止信号 :SCL线为 ...

  6. 备份Android机上的照片

    [本文出自天外归云的博客园] 一年一度的春节放假开始了,今天收拾柜子发现了一台上大学时候用的android机,里面有几百张当年的回忆. 写了个shell脚本遍历了下照片存放的路径,然后用一个pytho ...

  7. Java 11 将至,不妨了解一下 Oracle JDK 之外的版本

    Java 11 计划于本月,即 9 月 25 日发布.与 Java 10 不同,Java 11 不仅提供了长期支持,还将作为 Java 平台的参考实现.新的长期支持版本每三年发布一次,根据后续的发布计 ...

  8. 基于jQuery左右滑动切换特效

    分享一款基于脚jQuery左右滑动切换特效.这是一款鼠标点击左右箭头按钮图片滚动切换,鼠标移到图片上显示透明边框特效.效果图如下: 在线预览   源码下载 实现的代码. html代码: <div ...

  9. Android 面试知识集2

    继续上一篇文章整理有关Android的基础知识,为面试做准备的可以看看哪些知识是遗漏了.资料都是网上整理来,纠正了一些错误,有部分解析加入个人理解!感谢分享相关知识的开发者.这些知识平常开发的过程中都 ...

  10. 【WPF】修改数据层ViewModel后,UI界面未同步更新

    界面:WPF(MVVM)中将集合类控件ItemsControl的ItemsSource绑定到了ViewModel中的ObservableCollection列表,ItemsControl.ItemTe ...