企业应该如何进行网站建设,网站广告收费标准,用dw做网站怎么添加水平线,梅林固件 搭建wordpress稳健回归 一般来说#xff0c;对于打印出来后明显分布的比较集中#xff0c;靠近线分布的数据#xff0c;我们会优先用最小二乘法#xff08;OLS#xff09;去回归数据#xff0c;在正常的情况下它的效果很好#xff0c;但如果数据中存在了比较离谱的离散点#xff0c;…稳健回归 一般来说对于打印出来后明显分布的比较集中靠近线分布的数据我们会优先用最小二乘法OLS去回归数据在正常的情况下它的效果很好但如果数据中存在了比较离谱的离散点那么由于OLS的算法机制它会为了强行去拟合这些离散点去扭曲回归线也就是让其产生偏离这会严重误导我们对数据的判断。而稳健回归在这类处理中引入了权重通过对离散点的误差计算当它认为这是会产生极大误差的点时会赋予这些点很低的权重有时甚至接近于0从而使模型能够忽略这些离散点较好的呈现出数据本身的统计性质。
以下是一个例子来说明
set.seed(123) # 固定随机数
n - 100 # 样本量# 生成正常数据
x - rnorm(n, mean 10, sd 2)
y - 2 * x rnorm(n, mean 0, sd 1) # 真实关系: y 2x 噪声# 添加异常值5个极端点
outliers - sample(1:n, 5)
y[outliers] - y[outliers] rnorm(5, mean 15, sd 3) # 人为制造异常# 合并为数据框
df - data.frame(x, y)
head(df)
# 安装包如果未安装
# install.packages(MASS)library(MASS) # 包含稳健回归函数rlm()# 普通最小二乘法OLS
ols_model - lm(y ~ x, data df)
summary(ols_model) # 查看结果# 稳健回归M估计默认使用Huber损失函数
robust_model - rlm(y ~ x, data df)
summary(robust_model) # 查看结果# 绘制数据点和回归线
plot(df$x, df$y, pch 16, col ifelse(1:n %in% outliers, red, blue),main OLS vs Robust Regression)
abline(ols_model, col black, lwd 2, lty 2) # OLS回归线虚线
abline(robust_model, col green, lwd 2) # 稳健回归线实线
legend(topleft, legend c(OLS, Robust), col c(black, green), lty c(2, 1), lwd 2)
输出
Coefficients:Estimate Std. Error t value Pr(|t|)
(Intercept) 2.4482 1.9075 1.284 0.202
x 1.8175 0.1844 9.854 2.51e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
Coefficients:Value Std. Error t value
(Intercept) 0.1394 0.5974 0.2334
x 1.9752 0.0578 34.1940Residual standard error: 0.992 on 98 degrees of freedom 从输出中我们可以明显观察到OLS的截距是2.4482而相比之下稳健回归的是0.1394更靠近理论上不设置噪声时的截距为0的情况。结合图像来看OLS生成的虚线很明显被离散点误导了向上偏移而稳健回归的标准误差较小也说明估计更可靠。