Jerkwin分享 http://blog.sciencenet.cn/u/Jerkwin

博文

matlab稳健回归函数文档

已有 935 次阅读 2018-6-15 09:41 |系统分类:科研笔记

 

  • 2018-06-14 20:39:44

regress函数和regstats函数利用普通最小二乘法估计模型中的参数, 参数的估计值受异常值的影响比较大. robustfit函数采用加权最小二乘法估计模型中的参数, 受异常值的影响就比较小. 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)

通过执行稳健回归来分析多元线性回归模型 y=Xβy=Xβ, 并返回系数向量 ββ 的估计值 bb.

输入参数 XX 为 n×pn×p 的自变量矩阵(或称预测变量矩阵, 设计矩阵), 对应 pp 个预测因子对 nn 个观测值中每个的贡献. yy 是 n×1n×1 观测值向量(或称响应向量), 输出的 bb 为 (p+1)×1(p+1)×1 向量.

缺省情况下, 算法使用基于bisquare加权函数的迭代重加权最小二乘法.

注意 与regress函数不同的是, 默认情况下, robustfit函数会自动在 XX 第1列元素的左边加入一列1, 而不需要用户自己添加. 此列向量对应于模型中的常量项. 不要直接为 XX 添加一个全1的列向量, 你可以通过更改变量const的值来改变robustfit的默认行为.

robustfit会把 XX 或 yy 中的不确定数据NaN作为缺失数据, 并将其移除.

2. b = robustfit(X, y, wfun, tune)

指定加权方法wfun和调节常数tune. 在计算权重之前tune会被划分到残差向量. 如果指定了wfun, 那么tune必不可少.

加权方法wfun为字符串, 可以取下表中的任何一个.

robustfit支持的加权方法
加权方法权重函数默认调节常数
'andrews'w=sin(r)/rif|r|<πw=sin⁡(r)/rif|r|<π1.339
'bisquare'(默认)$w = (1-r2)2 \;\;\text{if} \abs r<1$4.685
'cauchy'$w = 1/(1 + r2)$2.385
'fair'w=1/(1+|r|)w=1/(1+|r|)1.400
'huber'w=1/max(1,|r|)w=1/max(1,|r|)1.345
'logistic'w=tanh(r)/rw=tanh⁡(r)/r1.205
'ols'普通最小二乘法(无加权)
'talwar'w=1if|r|<1w=1if|r|<12.795
'welsch'$w = \exp(-r2)$2.985

若调用时没有指定调节常数tune, 则使用表中的默认值. 默认调节常数给出的系数估计值约为普通最小二乘估计的95%, 前提是响应服从正态分布且无异常值. 减小调节常数会增加分配给大残差的downweight; 增加调节常数会减少分配给大残差的downweight.

权重函数中的 rr 值通过下式计算

$r = {\text{resid} \over \text{tune}s\sqrt{1-h}}$

其中 residresid 是上一次迭代中残差的向量, hh 是由最小二乘拟合得到的中心化杠杆值向量, ss 是误差项标准偏差的估计值, 计算公式为

s=MAD/0.6745s=MAD/0.6745

其中 MADMAD 为残差绝对值的中位数. 常数0.6745保证了在正态分布下估计是无偏的. 如果 XX 中有 pp 列, 则在计算 MADMAD 时会将残差绝对值向量的前 pp 个最小值舍去.

用户可以自己定义权重函数. 该函数的输入必须是残差向量, 并输出权重向量. 在这种情况下, 调用robustfit函数时把自定义权重函数的句柄(形如@myfun)作为wfun参数传递给robustfit函数, 此时必须指定tune参数

3. b = robustfit(X, y, wfun, tune, const)

用参数const来控制模型中是否包含常数项. 若const取值为'on'(默认值), 则模型中包含常数项, 此时会自动在 XX 第1列的左边加入一列1bb 变为 (p+1)×1(p+1)×1 向量. 若const取值为'off', 模型中不包含常数项, 此时不改变X的值. 则 bb 为 p×1p×1 向量.

4. [b, stats] = robustfit(...)

返回一个结构体变量stats, 其字段包含了用于模型诊断的统计量. stats的字段为:

  • ols_s: 普通最小二乘法得出的σ的估计(RMSE)

  • robust_s: σ的稳健估计

  • mad_s: 用残差绝对值的中位数计算σ的估计; 用于在迭代拟合过程中缩放残差

  • s: σ的最终估计, 是ols_srobust_s加权平均值与robust_s值中的较大者

  • resid: 残差

  • rstud: 残差的t检验值(详细信息参见regress)

  • se: 系数估计的标准误差

  • covb: 系数向量协方差矩阵的估计

  • coeffcorr: 系数向量相关系数矩阵的估计

  • tbse的比值

  • p t检验的p值

  • w: 稳健拟合的权重向量

  • R: 矩阵X的QR分解中的R因子

  • dfe: 误差的自由度

  • h: 最小二乘拟合的中心化杠杆值向量

robustfit函数使用 inv(X'*X)*stats.s^2来计算系数估计值的方差协方差矩阵. 标准误差和相关性由此得出.

参考译文

◆本文地址: https://jerkwin.github.io/2018/06/14/matlab稳健回归函数文档/, 转载请注明◆
◆评论问题: https://jerkwin.herokuapp.com/category/3/博客, 欢迎留言◆






http://blog.sciencenet.cn/blog-548663-1119079.html

上一篇:构建纤维素(多糖)及其衍生物的GLYCAM力场拓扑文件
下一篇:AMBER高级教程A8:HIV-1整合酶核心结构域的环区动力学

2 檀成龙 杨正瓴

该博文允许注册用户评论 请点击登录 评论 (1 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备14006957 )

GMT+8, 2018-11-17 13:20

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部