怎样用MATLAB求剩余标准差

怎样用MATLAB求剩余标准差,第1张

在线性回归分析中,真实值和估计值之间的差称为残差(或者剩余量),所有预测值的残差平方的和叫做残差平方和(或者剩余平方和),剩余标准差就是剩余平方和的开平方。
可以这样来编写程序:clc; clear all; close all;
A = magic(5); % 真实值
B = A + rand(5, 5); % 估计值
C = A - B; % 残差数据
D = sum(C(:)^2) 结果:D = 125776

你的命令和你的想法就不匹配 。
如果是std(a)
那么 就是 sqrt([(a(1)-mean(a))^2 + (a(2)-mean(a))^2 + /(n-1)])
如果是std(a, 1)
那么 就是 sqrt([(a(1)-mean(a))^2 + (a(2)-mean(a))^2 + /n])
其中mean(a) = a(1) + a(2) + /n
上面两者的区别在于用n或者n-1进行单位化的问题,主要是就是对无偏估计的一种修正,相对来说,n-1用得广泛一些。
你这样的命令std(a, b)
其实就等于是给a中的每一个元素赋了一个权重,因为在默认的状态下,a中的每个人元素是等权重的,但是现在你用了b,在算法里面会被自动单位化:
b1 = [5/17 4/17 3/17 5/17]
然后这个b1就被视为是a中每个元素相对应的权重,来以此进行下一步的std运算。
把std的定义搞清楚就行。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12808178.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-28
下一篇 2023-05-28

发表评论

登录后才能评论

评论列表(0条)

保存