24小时热门版块排行榜    

CyRhmU.jpeg
查看: 2981  |  回复: 20

saladin983

铁杆木虫 (正式写手)

引用回帖:
Originally posted by swenson at 2010-05-25 21:26:57:

我编了,可不知道哪错了,那东西看不太懂,你能给我编好吗?对你应该很简单,帮个忙吧!谢谢!!

把程序发上来看一眼吧,包含系数矩阵和右端向量的。

[ Last edited by saladin983 on 2010-5-26 at 00:17 ]
11楼2010-05-26 00:05:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

swenson

新虫 (初入文坛)

引用回帖:
Originally posted by saladin983 at 2010-05-26 00:05:33:


把程序发上来看一眼吧,包含系数矩阵和右端向量的。

[ Last edited by saladin983 on 2010-5-26 at 00:17 ]

A=[3.98,59.74,1/9,9;21.76,46.39,3/7,7/3;51.25,28.84,1,1;75.31,14.43,7/3,3/7;93.25,6.68,9,1/9];
b=[67.81;81.19;93.49;86.71;97.45];
%f = fittype('A*[a;b;c;d]=b');
%[c2,gof2] = fit(A,b,f)
A1=A'*A;b=A'*b;
x=inv(A1)*b
这种能算结果,但是我要看结果的置信度,那个怎么算啊,怎么知道结果的可靠性啊
12楼2010-05-26 12:03:09
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)


小雨萌萌(金币+1):谢谢解答,追加一个金币! 2010-05-26 19:33:39
swenson(金币+19):谢谢 2010-05-26 21:03:50
引用回帖:
Originally posted by swenson at 2010-05-26 12:03:09:

A=[3.98,59.74,1/9,9;21.76,46.39,3/7,7/3;51.25,28.84,1,1;75.31,14.43,7/3,3/7;93.25,6.68,9,1/9];
b=[67.81;81.19;93.49;86.71;97.45];
%f = fittype('A*[a;b;c;d]=b');
%[c2,gof2] = fit(A,b,f)
A1=A'* ...

这样用也能算,没有错,不过通常我会用A\b来求最小二乘解,反斜杠这个运算更稳定更快捷。

这么小的样本做回归分析我觉得没法讨论置信度,当然,我对概率统计的东西本来就不熟。Matlab有个函数regress,统计工具箱里的,说明如下:


REGRESS Multiple linear regression using least squares.
    b = REGRESS(y,X) returns the vector of regression coefficients, b,
    in the linear model  y = Xb, (X is an nxp matrix, y is the nx1
    vector of observations).

    [B,BINT,R,RINT,STATS] = REGRESS(y,X,alpha) uses the input, ALPHA
    to calculate 100(1 - ALPHA) confidence intervals for B and the
    residual vector, R, in BINT and RINT respectively.  The vector
    STATS contains the R-square statistic along with the F and p
    values for the regression.

    The X matrix should include a column of ones so that the model
    contains a constant term.  The F and p values are computed under
    the assumption that the model contains a constant term, and they
    are not correct for models without a constant.  The R-square
    value is the ratio of the regression sum of squares to the
    total sum of squares.

你的模型里没有常数项,所以只能算[B,BINT].我改了变量名,以对应函数说明。过程如下:
X=[3.98,59.74,1/9,9;21.76,46.39,3/7,7/3;51.25,28.84,1,1;75.31,14.43,7/3,3/7;93.25,6.68,9,1/9];
y=[67.81;81.19;93.49;86.71;97.45];
[b,bint] = regress(y,X,0.05);
得到的b是最小二乘解,而bint是置信度为95%(可以自行调整)的置信区间,看了输出的数据你就会知道这个置信区间太大,没什么意义,我想这是因为数据太少的缘故。如果非要比的话,可以计算相同置信度下的置信区间的大小,比如
norm(bint(:,1)-bint(:2))(计算矩阵bint第一列和第二列的差,然后求范数)。不过我觉得这么做意义不大。如何衡量你这个问题里线性拟合的有效性,这个问题我回答不了,需要做统计的人来说,或者,你提供一个类似的样例。
13楼2010-05-26 19:22:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

swenson

新虫 (初入文坛)

引用回帖:
Originally posted by saladin983 at 2010-05-26 19:22:15:


这样用也能算,没有错,不过通常我会用A\b来求最小二乘解,反斜杠这个运算更稳定更快捷。

