24小时热门版块排行榜    

查看: 3299  |  回复: 15
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

monitor2885

至尊木虫 (职业作家)

队长

[求助] 求广义线性模型GLM的函数表达式 已有1人参与

y=b0+b1*x1+b2*x2+b3*sin(x3)

y=[7.1;4.1;5.2;6.3];
x1=[1;2;3;4];
x2=[100;205;306;150];
x3=[8;10;12;5];

link 函数是 normal,求 glmfit 的表达式,求 b0, b1, b2, b3,谢谢。
回复此楼

» 猜你喜欢

Retirement
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

512095518

专家顾问 (正式写手)

【答案】应助回帖

引用回帖:
10楼: Originally posted by monitor2885 at 2015-10-29 11:01:46
显著性检验,signif=0.1,0.05,0.001......

后面我也去算过你这个方程的显著性,matlab返回的F值时NaN,不知道什么原因,不过回归方程算出的结果已经非常接近了真实值。
你可以用yhat = glmval(b,[x1 x2 sin(x3)],'identity');%回归方程求得y值,然后你可以用y-yhat观察下两个的差值,已经非常小了
我还发现可以直接用多元线性回归函数来求。估计和GLM应该是统一原理。不过regress可以返回很多需要的统计参数,你查下就知道了

y=[7.1;4.1;5.2;6.3];
x1=[1;2;3;4];
x2=[100;205;306;150];
x3=[8;10;12;5];
x=[ones(4,1),x1,x2,sin(x3)];
[b, bint,r,rint,stats]=regress(y,x,0.05);

你可以去查下regress返回的stats里面有r2,F值,F值对于的概率,和残差的方差。

应该返回的F值为NaN,我觉得表示F值已经非常小了,这个函数是极显著的。
没有极限,只有超越!
12楼2015-10-29 12:43:12
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 16 个回答

512095518

专家顾问 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
monitor2885: 金币+10, ★★★很有帮助 2015-10-29 09:55:21
b0 = 3.3941
b1 = 1.5278
b2 = -0.0044
b3 = 2.6494
没有极限,只有超越!
2楼2015-10-29 09:52:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

monitor2885

至尊木虫 (职业作家)

队长

引用回帖:
2楼: Originally posted by 512095518 at 2015-10-29 09:52:11
b0 = 3.3941
b1 = 1.5278
b2 = -0.0044
b3 = 2.6494

b = glmfit([x1 x2 x3],y,'normal','link','normal')
这个语句,为何不对呀?第一个Normal代表distr,第二个normal是link函数,不对吗?
Retirement
3楼2015-10-29 09:55:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

512095518

专家顾问 (正式写手)

【答案】应助回帖

我不太明白就是link函数是normal是什么意思,我用matlab非线性拟合帮你求出参数

y=[7.1;4.1;5.2;6.3];
x1=[1;2;3;4];
x2=[100;205;306;150];
x3=[8;10;12;5];
x=[x1 x2 x3];
f=@(b,x)b(4)+b(1)*x(:,1)+b(2)*x(:,2)+b(3)*sin(x(:,3))
b0=[0 0 0 0]';
opt=optimset('TolFun',1e-3,'TolX',1e-3);
[b R]=nlinfit(x,y,f,b0,opt)

最后求得b的数组
没有极限,只有超越!
4楼2015-10-29 09:55:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见