1234567891011121314151617181920212223242526272829 |
- function [m,jsd]=jackknife(x)
- % Compute jackknife estimates of the mean and standard deviation of input data x
- % Usage: [m,jsd]=jackknife(x)
- %
- % Inputs:
- % x : data in the form samples x trials
- %
- % Outputs:
- % m : estimate of the mean (across trials)
- % jsd: jackknife estimate of the standard deviation (across trials)
- [N,C]=size(x);
- if C==1; error('Need multiple trials'); end;
- m=mean(x,2);
- theta=zeros(N,C);
- for tr=1:C;
- i=setdiff((1:C),tr); % drop 1 trial
- y=sum(x(:,i),2)/(C-1); % mean over remaining trials
- theta(:,tr)=C*m-(C-1)*y; % pseudo values
- % yy(:,tr)=y;
- end;
- jm=mean(theta,2);
- jm=repmat(jm,[1 C]);
- % jm2=mean(yy,2);
- % jm2=repmat(jm2,[1 C]);
- jsd=sqrt(sum((theta-jm).^2,2)/(C*(C-1)));
- % jsd2=sqrt((C-1)*sum((yy-jm2).^2,2)/C);
- % jsd
- % jsd2
|