Самозагрузка стандартных ошибок в matlab для лассо
В настоящее время я работаю над Книгой "Статистическое обучение с редкостью" Хасти, Тревора и Тибширани,
Они применяют OLS и лассо к проблеме, а затем вычисляют стандартные ошибки для лассо с помощью начальной загрузки. Однако я попытался вычислить ошибки вручную, но не получилось. Коэффициенты должны быть взяты из регрессии раньше, и \lambda (соотв. Т тоже самое) Теперь мне интересно, смогу ли я использовать функцию начальной загрузки:
Позвольте мне загрузить n=1000 образцов из существующих образцов (X,y) (50 наблюдений). Коэффициент уже рассчитан, так же, как lambda_min. Сначала я попытался вычислить расстояния для R^2 вручную, но это не сработало, поскольку SST=SSE+SSR не соответствует моим данным.
lambdamin=FitInfo.LambdaMinMSE;
coef=lasso(X,y,'Lambda',lambdamin); %calculates the estim
n1=1000;
X_new=zeros(n1,5);
y_new=zeros(n1,1);
for j=1:1000
ra=randi([1 50],1,1); %generate random number to pick
X_new(j,:)=X(ra,:);
y_new(j)=y(ra);
y_est(j)=X_new(j,:)*coef(:);
SST=0;
SSR=0;
SSE=0;
for i=1:1000
SST(i)=(y_new(i)-mean(y_new)).^2;
SSR(i)=(y_new(i)-y_est(i)).^2;
SSE(i)=(y_est(i)-mean(y_new)).^2;
end
SSE=sum(SSE(:));
SST=sum(SST(:));
SSR=sum(SSR(:));
se = std(bootstrp(1000,@(bootr)coef=lasso(X_new,y_new,'Lambda',lambdamin),chef))
Я был бы очень признателен за хороший ответ на мою проблему!