function [m,ll,ul,llj,ulj]=den_jack(X,family,varargin) % Function to compute smooth estimates of the mean of x using locfit, % the corresponding confidence intervals, and jackknife estimates of % the confidence intervals % Usage: [m,ll,ul,llj,ulj]=den_jack(x) % % Inputs: % X: data in the form samples x trials % family: 'density' or 'reg' for regression % If the family is density, the entire input matrix X is considered % as data. If the family is regression then the first column of X is % taken to be the independent variable and the remaining columns are % regressed on this variable (for example, the first column may be % the centers of the bins for binned spike count data) % varargin is the set of arguments used by locfit to perform the smoothing % % Outputs: % m : smoothed estimate of the mean % ll : estimate of the lower confidence level % ul : estimate of the upper confidence level % llj : jackknife estimate of the lower confidence level (+2\sigma % where sigma is the jackknife variance) % llu : jackknife estimate of the upper confidence level (-2\sigma % where sigma is the jackknife variance) [N,NT]=size(X); if strcmp(family,'reg'); yy=X(:,2:end); y=mean(yy,2); x=X(:,1); z=scb(x,y,varargin{:}); figure; plot(z(:,1),z(:,2)); hold on; plot(z(:,1),z(:,3),'b:'); plot(z(:,1),z(:,4),'b:'); title('Smoothed density estimate, all data'); % fit=locfit(x,y,varargin{:}); % xfit = lfmarg(fit); % yfit = predict(fit,xfit); % z = invlink(yfit,fit{4}{5}); % for tr=1:NT-1; % i=setdiff(1:NT-1,tr); % y=mean(yy(:,i),2); y=yy(:,tr); fit=locfit(x,y,varargin{:}); xfit = lfmarg(fit); yfit = predict(fit,xfit); yfit = invlink(yfit,fit{4}{5}); zz(:,tr)=yfit; % theta(:,tr)=NT*z-(NT-1)*yfit; end; % thetam=mean(theta,2); % variance=var(theta,0,2); % standard_dev=sqrt(variance); % figure; plot(xfit{1},thetam,'b'); % hold on; plot(xfit{1},thetam+2*standard_dev,'r'); % plot(xfit{1},thetam-2*standard_dev,'r'); % pause; [m,jsd]=jackknife(zz); % plot(xfit{1},m,'r'); hold on; plot(xfit{1},m+2*jsd,'r:'); plot(xfit{1},m-2*jsd,'r:'); figure; plot(xfit{1},zz); title('All trials'); else x=mean(X,2); fit=locfit(x,varargin{:}); figure;lfplot(fit); lfband(fit); end;