how do i deduce the function using linear regression for a set of x and y values?
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
Zaki Aslam
el 2 de En. de 2022
Comentada: Zaki Aslam
el 2 de En. de 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 comentarios
Respuesta aceptada
Turlough Hughes
el 2 de En. de 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 comentario
Turlough Hughes
el 2 de En. de 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))
Más respuestas (1)
KSSV
el 2 de En. de 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')
Ver también
Categorías
Más información sobre Interpolation en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!