-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathVarExpl.m
More file actions
27 lines (22 loc) · 705 Bytes
/
VarExpl.m
File metadata and controls
27 lines (22 loc) · 705 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
function [exp,b,C,v,r2] = VarExpl(Y,X,varargin)
X = [ones(size(X,1),1) X];
if (nargin > 2)
b = varargin{1};
else
b = pinv(X)*Y;
end
Yhat = X*b;
v = var(Y);
Y=bsxfun(@minus,Y,mean(Y,1)); %%% zero-mean
Yhat=bsxfun(@minus,Yhat,mean(Yhat,1)); %%% zero-mean
Y=bsxfun(@times,Y,1./sqrt(sum(Y.^2,1))); %% L2-normalization
Yhat=bsxfun(@times,Yhat,1./sqrt(sum(Yhat.^2,1))); %% L2-normalization
C=sum(Y.*Yhat,1); %% correlation
r2 = C.^2;
%r2 = diag(corr(X,Xhat)).^2;
exp = 100*nansum(r2.*(v/sum(v)));
%r = corr(X,Y);
%r2 = r.^2;
%v = var(X);
%vr = repmat(v',1,size(Y,2));
%exp = sum(sum((vr.*r2)./sum(v)));