回答
我已經設法通過使用.Net Framework 4.0及更高版本的庫(System.Windows.Forms.DataVisualization.Charting.StatisticFormula)來解決我的問題。
我能夠在C#中使用上面的庫開發一個函數用於我的計算過程。這是一個強大的圖書館,在那裏你可以在那裏找到大部分常用的統計公式(例如,平均值,中位數,t分佈,F分佈,以及它們的倒數。)
下面是我的代碼片段:
using System.Windows.Forms.DataVisualization.Charting;
private Chart ch = new Chart(); // You will need to declare an object of Chart type, as Statistic Formula class does not have a public constructor
double fDist = ch.DataManipulator.Statistics.FDistribution(fRatioVariance, degreeFreedom1, degreeFreedom2);
希望這會幫助他人。謝謝。
我可以爲FDIST和FINV創建一個函數。但是有沒有一個地方或文件去理解FDIST和FINV中涉及的方程式。基本上我需要推導出這個公式。任何想法? –
有standard_deviation 有的more統計功能,包括方差。
還有一百萬的解決方法,例如:http://oreilly.com/catalog/transqlcook/chapter/ch08.html
,你需要深入挖掘數學對於這些,雖然。
儘管它太晚但是下面是SQL Server本身的一些統計功能的實現。
要獲得FDIST函數(相當於Excel中 - FDIST),我們也將需要完全和不完全β函數以及伽瑪功能:
--GAMMA Function
CREATE FUNCTION [dbo].[udf_Gamma]
(
@x Float=NULL
)
RETURNS Float
AS
BEGIN
Declare @f Float = 10E99;
Declare @g Float = 1;
if (@x > 0)
Begin
while (@x < 3)
Begin
SET @g = @g * @x;
SET @x = @x + 1;
End
SET @f = (1 - (2/(7*power(@x,2))) * (1 - 2/(3*power(@x,2))))/(30*power(@x,2));
SET @f = ([email protected])/(12*@x) + @x*(log(@x)-1);
SET @f = (exp(@f)/@g)*power(2*PI()/@x,0.5);
End
else
Begin
SET @f = 10E99
End
return @f;
END
--BETA Complete Function
CREATE FUNCTION [dbo].[udf_BetaC]
(
@x Float=NULL
,@a Float=NULL
,@b Float=NULL
)
RETURNS Float
AS
BEGIN
--double betacf(double a,double b,double x){
Declare @maxIterations int = 50, @m int =1
Declare @eps Float = 3E-5
Declare @am Float = 1;
Declare @bm Float = 1;
Declare @az Float = 1;
Declare @qab Float = @[email protected];
Declare @qap Float = @a+1;
Declare @qam Float = @a-1;
Declare @bz Float = 1 - @qab*@x/@qap;
Declare @aold Float = 0;
Declare @em Float, @tem Float, @d Float, @ap Float, @bp Float, @app Float, @bpp Float;
while((@m<@maxIterations) AND (abs(@[email protected])>[email protected]*abs(@az)))
Begin
SET @em = @m;
SET @tem = @[email protected];
SET @d = @em*(@[email protected])*@x/((@qam + @tem)*(@[email protected]));
SET @ap = @[email protected]*@am;
SET @bp = @[email protected]*@bm;
SET @d = -(@[email protected])*(@[email protected])*@x/((@[email protected])*(@[email protected]));
SET @app = @[email protected]*@az;
SET @bpp = @[email protected]*@bz;
SET @aold = @az;
SET @am = @ap/@bpp;
SET @bm = @bp/@bpp;
SET @az = @app/@bpp;
SET @bz = 1;
SET @m = @m + 1;
End
return @az
END
--BETA INCOMPLETE Function
CREATE FUNCTION [dbo].[udf_BetaI]
(
@x Float=null
,@a Float=null
,@b Float=null
)
RETURNS Float
AS
BEGIN
Declare @bt Float=0.0
Declare @beta Float=0.0
if(@x=0 OR @x=1)
Begin
SET @bt = 0
End
else if((@x>0) AND (@x<1))
Begin
SET @bt = (Select dbo.UDF_Gamma(@[email protected])* power(@x,@a)* power([email protected],@b)/(dbo.UDF_Gamma(@a)*dbo.UDF_Gamma(@b)))
End
if(@x<(@a+1)/(@[email protected]+2))
Begin
SET @beta = (Select @bt*dbo.udf_betaC(@x,@a,@b)/@a)
End
else
Begin
SET @beta = (Select [email protected]*dbo.udf_betaC([email protected],@b,@a)/@b)
End
Return @beta
END
--FDist Function
CREATE FUNCTION [dbo].[udf_FDist]
(
@x Float=NULL
,@df1 Float=NULL
,@df2 Float=NULL
)
RETURNS Float
AS
BEGIN
Declare @x1 Float=(@x*@df1)/((@x*@df1)[email protected])
return (select 1 - dbo.udf_BetaI(@x1,(@df1/2),(@df2/2)))
END
入住在Excel = FDIST(0.5,1 ,1)= 0.608173448 和SQL編輯= SELECT udf_FDIST(0.5,1,1)= 0.608173457369209
問候, 阿維
- 1. 兼容類型的函數
- 2. 兼容java的cksum函數
- 3. 用於非兼容瀏覽器的HTML5 Web SQL數據庫?
- 4. 數據庫SQL兼容性
- 5. Excel和Ruby的兼容性
- 6. java.lang.VerifyError:函數的不兼容參數(aspectj)
- 7. 修改用於Mac Excel兼容性的VBA複選框腳本
- 8. Range.find與excel VBA不兼容
- 9. AddChart2與Excel 2010不兼容?
- 10. t-sql:內置布爾函數之間的不兼容
- 11. ActionBar兼容性可用於
- 12. nltk字對計數使用fdist
- 13. 不兼容的函數隱式聲明
- 14. 尋找兼容bigz的組合函數
- 15. PHP和Javascript兼容的加密函數
- 16. Excel中的SQL函數
- 17. 我正在爲python尋找FDIST的等效函數
- 18. Excel VBA不兼容kernel32調用
- 19. 適用於Visual Studio 2012的SSDTBI是否與SQL Server 2014兼容?
- 20. 適用於SQL Server 2012的SSDT - SSRS向後兼容
- 21. SQL Server數據類型兼容性
- 22. Excel的VBA兼容性問題
- 23. Word和Excel與Microsoft Office的兼容性
- 24. VB.NET相當於excel的商用函數
- 25. 向後兼容LinearLayout構造函數
- 26. C函數指針類型兼容性
- 27. IE兼容模式JavaScript函數不叫
- 28. goto和析構函數兼容嗎?
- 29. QLineEdit和自定義函數不兼容
- 30. 函數與C++ 11規範不兼容
應當具有標記'C#' –