24小时热门版块排行榜    

查看: 2163  |  回复: 8

wenzimu

新虫 (初入文坛)

[求助] matlab中如何用regress实现批量回归并出图

现在有三组143*4的矩阵数据,分别命名为GDP,LGDP,GRO。现在想通过regress以GDP为因变量,LGDP,GRO为自变量进行回归。如果是整体回归,那直接调用函数regress就可以了,但现在遇到的问题是想每列数据分区间求各自的回归方程并画图。比如第一列数据中,GDP(1:11,1)与LGDP(1:11,1),GRO(1:11,1);GDP(12:22,1)与LGDP(12:22,1),GRO(12:22,1);GDP(23:33,1)与LGDP(23:33,1),GRO(23:33,1)......GDP(133:143,1)与LGDP(133:143,1),GRO(133:143,1)这样分别进行批量回归,并画出实际值GDP与拟合值GDP的图;然后第二列、第三列、第四列数据也同样进行这样的拟合(如下图所示),不知这样该如何实现,还请高人帮忙~!

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

wenzimu

新虫 (初入文坛)

我自己用随机数做了一下,但最后发现回归参数不能一起出现在同一个矩阵中,最后矩阵中只有某一组的回归参数,请问这种情况怎么解决啊?
>> X=rand(143,4);
>> Y=rand(143,4);
>> C=ones(11,1);
>> for n=0:12
       i=11*n
   for j=1:4
   Xj=X(1+i:11+i,j);
   Xj=[Xj,C]
   Yj=Y(1+i:11+i,j)
   [b,bint,r,rint,stats]=regress(Yj,Xj)
end
end
2楼2012-08-16 16:17:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

感谢参与,应助指数 +1
改成这样
CODE:
[b(:,:,n+1),bint(:,:,n+1),r(:,:,n+1),rint(:,:,n+1),stats(:,:,n+1)]=regress(Yj,Xj);

showmethemoney
3楼2012-08-16 18:05:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wenzimu

新虫 (初入文坛)

引用回帖:
3楼: Originally posted by csgt0 at 2012-08-16 18:05:20
改成这样

=regress(Yj,Xj);

>> X=rand(143,4);
>> Y=rand(143,4);
>> C=ones(11,1);
>> for n=0:12
       i=11*n
   for j=1:4
       Xj=X(1+i:11+i,j)
       Yj=Y(1+i:11+i,j)
       Xj=[Xj,C]
      [b(:,:,n+1),bint(:,:,n+1),r(:,:,n+1),stats(:,:,n+1)]=regress(Yj,Xj)  
end
end

csgt0版主,我按照你的提示做了一遍,可是出错了,错误:“??? Subscripted assignment dimension mismatch.”  能帮我再看一下吗?谢谢!
4楼2012-08-16 18:40:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

★ ★ ★
wenzimu: 金币+1, ★★★很有帮助 2012-08-17 14:06:19
xzhdty: 金币+2, 谢谢 2012-08-17 16:50:48
引用回帖:
4楼: Originally posted by wenzimu at 2012-08-16 18:40:35
>> X=rand(143,4);
>> Y=rand(143,4);
>> C=ones(11,1);
>> for n=0:12
       i=11*n
   for j=1:4
       Xj=X(1+i:11+i,j)
       Yj=Y(1+i:11+i,j)
       Xj=
      =regre ...

没问题啊,原版的
CODE:
X=rand(143,4);
Y=rand(143,4);
C=ones(11,1);
for n=0:12
      i=11*n;
    for j=1:4
        Xj=X(1+i:11+i,j);
        Yj=Y(1+i:11+i,j);
        Xj=[Xj,C];
       [b(:,:,n+1),bint(:,:,n+1),r(:,:,n+1),stats(:,:,n+1)]=regress(Yj,Xj);
end
end

比如b的

b(:,:,1) =

   -0.1501
    0.5187


b(:,:,2) =

   -0.3011
    0.6585


b(:,:,3) =

    0.0059
    0.4830


b(:,:,4) =

   -0.3984
    0.6927


b(:,:,5) =

    0.0696
    0.4994


b(:,:,6) =

   -0.4565
    0.6888


b(:,:,7) =

    0.1679
    0.5196


b(:,:,8) =

   -0.4132
    0.8050


b(:,:,9) =

   -0.4390
    0.7496


b(:,:,10) =

   -0.8774
    0.9798


b(:,:,11) =

    0.2749
    0.3699


b(:,:,12) =

    0.2595
    0.2433
showmethemoney
5楼2012-08-17 09:33:42
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

b(:,:,13) =

    0.3210
    0.3065
showmethemoney
6楼2012-08-17 09:34:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wenzimu

新虫 (初入文坛)

