这有点过分了,但我们试试看。首先让我们使用statsmodel找出p值应该是什么import pandas as pd

import numpy as np

from sklearn import datasets, linear_model

from sklearn.linear_model import LinearRegression

import statsmodels.api as sm

from scipy import stats

diabetes = datasets.load_diabetes()

X = diabetes.data

y = diabetes.target

X2 = sm.add_constant(X)

est = sm.OLS(y, X2)

est2 = est.fit()

print(est2.summary())

我们得到OLS Regression Results

==============================================================================

Dep. Variable: y R-squared: 0.518

Model: OLS Adj. R-squared: 0.507

Method: Least Squares F-statistic: 46.27

Date: Wed, 08 Mar 2017 Prob (F-statistic): 3.83e-62

Time: 10:08:24 Log-Likelihood: -2386.0

No. Observations: 442 AIC: 4794.

Df Residuals: 431 BIC: 4839.

Df Model: 10

Covariance Type: nonrobust

==============================================================================

coef std err t P>|t| [0.025 0.975]

------------------------------------------------------------------------------

const 152.1335 2.576 59.061 0.000 147.071 157.196

x1 -10.0122 59.749 -0.168 0.867 -127.448 107.424

x2 -239.8191 61.222 -3.917 0.000 -360.151 -119.488

x3 519.8398 66.534 7.813 0.000 389.069 650.610

x4 324.3904 65.422 4.958 0.000 195.805 452.976

x5 -792.1842 416.684 -1.901 0.058 -1611.169 26.801

x6 476.7458 339.035 1.406 0.160 -189.621 1143.113

x7 101.0446 212.533 0.475 0.635 -316.685 518.774

x8 177.0642 161.476 1.097 0.273 -140.313 494.442

x9 751.2793 171.902 4.370 0.000 413.409 1089.150

x10 67.6254 65.984 1.025 0.306 -62.065 197.316

==============================================================================

Omnibus: 1.506 Durbin-Watson: 2.029

Prob(Omnibus): 0.471 Jarque-Bera (JB): 1.404

Skew: 0.017 Prob(JB): 0.496

Kurtosis: 2.726 Cond. No. 227.

==============================================================================

好吧,让我们复制一下。这有点过头了,因为我们几乎是在用矩阵代数再现线性回归分析。但这到底是怎么回事。lm = LinearRegression()

lm.fit(X,y)

params = np.append(lm.intercept_,lm.coef_)

predictions = lm.predict(X)

newX = pd.DataFrame({"Constant":np.ones(len(X))}).join(pd.DataFrame(X))

MSE = (sum((y-predictions)**2))/(len(newX)-len(newX.columns))

# Note if you don't want to use a DataFrame replace the two lines above with

# newX = np.append(np.ones((len(X),1)), X, axis=1)

# MSE = (sum((y-predictions)**2))/(len(newX)-len(newX[0]))

var_b = MSE*(np.linalg.inv(np.dot(newX.T,newX)).diagonal())

sd_b = np.sqrt(var_b)

ts_b = params/ sd_b

p_values =[2*(1-stats.t.cdf(np.abs(i),(len(newX)-1))) for i in ts_b]

sd_b = np.round(sd_b,3)

ts_b = np.round(ts_b,3)

p_values = np.round(p_values,3)

params = np.round(params,4)

myDF3 = pd.DataFrame()

myDF3["Coefficients"],myDF3["Standard Errors"],myDF3["t values"],myDF3["Probabilites"] = [params,sd_b,ts_b,p_values]

print(myDF3)

这给了我们。Coefficients Standard Errors t values Probabilites

0 152.1335 2.576 59.061 0.000

1 -10.0122 59.749 -0.168 0.867

2 -239.8191 61.222 -3.917 0.000

3 519.8398 66.534 7.813 0.000

4 324.3904 65.422 4.958 0.000

5 -792.1842 416.684 -1.901 0.058

6 476.7458 339.035 1.406 0.160

7 101.0446 212.533 0.475 0.635

8 177.0642 161.476 1.097 0.273

9 751.2793 171.902 4.370 0.000

10 67.6254 65.984 1.025 0.306

所以我们可以从statsmodel中复制值。

