Fixed variable names
This commit is contained in:
parent
a0acdc794d
commit
3afac0a5d4
1 changed files with 24 additions and 24 deletions
30
src/TR.jl
30
src/TR.jl
|
|
@ -5,7 +5,7 @@ In practice the most naive way of approaching the update problem
|
||||||
function TRLooCVUpdateNaive(X, y, lambdasu, bOld)
|
function TRLooCVUpdateNaive(X, y, lambdasu, bOld)
|
||||||
|
|
||||||
n, p = size(X);
|
n, p = size(X);
|
||||||
rmsecvman = zeros(length(lambdasu));
|
rmsecv = zeros(length(lambdasu));
|
||||||
|
|
||||||
for i = 1:n
|
for i = 1:n
|
||||||
inds = setdiff(1:n, i);
|
inds = setdiff(1:n, i);
|
||||||
|
|
@ -24,9 +24,9 @@ for i = 1:n
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
rmsecvman = sqrt.(1/n .* rmsecvman);
|
rmsecv = sqrt.(1/n .* rmsecv);
|
||||||
|
|
||||||
return rmsecvman
|
return rmsecv
|
||||||
end
|
end
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
@ -36,7 +36,7 @@ Hence regression coefficients are calculated for all lambda values
|
||||||
function TRLooCVUpdateFair(X, y, lambdasu, bOld)
|
function TRLooCVUpdateFair(X, y, lambdasu, bOld)
|
||||||
|
|
||||||
n, p = size(X);
|
n, p = size(X);
|
||||||
rmsecvman = zeros(length(lambdasu))
|
rmsecv = zeros(length(lambdasu))
|
||||||
|
|
||||||
for i = 1:n
|
for i = 1:n
|
||||||
inds = setdiff(1:n, i);
|
inds = setdiff(1:n, i);
|
||||||
|
|
@ -54,12 +54,12 @@ for i = 1:n
|
||||||
|
|
||||||
# Calculating regression coefficients and residual
|
# Calculating regression coefficients and residual
|
||||||
bcoeffs = V * broadcast(./, (U' * ys), denom) .+ bOld .- V * broadcast(./, V' * bOld, denom2);
|
bcoeffs = V * broadcast(./, (U' * ys), denom) .+ bOld .- V * broadcast(./, V' * bOld, denom2);
|
||||||
rmsecvman += ((y[i] .- ((X[i,:]' .- mX) * bcoeffs .+ my)).^2)';
|
rmsecv += ((y[i] .- ((X[i,:]' .- mX) * bcoeffs .+ my)).^2)';
|
||||||
end
|
end
|
||||||
|
|
||||||
rmsecvman = sqrt.(1/n .* rmsecvman);
|
rmsecv = sqrt.(1/n .* rmsecv);
|
||||||
|
|
||||||
return rmsecvman
|
return rmsecv
|
||||||
end
|
end
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
@ -501,7 +501,7 @@ The LS problem is solved explicitly and no shortcuts are used.
|
||||||
function TRSegCVUpdateNaive(X, y, lambdas, cvfolds, bOld)
|
function TRSegCVUpdateNaive(X, y, lambdas, cvfolds, bOld)
|
||||||
|
|
||||||
n, p = size(X);
|
n, p = size(X);
|
||||||
rmsecvman = zeros(length(lambdas));
|
rmsecv = zeros(length(lambdas));
|
||||||
nfolds = length(unique(cvfolds));
|
nfolds = length(unique(cvfolds));
|
||||||
|
|
||||||
for j = 1:length(lambdas)
|
for j = 1:length(lambdas)
|
||||||
|
|
@ -516,13 +516,13 @@ for j = 1:length(lambdas)
|
||||||
ys = ydata .- my;
|
ys = ydata .- my;
|
||||||
|
|
||||||
betas = [Xs; sqrt(lambdas[j]) * I(p)] \ [ys; sqrt(lambdas[j]) * bOld];
|
betas = [Xs; sqrt(lambdas[j]) * I(p)] \ [ys; sqrt(lambdas[j]) * bOld];
|
||||||
rmsecvman[j] += sum((y[vec(inds)] - ((X[vec(inds),:] .- mX) * betas .+ my)).^2);
|
rmsecv[j] += sum((y[vec(inds)] - ((X[vec(inds),:] .- mX) * betas .+ my)).^2);
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
rmsecvman = sqrt.(1/n .* rmsecvman);
|
rmsecv = sqrt.(1/n .* rmsecv);
|
||||||
|
|
||||||
return rmsecvman
|
return rmsecv
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -532,7 +532,7 @@ K-fold CV for the Ridge regression update problem, using the 'SVD-trick' for cal
|
||||||
function TRSegCVUpdateFair(X, y, lambdas, cv, bOld)
|
function TRSegCVUpdateFair(X, y, lambdas, cv, bOld)
|
||||||
|
|
||||||
n, p = size(X);
|
n, p = size(X);
|
||||||
rmsecvman = zeros(length(lambdas));
|
rmsecv = zeros(length(lambdas));
|
||||||
nfolds = length(unique(cv));
|
nfolds = length(unique(cv));
|
||||||
|
|
||||||
for i = 1:nfolds
|
for i = 1:nfolds
|
||||||
|
|
@ -552,13 +552,13 @@ for i = 1:nfolds
|
||||||
|
|
||||||
# Calculating regression coefficients
|
# Calculating regression coefficients
|
||||||
bcoeffs = V * broadcast(./, (U' * ys), denom) .+ bOld .- V * broadcast(./, V' * bOld, denom2);
|
bcoeffs = V * broadcast(./, (U' * ys), denom) .+ bOld .- V * broadcast(./, V' * bOld, denom2);
|
||||||
rmsecvman += sum((y[vec(inds)] .- ((X[vec(inds),:] .- mX) * bcoeffs .+ my)).^2, dims=1)';
|
rmsecv += sum((y[vec(inds)] .- ((X[vec(inds),:] .- mX) * bcoeffs .+ my)).^2, dims=1)';
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
rmsecvman = sqrt.(1/n .* rmsecvman);
|
rmsecv = sqrt.(1/n .* rmsecv);
|
||||||
|
|
||||||
return rmsecvman
|
return rmsecv
|
||||||
end
|
end
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue