function [data,k]=npar_vdwaerden(data,k)
% npar_vdwaerden called by npar_main performs nonparametric Van Der Waerden normal scores test
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Nonparametric Statistical Tests in Matlab
%
% Author:
% Erik B. Erhardt erike@wpi.edu
% Statistics Graduate Student and Teaching Assistant
% Dept. of Mathematical Sciences (508) 831-5546
% Worcester Polytechnic Institute SH 204
% 100 Institute Rd.
% Worcester, MA 01609-2280
%
% Date: 2/6/2003 1:30PM
%
% Program: npar_vdwaerden.m
% Includes:
% Van Der Waerden normal scores
% (first use Wilcoxon Sign Ranks, then convert to normal scores then use npar_pitman.m)
% Called by:
% npar_main.m
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% Van Der Waerden section BEGIN
% use ranks from npar_wilcoxsr.m
datasign=zeros(k,2);
for i=1:k;
% decompose data into magnitudes (,1) and signs (,2)
datasign(i,1)=abs(data(i));
datasign(i,2)=sign(data(i));
end;
datasign=sortrows(datasign,1); % sort datasign by magnitude, keeping associated sign in (:,2)
vdw=zeros(k,1);
for i=1:k;
datasign(i,1)=datasign(i,1)/(k+1); % transform ranks to normal quantiles
datasign(i,1)=norminv(datasign(i,1),0,1) + 3; % obtain z-values from standard normal cdf
% add 3 to each score to make positive (for k < 700)
vdw(i)=datasign(i,1)*datasign(i,2); % assign signs to quantiles
end;
data=vdw;
%%% Van Der Waerden section END
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% end
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%