non linear regression code
12 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I did linear regression by the code below. data set is attached.
clear;
clc
load('data.mat');
F=F'; T=T'; W=W';
Q1=F;
Q2=T;
X=[Q1 Q2];
for i=1:70
Y=W(:,i);
% b = regress(Y,X,0.05);
mdl{i} = fitlm(X,Y);
XX{i}= mdl{i}.Coefficients;
rmqs(i)=mdl{i}.RMSE;
for j=1:3
b(i,j)=XX{i}{j,1};
er(i,j)=XX{i}{j,2};
end
end
I want to change this code to fit the data for a non-linear model. which is,
Y~b0+b1*Q1+b2*Q2+b3*cos(2*pi*T+b4)
instead,
Y~b0+b1*Q1+b2*Q2
I need the coefficients with errors. How can I do that?
0 commentaires
Réponses (1)
Brendan Hamm
le 12 Août 2015
Is T a predictor variable in this equation or a constant? If it is a constant you would want to create a function handle (which nlinfit requires anyhow, but fitnlm accepts). If it is a predictor you would need to place it in the matrix X and you can pass the modelspec in fitnlm as:
modelspec = 'y~b1+b2*x1+b3*x2+b4*cos(2*pi*x3+b5)';
I imagine you would want to estimate the frequency as well, unless this is known a priori.
4 commentaires
Brendan Hamm
le 13 Août 2015
As useful as google sounds like a complement, thank you. I might have to place that on my resume.
Voir également
Catégories
En savoir plus sur Linear Regression dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!