加權最小二乘回歸方法-程式範例
在一般的線性回歸求相關係數時候,大都選擇最小二乘回歸分析方法來擬合。它的原理是:假設擬合方程為:
a0 =
(∑yi) / n - a1
(∑xi) / n,
a1 = [n∑(xi yi) –(∑xi∑yi)] / [n∑(xi^2) – (∑xi)^2 )]
或者用最小二乘公式推理如下:∑(
x-x平
)(y-y平)
=∑(xy-x
平y-xy平+x
平y平)
=∑xy-x
平∑y-y
平∑x+nx平y
平=∑xy-nx平y
平-nx平y
平+nx平y
平=∑xy-nx平y
平;
∑(x -x平)
2=∑(x
2-2xx平+x
平2)=∑x
2-2x
平∑x+nx平2
=∑x2
-2nx平2
+nx平2
=∑x2
-nx平2;
(1) k=∑
(x-x平)
(y-y平)
/∑(x -x平)
2=(∑xy-nx平y
平)/(∑x
2-nx平2)
(2)b=y
平-kx
平float regression(float z,float temp, in***ata)
/*sz_media =sz/ndata;*/
sz_media=sz;
st_media=st;
//st_media =st/ndata;
sz_acum = 0.0;
//printf("\n sz = %f, st = %f,sz_media = %f, st_media = %f", sz, st, sz_media, st_media );
for(i=0;i
beta1 /= ( sz_acum);
beta0 = st_media - beta1 * sz_media;
//printf("\n beta0 = %f, beta1 =%f", *beta0, *beta1);
return beta1;
}2)在需要考慮到不同資料對線性回歸影響大小,比如分析濃度與檢測峰值的回歸關係的時候,濃度越大的資料樣本對建模回歸結果影響較大;在求解溫度遞減率的時候,溫差大的資料站點的影響力度要大。所以簡單最小二乘回歸要考慮單個樣本的權重大小。如何在程式中加入權重w陣列。仔細對比下面**和上面的,就可以了解如何處理。ps:權重大小用小數表示,權重總和是1。
float regression(floatz,float temp,float weight,int ndata)
//sz_media =sz/ndata;
sz_media = sz;
//st_media =st/ndata;
st_media = st;
sz_acum = 0.0;
// printf("\nsz = %f, st = %f, sz_media = %f,st_media = %f", sz, st, sz_media, st_media );
for(i=0;i
beta1 /= sz_acum;
beta0 = st_media - beta1 * sz_media;
// printf("\nbeta0 = %f, beta1 = %f", *beta0,*beta1);
returnbeta1;
}
最小二乘 加權最小二乘 matlab實現
最小二乘 最小二乘法 又稱最小平方法 是一種數學優化技術。它通過最小化誤差的平方和尋找資料的最佳函式匹配。利用最小二乘法可以簡便地求得未知的資料,並使得這些求得的資料與實際資料之間誤差的平方和為最小 最小二乘法還可用於曲線擬合,其他一些優化問題也可通過最小化能量或最大化熵用最小二乘法來表達。加權最小...
最小二乘和加權最小二乘的原理與實現
已知有一組資料,在座標系中表示成一組點集n。現在的目標是估計出一條經過點集n的直線,要求直線滿足一定的準則。不同的準則最後定義不同的優化方法,這裡我們通過定義兩種不 同的準則,來引出最小二乘和加權最小二乘的介紹。首先回到直線擬合的這個問題中來。一般假設點集n中的點是通過對直線進行取樣獲得,通常 取樣...
python 偏最小二乘回歸實現
import pandas as pd import numpy as np from sklearn.cross decomposition import plsregression from sklearn.model selection import gridsearchcv from skl...