调用robustfit函数作稳健回归
调用robustfit函数作稳健回归
regress函数和regstats函数利用普通最小二乘法估计模型中的参数,参数的估计值受异常值的影响比较大。robustfit函数采用加权最小二乘法估计模型中的参数,受异常值的影响就比较小。robustfit函数用来作稳健的多重线性或广义线性回归分析,下面介绍robustfit函数的用法。
1.4.1.robustfit函数的用法
robustfit函数有以下几种调用方式:
b = robustfit(X,y)
b = robustfit(X,y,wfun,tune)
b = robustfit(X,y,wfun,tune,const)
[b,stats] = robustfit(…)
(1)b = robustfit(X,y)
返回多重线性回归方程中系数向量β的估计值b,这里的b为一个1p×的向量。输入参数X为自变量观测值矩阵(或设计矩阵),它是的矩阵。与regress函数不同的是,默认情况下,robustfit函数自动在X第1列元素的左边加入一列1,不需要用户自己添加。输入参数y为因变量的观测值向量,是的列向量。robustfit函数把y或X中不确定数据NaN作为缺失数据而忽略它们。np×1n×
(2)b = robustfit(X,y,wfun,tune)
用参数wfun指定加权函数,用参数tune 指定调节常数。wfun为字符串,其可能的取值如表1-3所示。
表1-3 robustfit函数支持的加权函数
加权函数(wfun)
函数表达式
默认调节常数值
'andrews' sin(||)rwIrrπ=⋅<
1.339
'bisquare'(默认值)
22(1)(||1)wrIr=−⋅<
4.685
'cauchy' 21(1)wr=+
2.385
'fair' 1(1||)wr=+
1.400
'huber' 1max(1, ||)wr=
1.345
'logistic' tanh()wr=
1.205
'ols'
普通最小二乘,无加权函数
无
'talwar'
(||1)wIr=<
2.795
'welsch'
2rwe−=
2.985
若调用时没有指定调节常数tune,则用表1-3中列出的默认调节常数值进行计算。表1-3中加权函数中的r通过下式计算residr =tunes1-h××
其中resid为上一步迭代的残差向量,tune为调节常数,h是由最小二乘拟合得到的中心化杠杆值向量,s为误差项的标准差的估计。s的计算公式为:s = MAD/0.6745,其中MAD为残差绝对值的中位数,在正态分布下,这个估计是无偏的。若X中有p列,计算MAD时,将残差绝对值向量的前p个最小值舍去。
用户可以定义自己的权重函数,函数的输入必须是残差向量,输出是权重向量。在调用robustfit函数时,把自定义权重函数的句柄(形如@myfun)作为wfun参数传递给robustfit函数,此时必须指定tune参数。
(3)b = robustfit(X,y,wfun,tune,const)
用参数const来控制模型中是否包含常数项。若const取值为 'on' 或1,则模型中包含常数项,此时自动在X第1列的左边加入一列1,若const取值为 'off' 或0,则模型中不包含常数项,此时不改变X的值。
(4)[b,stats] = robustfit(…)
返回一个结构体变量stats,它的字段包含了用于模型诊断的统计量。stats有以下字段:
• stats.ols_s — 普通最小二乘法得出的σ的估计(RMSE);
• stats.robust_s — σ的稳健估计;
• stats.mad_s — 用残差绝对值的中位数计算σ的估计;
• stats.s — σ的最终估计,是ols_s 和robust_s的加权平均与robust_s中的最大值;
• stats.se — 系数估计的标准误差;
• stats.t — b与stats.se的比值;
• stats.p — t检验的p值;
• stats.covb — 系数向量的协方差矩阵的估计;
• stats.coeffcorr — 系数向量的相关系数矩阵的估计;
• stats.w — 稳健拟合的权重向量;
• stats.h — 最小二乘拟合的中心化杠杆值向量;
• stats.R — 矩阵X的QR分解中的R因子
调用robustfit函数作稳健回归的更多相关文章
- 深入理解javascript系列(4):立即调用的函数表达式
本文来自汤姆大叔 前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行. 在详细了解这个之前,我们来谈了解一下“自执行”这个叫法,本文对这个功能的叫法 ...
- [JS]深入理解JavaScript系列(4):立即调用的函数表达式
转自:汤姆大叔的博客 前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行.在详细了解这个之前,我们来谈了解一下"自执行"这个叫法 ...
- 动态调用DLL函数有时正常,有时报Access violation的异常
动态调用DLL函数有时正常,有时报Access violation的异常 typedef int (add *)(int a,int b); void test() { hInst=LoadL ...
- Python基础(函数,函数的定义,函数的调用,函数的参数,递归函数)
1.函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = ...
- cocos2d-x 3.0 在C++中调用lua函数
代码用的是<cocos2d-x 3.0 在lua中调用自定义类>中的代码. 在上篇的基础上进行扩充. 写lua函数 local function process_packet(user_d ...
- (转)platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备
platform_driver_register,什么时候调用PROBE函数 注册后如何找到驱动匹配的设备 2011-10-24 19:47:07 分类: LINUX kernel_init中d ...
- cocos2dx中使用tolua++使lua调用c++函数
一直想学学cocos2dx中如何使用tolua++工具使得lua脚本调用C++函数,今天就来搞一下,顺便记录下来: 首先,我们打开cocos2dx-2.2.4中projects下的test的VS工程, ...
- <深入理解JavaScript>学习笔记(4)_立即调用的函数表达式
前言 大家学JavaScript的时候,经常遇到自执行匿名函数的代码,今天我们主要就来想想说一下自执行.(小菜理解:的确看到好多,之前都不知道这是自执行匿名函数) 在详细了解这个之前,我们来谈了解一下 ...
- c++与js脚本交互,C++调用JS函数/JS调用C++函数
<!DOCTYPE html> <html> <body> <h1>我的第一段 JavaScript</h1> <p> Java ...
随机推荐
- spring+springMVC+mybatis的框架项目基础环境搭建
上一个项目在后台用到spring+springMVC+mybatis的框架,先新项目初步需求也已经下来,不出意外的话,应该也是用这个框架组合. 虽然在之前activiti相关的学习中所用到的框架也是这 ...
- html5 中meta中 content=width=device-width注意
<!DOCTYPE html> <html> <head> <meta http-equiv="content-type" content ...
- Nginx_地址重写(rewrite)_日志管理(log_format)_压缩输出_Nginx设定限速_Nginx设置反向代理及反向代理缓存
Nginx地址重写 Nginx rewrite rewrite语法规则1).变量名可以使用 "=" 或 "!=" 运算符~ 区分大小写~* 不区分大小写^~ 禁 ...
- ClassLoader 机制
JAVA启动后,是经过JVM各级ClassLoader来加载各个类到内存.为了更加了解加载过程,我通过分析和写了一个简单的ClassLoader来粗浅的分析它的原理. JVM的ClassLoader分 ...
- Form_Form树形结构HTree的开发(案例)
2014-06-09 Created By BaoXinjian
- IREP_SOA Integration程序注释语法Annotations(概念)
20150506 Created By BaoXinjian
- 在Where中对列使用函数,将导致其不可索引
在Sql语句的Select部分对字段编写标量函数是完全可以的,但是下面代码: select EmpNo,LastName from Emp 应当写为 select EmpNo,LastName fro ...
- mvc无法找到资源
昨天装了vs2015,但是第二步没有完成.今天急急忙忙的用13打开一个mvc的项目,但是添加的控制器怎么都不能访问. 无法找到资源. 说明: HTTP 404.您正在查找的资源(或者它的一个依赖项)可 ...
- Js读写cookie实例
统计访问次数 <html> <head> <meta http-equiv="Content-Type" content="text/htm ...
- 设置oracle_home
set ORACLE_HOME=F:\app\rh\product\11.2.0\dbhome_1