How to Add Linear Trendline that Considers Errorbars
16 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
x = [662 1173 1332];
y = [654.3724 1124.827 1271.512];
yneg = [0.089207 0.799102 0.799102];
ypos = [0.089207 0.799102 0.799102];
xneg = [0.174485 1.796169 1.672245];
xpos = [0.174485 1.796169 1.672245];
errorbar(x,y,yneg,ypos,xneg,xpos)
Above is my code. I have three data points with errorbars. How can I add a special linear trendline (if there is such option for me) for the three points that takes into account the errorbars? In other words, it will be different from a regular trendline for the points without errorbars.
2 comentarios
Rik
el 31 de Mzo. de 2017
I think you will either need the original dataset or you need to generate a dataset. But more important is the question what you mean with taking into account the errorbars.
Respuestas (3)
Joseph Cheng
el 31 de Mzo. de 2017
Editada: Joseph Cheng
el 31 de Mzo. de 2017
so if you want to take in the span of the error bars why not take into account the error bar points:
clf;
x = [1 2 3]';
y = [1 2 3]';
yneg = [.25 .1 .01];
ypos = [.15 .05 .01];
errorbar(x,y,yneg,ypos)
Ofitline = polyfit(x,y,1);
hold on, plot(x,polyval(Ofitline,x),'--b')
Errx = repmat(x,3,1);
Erry = [y; y-yneg';y+ypos'];
Efitline = polyfit(Errx,Erry,1);
hold on, plot(x,polyval(Efitline,x),'--r')
i did it in one position as i don't yet have the both direction error bars. but just fit a line with points at the bounds of the error bar. I did not include the original data as it can weight the answer in the positive or error bar.
0 comentarios
DS
el 1 de Oct. de 2018
Editada: DS
el 1 de Oct. de 2018
The error bars of your dataset represents a distribution of the data. I would suggest use the original data to fit the line. If you generate a set of data using your error bar, make sure that this new set of data represent the correct distribution of the original data. For example, if you just linspace(mean-error, mean+error, 100), these 100 points distribute evenly from mean-error to mean+error. But the thing is that, if your data follow a normal distribution (there are more data points close to the mean value), the evenly distributed data points from linspace() are NOT useful in the fitting.
0 comentarios
Isabel Allegro
el 17 de Mzo. de 2023
Editada: Isabel Allegro
el 4 de Abr. de 2023
You should be able to use this function https://de.mathworks.com/matlabcentral/fileexchange/26586-linear-regression-with-errors-in-x-and-y
0 comentarios
Ver también
Categorías
Más información sobre Errorbars en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!