summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--regress_pred.m21
-rw-r--r--run_tests.m1
2 files changed, 22 insertions, 0 deletions
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, :)))