1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- 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;
-
|