Which function should I use for generating the weighted least squares fit linear line for a given data?
    21 Ansichten (letzte 30 Tage)
  
       Ältere Kommentare anzeigen
    
    Vihaan Misra
 am 4 Okt. 2020
  
    
    
    
    
    Kommentiert: Sindar
      
 am 5 Okt. 2020
            I have a set of data which I generate using the following code:
x = linspace(-10, 10, 20);
slope = 1.5;
intercept = -1;
noiseAmplitude = 15;
y = slope .* x + intercept + noiseAmplitude * rand(1, length(x));
I want to generate a weighted linear least squares fit regression line for the above data points. I don't have the weights matrix so I can go with using the formula w(i) = 1/variance(i)^2 or any other default formula that a MATLAB function may use for generating the weights matrix. I don't know how to generate this matrix and make sure its diagonal and then fit a regression line in the data, is there a function in MATLAB which can help me achieve this?
0 Kommentare
Akzeptierte Antwort
  Sindar
      
 am 4 Okt. 2020
        
      Bearbeitet: Sindar
      
 am 5 Okt. 2020
  
      fitlm accepts weights as a vector, but doesn't come with any pre-designed ones
mdl = fitlm(x,y,'Weights',weight);
Ypred = predict(mdl,x);
plot(x,y,'k*',x,Ypred,'r')
determining variance values for your points is a separate question (my answer would be "huh? I don't think that's a sensible quantity," but if you ask clearly, others may have an answer)
5 Kommentare
  Sindar
      
 am 5 Okt. 2020
				I'd check out the Matlab online trainings (I believe most are currently free), starting with the Onramp (always free).
Weitere Antworten (0)
Siehe auch
Kategorien
				Mehr zu Linear and Nonlinear Regression finden Sie in Help Center und File Exchange
			
	Produkte
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