生存曲线 p值 python_scikit学习线性回归中的p值(显著性)相关推荐

  1. 【Java】从键盘中输入一个值,在数组中查找该值的索引并输出

    问题: 从键盘中输入一个值,在数组中查找该值的索引并输出 代码: package learnjava;import java.util.Scanner;public class demo13 {pub ...

  2. python获取字典的值_python取出字典中的所有值的两种方法

    原博文 2018-06-19 18:29 − 方法一: spam = {'A':123 ,'B':345,'C':345 } for k,v in spam.items(): print(k,v) 方 ...

  3. php中取出数组中指定的值,PHP除开数组中指定的值

    PHP去除数组中指定的值 //一维数组 简单的做法  unset($arr[array_search($value,$arr)]) $arr = array("a","b ...

  4. matlab 调用子函数返回值,matlab学习笔记13_1 函数返回值

    一起来学matlab-matlab学习笔记13函数 13_1 函数返回值 觉得有用的话,欢迎一起讨论相互学习~Follow Me 函数返回一个值 返回值不必使用return语句,而是直接将需要返回的变 ...

  5. c语言case多语句的取值,Switch Case语句中多个值匹配同一个代码块的写法

    C#+JQuery+.Ashx+百度Echarts实现全国省市地图和饼状图动态数据图形报表的统计 在目前的一个项目中,需要用到报表表现数据,这些数据有多个维度,需要同时表现出来,同时可能会有大量数据呈 ...

  6. linux函数没有返回值导致溢出,Shell中函数返回值超出问题

    1.前言 快半年没有写博客了,荒废了很久,工作中的杂事太多,自己越来越懒了.为了鞭策自己成长,还是要坚持写写博客,记录自己的成长. 2.shell函数介绍 语法: [ function ] funna ...

  7. javascript篇-知道value值,返回对象中的key值

    前提是,value值是唯一的,业务中有这样一个需求,代码如下: 转载于:https://www.cnblogs.com/keleyz/p/9547013.html

  8. matlab中的中间值,matlab - 在MATLAB中获取中间值的索引 - 堆栈内存溢出

    这个想法是对向量​​进行排序,并取中间值. 对于偶数长度的向量,我们计算中间两个值的平均值. 例: %# some random vector %#x = rand(99,1); %# odd-len ...

  9. java 唯一值_java – 在列表中查找唯一值的快速方法

    第一个选项应该更快.您可以通过在使用之前调整集合大小来使其更快.通常,如果您期望少量重复: Set undefined = new HashSet(pairs.size(), 1); 请注意,我使用1 ...

最新文章

  1. Matlab与线性代数 -- 稀疏矩阵的图形显示
  2. 澳优、伊利、君乐宝、贝因美等入局,羊奶能否迎来“牛市”?
  3. UVC (USB Video Class) 使用笔记 (转)
  4. python读取第二行_使用Python操作Excel(二):读取数据表
  5. centos 下使用sublime
  6. Git 分布式版本控制常用命令(1)
  7. win32bridge.server.exe函数不正确_修电脑?不,其实我们学的是......
  8. qtcreator摄像头显示时间_三星Galaxy S11 +渲染器展现出巨大的相机凹凸和四边形曲面显示...
  9. 【Filebeat】windows下安装filebeat
  10. oracle 存储过程 发送WebServie 请求
  11. Pyinstaller打包过程中报错“AttributeError: 'str' object has no attribute 'items''”问题解决
  12. RC有源滤波器之低通滤波器(一)
  13. 尚硅谷ssm整合实战项目笔记
  14. python求列表的方差值
  15. 阿里云服务器购买价格表:国内和国外地域云服务器活动报价表
  16. Axure如何建立共享项目 如何编辑共享项目 如何获取共享项目
  17. VPS安装msf教程
  18. 杨辉三角与二项式定理
  19. linux 修改群组名称,linux常用命令系列—chgrp-修改所属群组
  20. linux系统内存管理含义,Linux内存管理--基本概念及相关数据结构

热门文章

  1. 微信头脑王者服务器,微信头脑王者提示query server failed问题解决方法
  2. 4 int、str类型(数据类型1)、type()
  3. html中 选择子元素 子元素选择器
  4. TI OMAP平台BSP学习笔记之 - UBOOT(1)
  5. 2019年工作总结——没有岁月可回首,珍惜当下不负流年
  6. MNIST导入图片数据集
  7. [回炉计划]当输入xxxxhub的时候,居然是这样
  8. MATLAB读取nc数据并显示
  9. proxmox ve 中文社区_基于ProXmoX VE的虚拟化家庭服务器(篇一)—ProXmoX VE 安装及基础配置...
  10. 工作第十六七周:生活这么繁琐,我们还要努力爱她