数学建模社区-数学中国

标题: 用lingo做一元线性回归 [打印本页]

作者: Fsheen    时间: 2008-2-2 11:36
标题: 用lingo做一元线性回归

根据最小二乘法的原理,发现LINGO还可以解决一部分统计学的问题,呵呵

model:
!一元线性回归;
!最小二乘法拟合;
sets:

!因变量;
YY/1..10/:y;

!自变量;
XX/1..10/:x;

link(YY,XX):a,b;

endsets

!数据;
data:
x=68 53 70 84 60 72 51 83 70 64;
y=288 298 349 343 290 354 283 324 340 286;
enddata
!残差平方;
@for(link(i,i):a(i,i)=(y(i)-b0-b1*x(i))^2);

@for(link(i,i):b(i,i)=x(i)*y(i));

!目标函数;
!残差平方和;
min=@sum(link(i,i):a(i,i));
!残差平方和;
e=@sum(link(i,i):a(i,i">Qe=@sum(link(i,i):a(i,i));

!约束;
!正规方程;
10*b0+b1*(@sum(XX(i):x(i)))=@sum(YY(i):y(i));
b0*(@sum(XX(i):x(i)))+b1*(@sum(XX(i):x(i)^2))=@sum(link(i,i):b(i,i));

end


作者: fklihk    时间: 2008-2-9 08:10

这问题用lingo,未免过于舍近求远


作者: liwenhui    时间: 2008-2-9 10:03

如果用matlab,要简单一些:

clear all

format long

x=[68 53 70 84 60 72 51 83 70 64];
y=[288 298 349 343 290 354 283 324 340 286];
[p,r]=polyfit(x,y,1)

运行结果:

p =

1.0e+002 *

0.01800729594163 1.93950752393981


r =

R: [2x2 double]
df: 8
normr: 64.16353650107411

线性回归模型为:y=1.800729594163*x+193.950752393981


作者: liwenhui    时间: 2015-7-13 11:20
多年之后,当我再看到这帖子的时候,我明白了楼主讨论这个LINGO用处的优越性。

作者: chenlian1996070    时间: 2015-8-19 14:20
哎哟,不错!~~~





欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5