机器学习与统计学:R方代表什么?和P值的关系是什么?
作者:挂枝儿 原文:https://zhuanlan.zhihu.com/p/110886609
我们在做逻辑回归或是其他线性模型的时候,经常会遇到一个模型衡量指标叫做
,网上很多一个普遍的解释是:
表达了2个变量间关系的解释程度百分比程度 / 拟合曲线对于模型variance的减少百分比
用一个例子来理解一下。下图有蓝色的样本分布点,红线是我们的拟合曲线,灰线是平均值曲线
R方的公式是:
上图中分母和分子的左侧从数字上,可以理解为样本点到均值线的差平方和。分子的右侧代表预测结果与样本均值差的平方和。根据图像,我们其实可以将:
分子理解成:
样本标签本身的var - 将模型结果纳入考量后的var
分母理解成:
不考虑预测结果,样本标签本身的var
如果我们的拟合曲线与模型均值相同,那么我们的
=0,也就是说模型对于样本毫无解释能力,如果去蓝线的话,
将是一个非常接近于81%的数字,代表蓝线为均值线减少了81%的variance,模型结果可以解释81%的样本结果。
但需要注意的是,
并不能指定强关联的方向性,也就是说可能是正向的也可能是反向的。
那么逻辑回归的
是怎么回事呢?回归问题可以用量化的方差来计算,逻辑回归怎么计算呢?怎么定义
呢?
我们用LL(Over Probabilty)来代替上式的var(mean)
LL(Over Probabilty)的计算方式是:
得到概率后,我们将结果根据样本量log求和即可:
最后就可以计算
R^2的指标就介绍到这里,这是一个很好的量化模型结果对于响应变量解释程度的指标,那么接下来,我们怎么知道这个是不是随机造成造成的呢?怎么样确信这个结果不是偶然?
该F检验和P值出场了 我其实一开始只想知道p-value在线性方程组里是怎么计算出来了,后来查到了是必须要通过F值才能够得到. F检验的公式形象化的理解就是:
pfit-pmean可以叫做:自由度,其实就是拟合方程的系数量-平均值的系数量(一般就是1)
n-pfit就是样本量数量-拟合方程的系数数量。要减去pfit的原因是随着你方程中的系数项越多,你也需要更多的样本数量才能够去拟合方程。比如你需要2个点才能确定一条直线,3个点来确定一个平面。
从上面的式子也看得出,这是一个分子大分母就小,分子小分母就大的式子,我甚至觉得长得有点像odds....
那么这个式子又怎么得到我们的P值呢?
P值是检验样置信度的一个指标,一般我们认为p<=0.05时(一般选择这个显著水平),模型的信号不存在偶然性,模型的结果可靠
我们可以古典查表法,当然实务肯定也是用Python模块计算
import numpy as np
from scipy.stats import chi2_contingency, fisher_exact
obs = np.array([[8157, 8],[7906,10]])
g, p, dof, expctd = chi2_contingency(obs, correction = False)
p
0.59094761107842753
总结:
R^2可以量化模型响应变量与因变量间的关系强弱 p-value检验可以决定拟合方程的可靠程度。
- swingbench压测Oracle小记(r12笔记第20天)
- 分享最近对网站外链跳转页面代码的一些改善
- swingbench压测Oracle小记(r12笔记第19天)
- Oracle闪回原理测试(三)(r12笔记第16天)
- 利用JS生成二维码图片,优化WEB性能及页面加载速度
- Go语言的指针 & *
- MySQL中的double write(二)(r12笔记第17天)
- 论Go语言中goroutine的使用
- WordPress发布文章同步到新浪微博失败的问题解决与分享
- 压测工具swingbench和sysbench对比(r12笔记第13天)
- 解决WordPress4.4.1不支持图片暗箱问题,Begin主题适用
- MySQL源码安装总结(r12笔记第12天)
- 全站启用SSL之后,如何兼容不支持https抓取的搜索引擎?
- sandbox和MHA快速测试(r12笔记第32天)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 元素淡入淡出效果实现
- Asp.Net Mvc表单提交(批量提交)
- Vue 基本指令和html常用标签结合使用综合案例(含代码)
- ef和mysql使用(二)--让mysql支持EntityFramework.Extended实现批量更新和删除
- EF 多种查询方式
- (mysql)找不到请求的 .Net Framework Data Provider。可能没有安装
- Vue 中的 v-cloak 解读
- ef和mysql使用(一)
- 浏览器工作原理
- ef oracle参数化问题
- 动态We API(ABP官方文档翻译)
- 彻底禁用Chrome的“请停用以开发者模式运行的扩展程序”提示
- wcf远程服务器返回错误404
- EF 相见恨晚的Attach方法
- C#篇(三)——函数传参之引用类型和值类型