summaryrefslogtreecommitdiff
path: root/log_regress_pred.m
diff options
context:
space:
mode:
authorBenjamin Franzke <benjaminfranzke@googlemail.com>2012-05-10 12:28:08 +0200
committerBenjamin Franzke <benjaminfranzke@googlemail.com>2012-05-10 12:28:08 +0200
commitd0b29ac2f35923e05deda5dbe1856f04911c55bf (patch)
treec4c29e9b9ac725c9fd4de4861c056ecc99644774 /log_regress_pred.m
parent031f9ecc989d177215bc85e1827cf1d72db07643 (diff)
downloaddmc-d0b29ac2f35923e05deda5dbe1856f04911c55bf.tar.gz
dmc-d0b29ac2f35923e05deda5dbe1856f04911c55bf.tar.bz2
dmc-d0b29ac2f35923e05deda5dbe1856f04911c55bf.zip
Add logarithmic interpolation predection
Slightly better than linear regression.
Diffstat (limited to 'log_regress_pred.m')
-rw-r--r--log_regress_pred.m22
1 files changed, 22 insertions, 0 deletions
diff --git a/log_regress_pred.m b/log_regress_pred.m
new file mode 100644
index 0000000..3c90441
--- /dev/null
+++ b/log_regress_pred.m
@@ -0,0 +1,22 @@
+function pred = log_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
+ [a,b] = regress_log(price(test_set, i), quantity(test_set, i));
+ pred(:, i) = a * log(price(pred_set, i)) + b;
+ end
+
+endfunction
+
+
+function [a,b] = regress_log(x, y)
+ ab = [ log(x) ones(length(x), 1) ] \ y;
+ a = ab(1);
+ b = ab(2);;
+endfunction