ylm8821 发表于 2009-11-13 11:39

regress

【求助】 用regress做二元线性回归的时候,怎么让常数项为0.用regress做二元线性回归的时候,怎么让常数项为0.
我有一堆数据,要对这个模型y=a*x1+b*x2 做线性回归,就是常数项为0.我该怎么做?
望高人指教!

ChaChing 发表于 2009-11-13 13:41

regress好像不行!==> 错误! 已更正(8F)
可以自己写, 应该不难

[ 本帖最后由 ChaChing 于 2009-11-15 16:25 编辑 ]

ylm8821 发表于 2009-11-14 17:35

好的,我会试试的

ChaChing 发表于 2009-11-14 20:11

回复 板凳 ylm8821 的帖子

使用"\"!

VibrationMaster 发表于 2009-11-14 21:04

实际就是用最小二乘

ylm8821 发表于 2009-11-15 09:51

最小二乘法是一元函数,仅是x与y之间的关系,二元的我还没看到

不明白?二元的能直接除吗?能说具体点吗?我编了一段,但效果不好,误差有点大

[ 本帖最后由 ChaChing 于 2009-11-15 10:40 编辑 ]

ChaChing 发表于 2009-11-15 10:41

回复 6楼 ylm8821 的帖子

代码 & 简单部分数据? :loveliness:

误差大/效果不好, 会不会数据即不适宜用一次方? 或数据本身的误差量大?

[ 本帖最后由 ChaChing 于 2009-11-15 15:37 编辑 ]

ChaChing 发表于 2009-11-15 15:33

怎楼主还没回应! 没现成代码吗?
不太喜欢直接给代码, 怕会抹杀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 编辑 ]

ylm8821 发表于 2009-11-16 21:18

回复 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
感觉效果不是很好,不知道您好的方法吗?

ChaChing 发表于 2009-11-17 00:02

clc;clear
x1='; x2=';
y=';
aa=; bb=y; xx=aa\bb
运行结果
xx =
    5.3145
    0.00214

结果是一样的!
如何感觉效果不是很好

[ 本帖最后由 ChaChing 于 2009-11-17 11:56 编辑 ]
页: [1]
查看完整版本: regress