python进行数据分析----线性回归

线性回归分析:

方法:
    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,
                ‘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‘: 665,
            ‘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]}
}
时间: 2024-10-12 12:07:31

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

python的数据分析的学习方法

python数据分析的要求并不是软件开发的要求,确实,对于一门工具,不同目的的使用者,需要的技能是不一样的,比如刀这个工具,屠夫用它是杀猪的,厨师用它是切菜的,军人用它是保家卫国的,客人用它是切牛排的,每个人用的方式都不一样,对于刀的掌握方法都有特定的要求. python数据分析,就如同学excel做数据分析一样,都是从了解python如何打开使用,如何在里面处理数据,如何筛选数据,如何统计分析,如何图表展示.python只是工具,关键还是处理问题的思维方法.我们学习python的目的不是为了写

利用python进行数据分析--(阅读笔记一)

以此记录阅读和学习<利用Python进行数据分析>这本书中的觉得重要的点! 第一章:准备工作 1.一组新闻文章可以被处理为一张词频表,这张词频表可以用于情感分析. 2.大多数软件是由两部分代码组成:少量需要占用大部分执行时间的代码,以及大量不经常执行的“粘合剂代码”. cython已经成为python领域中创建编译型扩展以及对接c/c++代码的一大途径. 3.在那些要求延迟性非常小的应用程序中(例如高频交易系统),为了尽最大可能地优化性能,耗费时间使用诸如C++这样更低级.更低生产率的语言进行

《利用python进行数据分析》

今天开始码这本书--<利用python进行数据分析>.R和python都得会用才行,这是码这本书的原因.首先按照书上说的进行安装,google下载了epd_free-7.3-1-win-x86.msi,译者建议按照作者的版本安装.

利用python进行数据分析——(一)库的学习

总结一下自己对python常用包:Numpy,Pandas,Matplotlib,Scipy,Scikit-learn 一. Numpy: 标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指 针.这样为了保存一个简单的[1,2,3],需要有3个指针和三个整数对象.对于数值运算来说这种结构显然比较浪费内存和CPU计算时间. 此外Python还提供了一个array模块,array对象和列表不同,它直接保存数值,和

《利用Python进行数据分析》.(Wes McKinney).[PDF].pdf

下载地址:网盘下载 内容简介  · · · · · · [名人推荐] "科学计算和数据分析社区已经等待这本书很多年了:大量具体的实践建议,以及大量综合应用方法.本书在未来几年里肯定会成为Python领域中技术计算的权威指南." --Fernando Pérez 加州大学伯克利分校 研究科学家, IPython的创始人之一 [内容简介] 还在苦苦寻觅用python控制.处理.整理.分析结构化数据的完整课程?本书含有大量的实践案例,你将学会如何利用各种Python库(包括NumPy.pan

PYTHON学习(三)之利用python进行数据分析(1)---准备工作

学习一门语言就是不断实践,python是目前用于数据分析最流行的语言,我最近买了本书<利用python进行数据分析>(Wes McKinney著),还去图书馆借了本<Python数据分析基础教程--NumPy学习指南>(第二版),准备将python数据分析工具的门给入了哈哈,闲话少说,直接切入正题. 首先<利用python进行数据分析>此书的译者强烈建议计算机环境的配置最好与书上的一致,所以我找了半天书上要求用的安装包 第一,安装32位的EPDFree(书上的版本就是3

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

概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为array[index1:index2],意思是从index1索引位置开始,到index2索引(不包括index2)位置结束的一段数组.例如: 当把一个值赋值为一个切片时,该值会作用于此数组片段里每一个元素,例如: 二维数组 二维数组的索引 当以一维数组的索引方式访问一个二维数组的时候,获取的元素不在

利用 Python 进行数据分析(三)使用 IPython 提高开发效率

一.IPython 简介 IPython 是一个交互式的 Python 解释器,而且它更加高效. 它和大多传统工作模式(编辑 -> 编译 -> 运行)不同的是, 它采用的工作模式是:执行 -> 探索 ,而大部分和数据分析相关的代码都含有探索式操作(比如试误法和迭代法),所以 IPython 能大大提高编码效率. IPython 发展到现在,它不仅仅只是一个加强版的 Python shell 了, 它集成了 GUI 控制台,这可以让你直接进行绘图操作:它还有一个基于 Web 的交互式笔记本

利用Python进行数据分析——数据规整化:清理、转换、合并、重塑(七)(2)

1.索引上的合并 有时候,DataFrame中的连接键位于其索引中.在这种情况下,你可以传入left_index = True或right_index = True(或两个都传)以说明索引应该被用作连接键: In [8]: left1 = pd.DataFrame({'key': ['a', 'b', 'a', 'a', 'b', 'c'], ...: 'value':range(6)}) In [9]: right1 = pd.DataFrame({'group_val':[3.5, 7]},