how do i deduce the function using linear regression for a set of x and y values?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Zaki Aslam
le 2 Jan 2022
Commenté : Zaki Aslam
le 2 Jan 2022
clc
clear all
load x2.txt
load y2.txt
x=[x2]
y=log([y2])
format long
b2=x\y
yCalc1 = b2*x;
scatter(x,y)
hold on
plot(x,yCalc1)
xlabel('X_2')
ylabel('Y_2')
title('Linear Regression Relation Between X2 & Y2')
This is what I am getting when i tried to use linear regression. Is there any way i can find the function this plot is tracing?
0 commentaires
Réponse acceptée
Turlough Hughes
le 2 Jan 2022
Consider using a power fit.
Your data:
x = readmatrix('https://uk.mathworks.com/matlabcentral/answers/uploaded_files/850570/x2.txt');
y = readmatrix('https://uk.mathworks.com/matlabcentral/answers/uploaded_files/850575/y2.txt');
Power law fit:
powerFit = fit(x, y, fittype('power1'))
plot(powerFit, x, y);
set(gca,'YScale','log')
1 commentaire
Turlough Hughes
le 2 Jan 2022
You actually have the parameters in your question but the way you fitted the data fixes the intercept to 0 - so the slope is equal to b2 and the intercept is 0. As a point of information, you can fit the slope and intercept using matrix left division with the following modification:
x = readmatrix('https://uk.mathworks.com/matlabcentral/answers/uploaded_files/850570/x2.txt');
y = readmatrix('https://uk.mathworks.com/matlabcentral/answers/uploaded_files/850575/y2.txt');
log_y = log(y);
b = [ones(size(x)) x]\log_y; % pad the left side with ones
yCalc1 = b(2)*x + b(1);
scatter(x,log_y)
hold on
plot(x,yCalc1)
sprintf('Slope: %1.2f\nIntercept: %1.2f',b(2),b(1))
Plus de réponses (1)
KSSV
le 2 Jan 2022
clc
clear all
load x2.txt
load y2.txt
x=x2 ;
y = log(y2) ;
% Use polyfit
p = polyfit(x,y,1) ;
yCalc1 = polyval(p,x) ;
scatter(x,y)
hold on
plot(x,yCalc1)
title(sprintf('y = %f*x+%f',p))
xlabel('X_2')
ylabel('Y_2')
Voir également
Catégories
En savoir plus sur Smoothing 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!