function residuals_change_points=residual_bootstrap_dwn(input_data,num_bootstrap_runs,len,cp_ID_method,change_point) %checked aug 7/2007 ordinal_vecs_for_residuals=sort(ceil(rand(num_bootstrap_runs,len)*len)')'; prechange_mean=mean(input_data(1:change_point)); postchange_mean=mean(input_data((change_point+1):end)); residualls=[prechange_mean-input_data(1:change_point) postchange_mean-input_data((change_point+1):end)]; mean_array=[repmat(prechange_mean,1,change_point) repmat(postchange_mean,1,(length(residualls)-change_point))]; residuals_change_points=zeros(1,num_bootstrap_runs); for bootstraps_using_residuals=1:num_bootstrap_runs residual_pseudodata=residualls(ordinal_vecs_for_residuals(bootstraps_using_residuals,:)); residual_pseudodata=residual_pseudodata+mean_array; if cp_ID_method==1 [change_point_from_residuals,smallest_sse]=find_change_point_using_sum_of_squares(residual_pseudodata);%smallest_sse is not used here elseif cp_ID_method==2 [change_point_from_residuals,changemagnitude]=find_change_point_using_trend_method(residual_pseudodata);%changemagnitude is not used here end residuals_change_points(bootstraps_using_residuals)=change_point_from_residuals; end % residuals_change_points=sort(residuals_change_points); % cutoff=(.025*num_bootstrap_runs);%CHOOSE num_bootstrap_runs s.t. there is no need for rounding here % temporal_confidence_window=[residuals_change_points(cutoff) residuals_change_points(end-cutoff)] %%figure,plot(residuals_change_points,'ko')