2015-09-07 57 views
2

我有2組數據的 - 一個是平均位置和所述其它的分數,以便爲每一個位置,我有一個項目的預測分數 -C#線性迴歸給出2臺數據

double[] positions = {0.1,0.2,0.3,0.45,0.46,...}; 
double[] scores = {1,1.2,1.5,2.2,3.4,...}; 

我需要創建一個預測平均位置得分的函數,因此給定一個位置爲1.7的新項目。 我認爲這個函數應該是類似於y = a * x + b的東西,但是我如何得到它呢?

任何幫助將不勝感激!

回答

3

是的,你必須建立一個線性函數

y = a * x + b 

,爲了做到這一點,你必須計算的款項(x預測的價值觀和y - 對應結果):

sx - sum of x's 
sxx - sum of x * x 
sy - sum of y's 
sxy - sum of x * y 

所以

a = (N * sxy - sx * sy)/(N * sxx - sx * sx); 
b = (sy - a * sx)/N; 
+0

謝謝德米特里!如果我想要對數迴歸,只需在等式中添加日誌?所以它的y = a * log(x)+ b – Chen

+0

@Chen:如果你想把* y變成'y = a * log(x)+ b',那麼只需要*對數*使用'log(x)'而不是'x')。 –