这么小的样本做回归分析我觉得没法讨论置信度,当然,我对概率统计的东西本来就不熟。Matlab有个函数regress,统计 ...

线性拟合的有效性我有一个样例,你看看,对你的耐心回答,我很感激!!
x = [0.4; 0.8; 1.0; 1.2; 1.6; 2.0; 2.4; 2.8];

y = [0.354478; 0.51534; 0.629768; 0.685323; 0.830431; 0.915008; 1.001244; 1.075871];

plot(x,y,'*')

f = fittype('1 +a + b*x- ((1+a+b*x)^2-4*b*x)^1/2');

%拟合函数
[c2,gof2] = fit(x,y,f)

% 显示拟合曲线与数据点的结果
plot(c2,'m')  % 绘制拟合曲线
hold on,plot(x,y,'*') %绘制原数据点
14楼2010-05-26 21:03:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
小雨萌萌(金币+1):谢谢参与!辛苦奖! 2010-05-27 14:40:08
引用回帖:
Originally posted by swenson at 2010-05-26 21:03:33:

线性拟合的有效性我有一个样例,你看看,对你的耐心回答,我很感激!!
x = [0.4; 0.8; 1.0; 1.2; 1.6; 2.0; 2.4; 2.8];

y = [0.354478; 0.51534; 0.629768; 0.685323; 0.830431; 0.915008; 1.001244; 1.07 ...

我机器上没有安装Curve fitting toolbox,晚些时候再看看。偶尔涉猎一下自己不熟悉的领域,复习一下基础知识,对我自己也有帮助。
15楼2010-05-26 21:39:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

swenson

新虫 (初入文坛)

引用回帖:
Originally posted by saladin983 at 2010-05-26 21:39:46:


我机器上没有安装Curve fitting toolbox,晚些时候再看看。偶尔涉猎一下自己不熟悉的领域,复习一下基础知识,对我自己也有帮助。

恩,麻烦你了啊!
16楼2010-05-27 09:39:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
javeey(金币+2):谢谢给出帮助,很详细。有兴趣担任数学版的专家么? 2010-05-27 21:06:15
看了你给的这个例子,问题类型不太一样,这是个一元的非线性回归,而你的问题是多元线性回归。我看了一下Matlab曲线拟合工具箱的文档,没有看到任何关于多元回归的说明,所有的library model都是一元的。所以我认为这个工具箱在你的问题上没有用处。

网上稍微查了一下,regress函数是做多元线性回归最常用的。关于有效度的问题,我翻了这个文档(http://em.hzu.edu.cn/uploadfile/2005113002830244.ppt),现学了一下多元线性回归的内容,里面倒是有几种检验方法。但是你的模型里面有一个很大的差别,也就是前面说到的,没有常数项(注意:在regress说明档里面就提到了),这个跟一般的线性回归模型都不同,所以他们的一些校验参数似乎也用不上。

看起来这个有效度的参数只能自己定义了,我的设想是norm(Xb-y,2)^2/length(y)(变量定义同13楼),看起来还算是合理,但是我不知道这样做是否有什么理论基础。
17楼2010-05-27 20:12:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

swenson

新虫 (初入文坛)

引用回帖:
Originally posted by saladin983 at 2010-05-27 20:12:59:
看了你给的这个例子,问题类型不太一样,这是个一元的非线性回归,而你的问题是多元线性回归。我看了一下Matlab曲线拟合工具箱的文档,没有看到任何关于多元回归的说明,所有的library model都是一元的。所以我认 ...

我研究研究,虽然好多定义对我很抽象,谢谢啦!!
18楼2010-05-28 09:48:04
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

saladin983

铁杆木虫 (正式写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
javeey(金币+1):谢谢提供帮助 2010-05-30 13:36:38
刚看到Matlab帮助文档中关于曲线拟合的有效度有一段说明,参见Residual Analysis一节。照这个看来,似乎前面定义的量有一定的道理。
19楼2010-05-30 04:28:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

swenson

新虫 (初入文坛)

引用回帖:
Originally posted by saladin983 at 2010-05-30 04:28:22:
刚看到Matlab帮助文档中关于曲线拟合的有效度有一段说明,参见Residual Analysis一节。照这个看来,似乎前面定义的量有一定的道理。

具体点好吗?
20楼2010-05-30 18:32:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 swenson 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见