楼主: freebird5586
4035 3

偏最小二乘法中的交叉有效性计算的matlab程序 [推广有奖]

  • 0关注
  • 0粉丝

学前班

50%

还不是VIP/贵宾

-

威望
0
论坛币
20 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
67 点
帖子
2
精华
0
在线时间
0 小时
注册时间
2007-7-4
最后登录
2014-5-6

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

偏最小二乘法中的交叉有效性计算的matlab程序,怎么计算出来的预测误差平方和PRESS不太对,偏大;请大牛指教!

function re = GetPRESS(E0,F0,h)

[n,m] = size(E0);
F0n = size(F0);
if F0n ~= n | n <2 | m < 2
disp('errors!');
return;
end

press = 0;

for i = 1:n
E = [ E0(1:i-1,:); E0(i+1:n,:) ];
F = [ F0(1:i-1,:); F0(i+1:n,:) ];

for j = 1:h % h步
w = ( E'* F )/ norm( E'*F );
W(:, j ) = w;
W;

t = E * w;
T(:, j ) = t; % 主成分

p = E'* t / ( (norm( t))^2 );
P(:, j ) = p;

r = F'* t / ( (norm( t))^2 );
R( j ) = r; % 系数

E = E - t * p';
F = F - t * r';

end

% 求W* 的值
for k = 1: h
W_h_s = eye(m);
for j = 1:(k-1)
W_h_s = W_h_s * ( eye(m) - W(j) *( P(j) )');
end

W_h_s = W_h_s * W(:,k); % Wh* 的值

W_s(:,k) = W_h_s;
end

F0i_s = E0(i,:) * (W_s * R'); % 求F0i的拟合值
F0i = F0(i);

% Yi_Yh_i = ( F0i - F0i_s )^2

press = press + ( F0i - F0i_s )^2; % 两值相减再平方

end

re = press;

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB程序 MATLAB 偏最小二乘法 偏最小二乘 matla MATLAB 程序 有效性 最小二乘法 交叉

沙发
leexin111 发表于 2009-7-12 10:12:05 |只看作者 |坛友微信交流群
先谢谢!我先研究研究

使用道具

藤椅
dlut123 发表于 2009-7-12 10:25:40 |只看作者 |坛友微信交流群
非常感谢,省大了劲了

使用道具

板凳
litao11111 发表于 2012-5-9 10:25:22 |只看作者 |坛友微信交流群
谢谢,正需要。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-12 13:36