regress
【求助】 用regress做二元线性回归的时候,怎么让常数项为0.用regress做二元线性回归的时候,怎么让常数项为0.我有一堆数据,要对这个模型y=a*x1+b*x2 做线性回归,就是常数项为0.我该怎么做?
望高人指教! regress好像不行!==> 错误! 已更正(8F)
可以自己写, 应该不难
[ 本帖最后由 ChaChing 于 2009-11-15 16:25 编辑 ] 好的,我会试试的
回复 板凳 ylm8821 的帖子
使用"\"! 实际就是用最小二乘 最小二乘法是一元函数,仅是x与y之间的关系,二元的我还没看到不明白?二元的能直接除吗?能说具体点吗?我编了一段,但效果不好,误差有点大
[ 本帖最后由 ChaChing 于 2009-11-15 10:40 编辑 ]
回复 6楼 ylm8821 的帖子
代码 & 简单部分数据? :loveliness:误差大/效果不好, 会不会数据即不适宜用一次方? 或数据本身的误差量大?
[ 本帖最后由 ChaChing 于 2009-11-15 15:37 编辑 ] 怎楼主还没回应! 没现成代码吗?
不太喜欢直接给代码, 怕会抹杀LZ思考的权益, 但快没时间又怕忘记, 先给! LZ参考下
clc; clear
x1='; x2=';
a=3; b=2; yy=a*x1+b*x2;
y=yy+rand(5,1);
aa=; bb=y; xx=aa\bb
抱歉! 刚又仔细看下regress的help
才发现个人在2F的回覆有误, regress是可以没常数项的!
regress(y,aa)
[ 本帖最后由 ChaChing 于 2009-11-15 16:13 编辑 ]
回复 8楼 ChaChing 的帖子
谢谢您,我是新手,多多包涵。今天才上论坛,x1='; x2=';y=';得出y=a*x1+b*x2 ,求出参数a,b。
我的代码是这样写的:
子程序:
function f = myfun(x)
global x1 x2 y
f = (y(1)-(x(1)*x1(1)+x(2)*x2(1))).^2+(y(2)-(x(1)*x1(2)+x(2)*x2(2))).^2+(y(3)-(x(1)*x1(3)+x(2)*x2(3))).^2+(y(4)-(x(1)*x1(4)+x(2)*x2(4))).^2;
主程序:
clc;clear
global x1 x2 y
x1=';
x2=';
y=';
x0 = ;
=fminunc(@myfun,x0)
运行结果:x =
5.3146 0.0021
fval =
99.1735
感觉效果不是很好,不知道您好的方法吗? clc;clear
x1='; x2=';
y=';
aa=; bb=y; xx=aa\bb
运行结果
xx =
5.3145
0.00214
结果是一样的!
如何感觉效果不是很好
[ 本帖最后由 ChaChing 于 2009-11-17 11:56 编辑 ]
页:
[1]