3

数学单元或其他单元是否允许我们从 Delphi 中访问统计表?例如,如果我想要显着性水平为 0.05、2 和 10 自由度的 F 表值,我在 Excel 中输入 FINV(0.05, 2, 10) 并得到 4.1028。德尔福有类似的东西吗?谢谢。

4

3 回答 3

0

开源的 Pascal/Delphi AMath库有许多统计分布,包括 PDF、CDF 和 InverseCDF(即分位数函数);有关已实现分布的列表,请参见此处,您的 F 表值可以用

f_inv(nu1,nu2,y): the functional inverse of the F distribution, nu1, nu2 > 0, 0 <= y <= 1

在您的情况下,第三个参数是 1 - 重要性级别,double 函数返回

F_Inv(2,10,1-0.05) = 4.1028210151

于 2013-10-14T11:45:07.993 回答
0

我个人对TPMath/DMath 库有很多很好的经验,可以在 Delphi 中提供统计功能。这个库声称提供与广为人知的Numerical Recipes类似的功能,但由于我肯定只使用过它的一小部分功能,我不知道它是否真的实现了这个承诺。

无论如何,如果我理解正确,您是在专门谈论F 分布,据我从 TPMath 手册中看到,它看起来包含相关功能(我假设它是“Snedecor 的分布”下的那个) .

我不完全确定它是否与 Excel 的FINV功能相同,但我的第一个猜测是你想看看这个 [引自手册]:

Function InvSnedecor(Nu1, Nu2, P)返回值 X 使得 Phi(nu1,nu2)(X) = P。

于 2013-10-14T09:08:42.047 回答
0

德尔福不附带任何这种性质的东西。您需要找到第三方代码。

每当我面临实现这样的事情时,我都会这样做:

  • 查找一些 Fortran 77 代码
  • 使用 f2c -a 将其转换为 C
  • 使用 C 编译器编译为目标文件
  • 使用 $L 静态链接

一种更简单的方法是编译为 DLL,但为了便于分发,我避免这样做。

于 2013-10-13T20:21:35.790 回答