Re: [问题] Array Matrix 用法

楼主: lgen7604   2013-07-04 01:09:10
我建议妳应该先了解MultipleRegression能帮你做什么
这个module的说明如下
The general purpose of multiple regression is to gain information about the
relationship between several independent
variables (x_i) and a dependent variable (y). The procedure involves
fitting an equation of the form:
y = b_o + x_1 * b_1 + x_2 * b_2 +... ... x_n * b_n
This is a minimal implementation of least squares procedure that accepts
a List-of-Lists in which each nested list
corresponds to a single set of observations. The single exported routine
returns the coefficients (b_i) and R^2.
所以他其实是用最小平方法求回归方程式的module
单纯一行 745 36 66 的意思是
你想知道某个方程式 y = b0 + x1 * b1 + x2 * b2
也可以看成 z = b0 + x * b1 + y * b2
其中 b0, b1, b2 是你希望程式帮你求出的常数
但是你只提供一组数据 (x,y,z) = (33,66,745)
当然解不出来
为了求出上列方程式
你应该至少要提供三组 (x,y,z) 的值
例如:
(x,y,z) = (1,1,6) (x,y,z) = (1,2,9) (x,y,z) = (2,1,7)
这三组数据可以推导出 z = 2 + x * 1 + y * 3
你可以试试看
my $lol = [
[qw/6 1 1/],
[qw/9 1 2/],
[qw/7 2 1/],
];
可以算出答案系数为 2, 1, 3 R^2 = 1
其实他算出的答案是 2 0.999999999999998 3
由此可以看出这个功能的计算精确度不足
如果你用下列数据
my $lol = [
[qw/6 1 1/],
[qw/9 1 2/],
[qw/7 2 1/],
[qw/28 5 6.9/], # 我故意加入一组误差数据
];
答案系数会变成 1.91619600061059 1.02953747519464 3.03388795603723
R^2 = 0.999997886406065
了解code在帮你做什么事
你才有办法利用他来解决问题
※ 引述《yu1 (~renard~)》之铭言:
: 感谢,想请问另一个问题是
: Multiple Regression 需要使用矩阵的inverse吗?
: 如果单纯一行 745 36 66
: 应该为745 + 0*x1+0*x2
: 也就是回传 745, 0 ,0 才是?

Links booklink

Contact Us: admin [ a t ] ucptt.com