加权最小二乘法和离群点

pdf
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
答:处理方法1)使用加权最小二乘法;由于最小二乘法思想是最小化均方差,在误差符合正态分布,均值为0的前提下,考虑了每个样本的贡献度,即每个样本都具有相同的权重,因此最小二乘法对数据中间的异常值特别敏感。加权最小二乘法也是以距离为度量,根据距离大小赋予不同的权重值,可以在一定程度上减少异常值的干扰。
2)使用残差诊断离群值;利用最小二乘法线性模型,通过计算残差,判定采样数据中的离群值,去除离群值后再次计算残差,找出离群值,
直至不再出现离群值,计算最小二乘法回归方程。

C = [1 1;2 1; 3 1];
d = [1;1;3];
Aeq = [1,1];
beq = [1];
x = lsqlin(C,d,[],[],Aeq,beq)
norm_c = C*x-d
norm(norm_c,2)
x =

    0.8000
    0.2000


norm_c =

         0
    0.8000
   -0.4000


ans =

    0.8944
load examgrades
y = grades(:,5);
X = [ones(size(grades(:,1))) grades(:,1:2)];

figure(1)
[b,bint,r,rint,s] = regress(y,X,0.01);
contain0 = (rint(:,1)<0 & rint(:,2)>0);
idx = find(contain0==false)
hold on
scatter(y,r)
scatter(y(idx),r(idx),'b','filled')
xlabel("Last Exam Grades")
ylabel("Residuals")
axis([60 90 -8 14])
hold off

figure(2)
rcoplot(r, rint)
title('原始数据残差图及奇异点')

% 去除奇异点数据 idx
y(idx(1,1)) = [];
X(idx(1,1),:) = [];
y(idx(2,1)) = [];
X(idx(2,1),:) = [];

figure(3)
[b,bint,r,rint,s] = regress(y,X,0.01);
contain0 = (rint(:,1)<0 & rint(:,2)>0);
idx = find(contain0==false)
hold on
scatter(y,r)
scatter(y(idx),r(idx),'b','filled')
xlabel("Last Exam Grades")
ylabel("Residuals")
axis([60 90 -8 14])
hold off

figure(4)
rcoplot(r, rint)
title('第一次去除2个奇异点数据残差图')

% 去除奇异点数据 idx
y(idx(1,1)) = [];
X(idx(1,1),:) = [];

figure(5)
[b,bint,r,rint,s] = regress(y,X,0.01);
contain0 = (rint(:,1)<0 & rint(:,2)>0);
idx = find(contain0==false)
hold on
scatter(y,r)
scatter(y(idx),r(idx),'b','filled')
xlabel("Last Exam Grades")
ylabel("Residuals")
axis([60 90 -8 14])
hold off

figure(6)
rcoplot(r, rint)
title('第二次去除1个奇异点数据残差图')

x1 = X(:,2);
x2 = X(:,3);
scatter3(x1,x2,y,'filled')
hold on
x1fit = min(x1):2:max(x1);
x2fit = min(x2):2:max(x2);
[X1FIT,X2FIT] = meshgrid(x1fit,x2fit);
YFIT = b(1) + b(2)*X1FIT + b(3)*X2FIT ;
mesh(X1FIT,X2FIT,YFIT)
xlabel('First Exam Grades')
ylabel('Second Exam Grades')
zlabel('Last Exam Grades')
view(50,10)
hold off

Ey = mean(y); % 计算均值
U = sum((y-Ey).^2); % 计算总体偏差

参考mathwork 中regress 函数示例,数据集为matlab中examgrades。图一显示原始数据中的两个离群值,去除这两个离群值再做一次最小二乘回归,图二显示数据中还有一个离群值,图三为经残差处理后的数据散点图,图四为处理后数据空间显示图。
在这里插入图片描述
图一
在这里插入图片描述
图二
在这里插入图片描述
图三

在这里插入图片描述
图四

References:
https://blog.csdn.net/red_stone1/article/details/80755144
https://blog.csdn.net/Dust_Evc/article/details/121942306

在这里插入图片描述

  • 4
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
加权最小二乘法(Weighted Least Squares,简称 WLS)是一种常见的回归分析方法,它可以用于解决普通最小二乘法(OLS)中的问题,例如存在异方差性(即方差不等),或者存在离群等。 以下是一个简单的 MATLAB 代码实现加权最小二乘法: ```matlab function [a, b] = weighted_linear_regression(x, y, w) % x: 自变量,为一个列向量 % y: 因变量,为一个列向量 % w: 权重,为一个列向量 n = length(x); sum_w = sum(w); sum_wx = sum(w.*x); sum_wy = sum(w.*y); sum_wx2 = sum(w.*x.^2); sum_wxy = sum(w.*x.*y); a = (sum_w*sum_wxy - sum_wx*sum_wy) / (sum_w*sum_wx2 - sum_wx^2); b = (sum_wy - a*sum_wx) / sum_w; end ``` 在上述代码中,我们输入了三个向量 `x`,`y` 和 `w`,分别代表自变量、因变量和权重。我们首先计算出一些常用的和值,如 $\sum w$,$\sum wx$,$\sum wy$,$\sum w x^2$ 和 $\sum wxy$。然后,我们使用这些和值计算出加权回归系数 $a$ 和截距 $b$ 的值,并将其作为函数的输出。 使用加权最小二乘法进行线性回归的具体步骤是: 1. 构建加权线性回归模型:$y = ax + b$ 2. 计算样本数据的加权均值和方差:$\bar{x_w}, \bar{y_w}, s_{x_w}^2, s_{y_w}^2$ 3. 计算样本数据的加权协方差:$s_{xy_w} = \frac{1}{\sum w-2} \sum_{i=1}^n w_i(x_i-\bar{x_w})(y_i-\bar{y_w})$ 4. 计算加权回归系数 $a$ 和截距 $b$:$a = \frac{s_{xy_w}}{s_{x_w}^2}, b = \bar{y_w} - a\bar{x_w}$ 上述 MATLAB 代码实现了上述步骤中的第4步,即计算加权回归系数 $a$ 和截距 $b$ 的过程。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

qq-120

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值