引用回帖:
6楼: Originally posted by csgt0 at 2012-08-17 09:34:50
b(:,:,13) =

    0.3210
    0.3065

谢谢csgt0版主热心的答复。按照您的方法,可以实现了。有个小疑问想再麻烦您一下,就是如果代码中的Xj,Yj等这些变量也要像b这样输出13组值应该怎么改代码呢,因为按照这个运算的话,好像只能得到Xj和Yj最后一组的值,而其他的值得不到。再次感谢,真的太麻烦您了!
7楼2012-08-17 14:55:39
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

csgt0

荣誉版主 (著名写手)

彩色挂图

【答案】应助回帖

引用回帖:
7楼: Originally posted by wenzimu at 2012-08-17 14:55:39
谢谢csgt0版主热心的答复。按照您的方法,可以实现了。有个小疑问想再麻烦您一下,就是如果代码中的Xj,Yj等这些变量也要像b这样输出13组值应该怎么改代码呢,因为按照这个运算的话,好像只能得到Xj和Yj最后一组的 ...

把维数往上加就行了
CODE:
clc
clear
X=rand(143,4);
Y=rand(143,4);
C=ones(11,1);
for n=0:12
       i=11*n;
     for j=1:4
         Xj1=X(1+i:11+i,j);
         Yj(:,j,n+1)=Y(1+i:11+i,j);
         Xj(:,:,j,n+1)=[Xj1,C];
        [b(:,:,n+1),bint(:,:,n+1),r(:,:,n+1),stats(:,:,n+1)]=regress(Yj(:,j,n+1),Xj(:,:,j,n+1));
end
end

showmethemoney
8楼2012-08-17 15:28:37
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xsx小虾米

新虫 (初入文坛)

【答案】应助回帖

如果不是每11个回归一次,二是滚动回归,也就是说1到11行回归一次,2到12,3-13这样的代码该怎么写??
9楼2012-12-23 18:06:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 wenzimu 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 285化工学硕求调剂(081700) +11 柴郡猫_ 2026-03-12 11/550 2026-03-19 09:37 by laoshidan
[考研] 一志愿华中科技大学,080502,354分求调剂 +4 守候夕阳CF 2026-03-18 4/200 2026-03-18 22:16 by li123456789.
[考研] 330求调剂 +3 小材化本科 2026-03-18 3/150 2026-03-18 21:55 by 无懈可击111
[考研] 085601专硕,总分342求调剂,地区不限 +5 share_joy 2026-03-16 5/250 2026-03-18 14:48 by haxia
[考研] 0703化学调剂 +4 pupcoco 2026-03-17 7/350 2026-03-18 12:14 by djl2006
[考研] 0854,计算机类招收调剂 +3 胡辣汤放糖 2026-03-15 6/300 2026-03-18 12:09 by 上岸上岸……..
[考研] 0703化学调剂 +3 妮妮ninicgb 2026-03-17 3/150 2026-03-18 10:29 by macy2011
[考研] 材料与化工专硕调剂 +5 heming3743 2026-03-16 5/250 2026-03-17 14:03 by 勇敢太监王公公
[考研] 274求调剂 +5 时间点 2026-03-13 5/250 2026-03-17 07:34 by 热情沙漠
[考研] 求老师收留调剂 +4 jiang姜66 2026-03-14 5/250 2026-03-15 20:11 by Winj1e
[考研] 0856专硕279求调剂 +5 加油加油!? 2026-03-15 5/250 2026-03-15 11:58 by 2020015
[考研] 085601材料工程315分求调剂 +3 yang_0104 2026-03-15 3/150 2026-03-15 10:58 by peike
[考研] 材料与化工 323 英一+数二+物化,一志愿:哈工大 本人本科双一流 +4 自由的_飞翔 2026-03-13 5/250 2026-03-14 19:39 by hmn_wj
[考研] 330求调剂 +3 ?酱给调剂跪了 2026-03-13 3/150 2026-03-14 10:13 by JourneyLucky
[考研] 0856材料与化工301求调剂 +5 奕束光 2026-03-13 5/250 2026-03-13 22:00 by 星空星月
[考研] 329求调剂 +3 miaodesi 2026-03-12 4/200 2026-03-13 20:53 by 18595523086
[考研] 281求调剂 +9 Koxui 2026-03-12 11/550 2026-03-13 20:50 by Koxui
[考研] 考研调剂 +4 芬达46 2026-03-12 4/200 2026-03-13 16:04 by ruiyingmiao
[考研] 工科材料085601 279求调剂 +8 困于星晨 2026-03-12 10/500 2026-03-13 15:42 by ms629
[考研] 081200-11408-276学硕求调剂 +3 崔wj 2026-03-12 4/200 2026-03-12 19:33 by 求调剂zz
信息提示
请填处理意见