From dcbe7e13245eee0f0266f1549504a3bdc392a851 Mon Sep 17 00:00:00 2001 From: Benjamin Franzke Date: Tue, 24 Apr 2012 14:24:24 +0200 Subject: Add prediction test using linear regression --- regress_pred.m | 21 +++++++++++++++++++++ run_tests.m | 1 + 2 files changed, 22 insertions(+) create mode 100644 regress_pred.m diff --git a/regress_pred.m b/regress_pred.m new file mode 100644 index 0000000..0ba8394 --- /dev/null +++ b/regress_pred.m @@ -0,0 +1,21 @@ +function pred = regress_pred(price, quantity) + + days = size(price, 1) - size(quantity, 1); + product_count = size(price, 2); + test_count = size(quantity, 1); + test_set = 1:test_count; + pred_set = test_count+1:size(price, 1); + + pred = zeros(days, product_count); + for i = 1:product_count + [m,n] = regress(price(test_set, i), quantity(test_set, i)); + pred(:, i) = m .* price(pred_set, i) + n; + end + +endfunction + +function [m, n] = regress(x, y) + mn = [ x ones(length(x), 1) ] \ y; + m = mn(1); + n = mn(2); +endfunction diff --git a/run_tests.m b/run_tests.m index 8fef37b..e2975cc 100644 --- a/run_tests.m +++ b/run_tests.m @@ -1,2 +1,3 @@ [p, q] = get_products(); meanerr = quad_error(q(29:42, :), mean_pred(q(1:28, :), 14)) +regresserr = quad_error(p(29:42, :), regress_pred(p, q(1:28, :))) -- cgit