⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 regrpca.m

📁 回归分析工具箱
💻 M
字号:

function [theta,lambda,Q,T2] = RegrPCA(X,N)

%   [theta,lambda,Q,T2] = RegrPCA(X,N)
%   [theta,lambda,Q,T2] = RegrPCA(X)
%
% Principal Component Analysis (PCA) 
%
% Input parameters:
%  - X: Input data block (m x nx)
%  - N: Number of latent variables (optional)
%       If negative, minor components returned
% Return parameters:
%  - theta: Latent basis
%  - lambda: Variances in latent basis directions
%  - Q,T2: Fitting criteria Q and T^2 (k x 1)
%
% Heikki Hyotyniemi Dec.21, 2000


[k,n] = size(X);
R = X'*X/k;
Q = zeros(k,1);
T2 = zeros(k,1);

[THETA,LAMBDA] = eig(R);
[LAMBDA,order] = sort(abs(diag(LAMBDA)));
LAMBDA = flipud(LAMBDA);
THETA = THETA(:,flipud(order));

if nargin>1 & N < 0
   N = abs(N);
   THETA = fliplr(THETA);
   LAMBDA = flipud(LAMBDA);
end

if nargin<2 | isnan(N) | isinf(N) | isempty(N)
   N = RegrAskOrder(LAMBDA);
end

theta = THETA(:,1:N);
lambda = LAMBDA(1:N);

if nargout > 2
   for i = 1:k
      Q(i) = X(i,:)*(eye(n)-theta*theta')*X(i,:)';
      T2(i) = X(i,:)*theta*inv(diag(lambda))*theta'*X(i,:)';
   end
end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -