2015-05-04 103 views
1

我們在SQL Server中只有很少的內置函數來進行復雜的統計分析,但我需要計算TSQL中的多重線性迴歸。在TSQL中爲多重線性迴歸計算'R Square'和'P-Value'

基於這個職位(Multiple Linear Regression function in SQL Server),我可以能夠得到CoefficientsIntercept (Y)X1X2

我需要的是p-valueX1X2R Square

測試數據:

DECLARE @TestData TABLE (i INT IDENTITY(1, 1), X1 FLOAT, X2 FLOAT, y FLOAT) 

INSERT @TestData 
    SELECT 0, 17, 210872.3034 UNION ALL 
    SELECT 0, 23, 191988.2299 UNION ALL 
    SELECT 0, 18, 204564.9455 UNION ALL 
    SELECT 0, 4, 189528.9212 UNION ALL 
    SELECT 0, 0, 200203.6364 UNION ALL 
    SELECT 11, 0, 218814.1701 UNION ALL 
    SELECT 5, 0, 220109.2129 UNION ALL 
    SELECT 2, 0, 214377.8534 UNION ALL 
    SELECT 1, 0, 204926.9208 UNION ALL 
    SELECT 0, 0, 202499.4065 UNION ALL 
    SELECT 0, 3, 196917.8182 UNION ALL 
    SELECT 0, 9, 202286.0012 

所需的輸出:

R Square 0.4991599183412360 
p-value X1 0.0264247876580807 
p-value X2 0.7817597643898020 

我已經能夠得到f根據上述測試數據提供數據。

b    Coefficients 
---------------------------------- 
Intercept (Y) 202119.231151577 
X1 C(H)   1992.8421941724 
X2 C(C)   -83.8561622730127 

我知道TSQL不是一個很好的平臺,但我需要它純粹在TSQL中完成。

我知道XLeratorDB Function Packages for SQL Server

+0

爲什麼不簡單地使用在此基礎之上的文章中描述的方法,併爲您所需的Math.NET功能編寫一個CLR包裝?如何做到這一點非常簡單。 – Staeff

+0

感謝您的回覆。我需要在TSQL中計算它們。我有的情況不允許我使用Math.NET庫或任何其他第三方應用程序。 – sqluser

回答

1

你可以計算R用手平方,創建一個變量 'R2' 等於 (Nxysum - xsumysum)^ 2 /(Nx2sum - xsumxsum)(Ny2sum - ysumysum)?

其中xsum和ysum是您的值的總和,N是觀察值的數量。

R Squared的公式很簡單,您不一定需要任何功能或統計軟件。查看此鏈接以便手動計算:http://sciencefair.math.iit.edu/analysis/linereg/hand/

您可以將相同的邏輯應用於T-SQL。