How to create Multi Linier regression with matrix
1 次查看(过去 30 天)
显示 更早的评论
I have a coding to cevelop a newe formulation for Xp.
The main task is to calculate Xp, where in general Xp = Xb/Xc. I want to develop new correlation of XbNew, XcNew and XpNew
I want to modify those formultion by adding some parameters.
So XbNew= a1+a2*X3+a3*X4+a4*X5+a5*-X6
and XcNew=b1+b2*X3+b3*X4+b4*X5+b5*-X6
I want to get new function with those formulation XpNew = 1-(c1*XbNew)*exp(-X2/XbNew)+c1*XbNew
Here my coding
%Input File Input Regression(depth,rd,Vs).txt
file1='Input.txt'
fid=fopen(file1, 'r');
RegAll=fscanf(fid,'%g %g %g %g %g %g %g %g %g', [9,Inf])';
X1 =RegAll(:,1);
X2 =RegAll(:,2); % epicentre distance
X3 =RegAll(:,3); % moment magnitude
X4 =RegAll(:,4); % peak ground surface acceleration
X5 =RegAll(:,5);
X6 =RegAll(:,6);
Xb =RegAll(:,7);
Xc =RegAll(:,8);
Xp =RegAll(:,9);
Alpha=log(Xb);
Betha=log(Xc);
Dist=log(X6);
%prepare data for regression Alpha and Betha
X=[X1 X3 X4 X5 X6];
Y=[Xb];
Z=[Xc];
A=X'*X;
K=inv(X'*X)
B=X'*Y
C=X'*Z
K1=K;
a=K*B
b=K1*C
CBetha=K1*C
for i = 1:length(Const);
XbNew(i)= a1+a2*X3(i)+a3*X4(i)+a4*X5(i)+(a5*-X6(i))
XcNew(i)=b1+b2*X3(i)+b3*X4(i)+b4*X5(i)+(b5*-X6(i));
end
X1=[Const XbNew' XcNew'];
Y1=[Xp];
A1=X1'*X1;
K2=inv(X1'*X1)
c=K2*X1*Y1
%
for k=length(AlphaNew)
XpNew = 1-(c1*XbNew)*exp(-X2/XbNew)+c1*XbNew
end
My question is the value of Xb -XbNew and Xc -XcNew are differs
And why inner matrix between K2, X1 and Y1 are not equal.
How to solve my problem. Thnk you for your kind attention I am appreciat to hear any respond.
0 个评论
回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Linear and Nonlinear Regression 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!