matlab股票市場線性回歸
1. 知道一組數據,如何用matlab的線性回歸和線性擬合求出兩者的關系函數,求代碼
figure;
t=[1999 2000 2001 2002 2003 2004 2005 2006 2007 2008];
c=[399.72 506.97 754.98 989.4 1202.48 1473.29 1525 1717.87 1911.45 2004.25];
a=polyfit(t,c,2);
ti=1999:1:2008;
ci=polyval(a,ti);
plot(t,c,'go','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',6);
xlabel('年份');
ylabel('相關數據');
axis([1999 2008 350 2100])
hold on
plot(ti,ci,'linewidth',2,'markersize',16)
legend('原始數據點','擬合曲線')
plot(t,c,'-r.')
sprintf('曲線方程:C=%0.5g*T^2+(%0.5g)*T+(%0.5g)',a(1),a(2),a(3))
曲線方程:C=-5.5245*T^2+(22324)*T+(-2.255e+007)
這是2次線性相關
figure;
t=[1999 2000 2001 2002 2003 2004 2005 2006 2007 2008];
c=[399.72 506.97 754.98 989.4 1202.48 1473.29 1525 1717.87 1911.45 2004.25];
a=polyfit(t,c,1);
ti=1999:1:2008;
ci=polyval(a,ti);
plot(t,c,'go','MarkerEdgeColor','k','MarkerFaceColor','g','MarkerSize',6);
xlabel('年份');
ylabel('相關數據');
axis([1999 2008 350 2100])
hold on
plot(ti,ci,'linewidth',2,'markersize',16)
legend('原始數據點','擬合曲線')
plot(t,c,'-r.')
sprintf('曲線方程:C=+(%0.5g)*T+(%0.5g)',a(1),a(2),)
曲線方程:C=+(187.66)*T+(-3.7473e+005)
這是一次的線性相關
2. 關於MATLAB進行線性回歸分析
我也正在學matlab。你可以先用excel擬合試試,再用matlab。或者把數據發我,我幫你看看
3. 如何用matlab線性回歸分析
回歸分析是處理兩個及兩個以上變數間線性依存關系的統計方法。可以通過軟體Matlab實現。
在Matlab中,可以直接調用命令實現回歸分析,
(1)[b,bint,r,rint,stats]=regress(y,x),其中b是回歸方程中的參數估計值,bint是b的置信區間,r和rint分別表示殘差及殘差對應的置信區間。stats包含三個數字,分別是相關系數,F統計量及對應的概率p值。
(2)recplot(r,rint)作殘差分析圖。
(3)rstool(x,y)一種互動式方式的句柄命令。
4. 大哥,MATLAB做線性回歸分析
自己看regress幫助文檔。
[b,bint] = regress(y,X) returns a matrix bint of 95% confidence intervals for β.
[b,bint,r] = regress(y,X) returns a vector, r, of resials.
[b,bint,r,rint] = regress(y,X) returns a matrix rint of intervals that can be used to diagnose outliers. If rint(i,:) does not contain zero, then the ith resial is larger than would be expected, at the 5% significance level. This suggests that the ith observation is an outlier.
[b,bint,r,rint,stats] = regress(y,X) returns a vector stats that contains, in the following order, the R2 statistic, the F statistic and a p value for the full model, and an estimate of the error variance.
[...] = regress(y,X,alpha) uses a 100(1 - alpha)% confidence level to compute bint, and a (100*alpha)% significance level to computerint. For example, alpha = 0.2 gives 80% confidence intervals.
5. 急!急!急!用matlab求線性回歸
樓上結果正確~!可以驗證。
A=[122389,4838.9,1806;123626,5160.32,1997;124761,5425.05,2063;125786,5854.02,2053;126743,6279.98,2112;127627,6859.58,2170;128453,7702.8,2250;129227,8472.2,2357];
y=[7900.41;9010.17;12185.33;14556.5;18637.13;22411.9;26808.2;33717.63];
A=[A,ones(size(y))];
x=A\y
B=regress(y,A)
a=x(1); b=x(2); c=x(3); e=x(4);
yy=A*x;
plot(y,yy,'o',[min(y) max(y)],[min(y),max(y)])
結果:
x =
0.41922
6.7234
-3.298
-70291
B =
0.41922
6.7234
-3.298
-70291
6. 用matlab求一元線性回歸 非常急
clc,clearx=[2003;2004;2005;2006;2007;2008;2009;2010];
y=[1.92;1.95;1.97;2.01;2.05;2.08;2.12;2.23];
fun=@(a,x)a(1)+a(2).*x;%y=a+bx
a=lsqcurvefit(fun,[0,0],x,y);
b=a(2)
a=a(1)
xi=2003:0.1:2010;
yi=a+b.*xi;
plot(x,y,'o',xi,yi)
b=
0.0384
a=
-75.0000
剩餘平方和 Q=0.004082
標准誤差 Sigma=0.026084
相關指數 RR=0.943685
7. 用MATLAB怎麼做線性回歸
1.stats]=regress(y,x)..,第一值是回歸方程的置信度(相關系數),第二值是F統計量值,第二值是與F統計量相應的p值.]。
2.[b;stats——1*3檢驗統計量。
3.式中:b——參數估計值利用matlab的regress()多元線性回歸函數可以做線性回歸.
4.實現代碼;bint——b的置信區間;r——殘差向量y-xb;rint——r的置信區間;y——因變數數據n*1向量.]。
5.y
=[,bint,r,rint:
x=[。
8. 用Matlab作線性回歸
x=[
1.99
2.00
1.00;
11.43
14.76
12.86;
44.29
50.00
50.00;
72.86
81.43
75.71;
87.61
89.51
87.61;
93.33
92.86
94.29];
day=[1:6]';
%天數
%這里我想,應當是想得到發芽率與天數的關系,而跟組無關
%所以這里我將它們橫向求平均。求出每天的平均出芽率
xx=sum(x,2)/size(x,2);
A=[day,ones(size(day))];
c=A\xx;
k=c(1);
b=c(2);
yy=k*day+b;
plot(day,xx,'r*',day,yy)
%紅色的*點,是平均出芽率與天數的關系
%線是擬合出來的
%=====================================
%那我就拿第一組做試驗
%實際上就是將xx=sum(x,2)/size(x,2)
%這句改成xx=x(:,1);
%第二組,你就改成xx=x(:,2);
x=[
1.99
2.00
1.00;
11.43
14.76
12.86;
44.29
50.00
50.00;
72.86
81.43
75.71;
87.61
89.51
87.61;
93.33
92.86
94.29];
day=[1:6]';
%天數
xx=x(:,1);
A=[day,ones(size(day))];
c=A\xx;
k=c(1);
b=c(2);
yy=k*day+b;
plot(day,xx,'r*',day,yy)
9. 如何用matlab線性回歸分析
在matlab中regress()函數和polyfit()函數都可以進行回歸分析。
(1)regress()函數主要用於線性回歸,一元以及多元的。它可以提供更多的信息,殘差之類的。
(2)polyfit()函數是利用多項式擬合。可以是線性也可以是非線性的。
regress()函數詳解
[b,bint,r,rint,stats]=regress(y,X,alpha)
說明:b是線性方程的系數估計值,並且第一值表示常數,第二個值表示回歸系數。bint是系數估計值的置信度為95%的置信區間,r表示殘差,rint表示各殘差的置信區間,stats是用於檢驗回歸模型的統計量,有三個數值其中有表示回歸的R2統計量和F以及顯著性概率P值,alpha為置信度。
相關系數r^2越大,說明回歸方程越顯著;與F對應的概率P<alpha時候拒絕H0,回歸模型成立。
y表示一個n-1的矩陣,是因變數的值,X是n-p矩陣,自變數x和一列具有相同行數,值是1的矩陣的組合。如:對含常數項的一元回歸模型,可將X變為n-2矩陣,其中第一列全為1。
ONES(SIZE(A)) is the same size as A and all ones。
利用它實現X=[ones(size(x))x]
(2)polyfit()函數詳解-------------摘自sina小雪兒博客
p=polyfit(x,y,n)
[p,s]= polyfit(x,y,n)
說明:x,y為數據點,n為多項式階數,返回p為冪次從高到低的多項式系數向量p。x必須是單調的。矩陣s用於生成預測值的誤差估計。(見下一函數polyval)
多項式曲線求值函數:polyval( )
調用格式: y=polyval(p,x)
[y,DELTA]=polyval(p,x,s)
說明:y=polyval(p,x)為返回對應自變數x在給定系數P的多項式的值。
[y,DELTA]=polyval(p,x,s) 使用polyfit函數的選項輸出s得出誤差估計Y
DELTA。它假設polyfit函數數據輸入的誤差是獨立正態的,並且方差為常數。則Y DELTA將至少包含50%的預測值。
10. 怎樣用matlab做出一元線性回歸圖形
>> clear
>> x=[1656,2122,2864,4033,6099];
>> y=[2112,2170,2291,2456,2759];
>> [P,S]=polyfit(x,y,1)
%P為擬合回歸系數即y=P(1)*x+p(2)
P =
1.0e+003 *
0.0001 1.8666
S =
R: [2x2 double]
df: 3
normr: 9.4223
>> [Y,delta]=polyconf(P,x,S)
%給出回歸Y的95%的置信區間為[Y-delta,Y+delta]
Y =
1.0e+003 *
2.1090 2.1772 2.2858 2.4569 2.7592
delta =
20.6907 19.8923 19.1147 19.2502 23.2005
>> x1=1600:100:6100;
>> f=polyval(P,x1);
>> plot(x,y,'ro',x1,f,'-')%繪圖查看擬合效果
>> hold on
>> plot(x,Y+delta,'*g')
>> plot(x,Y-delta,'*g')%給出擬合的置信區間
希望我的回答能幫助你!