Excel VBA 学生的 T 分布?
Student's T Distributions in Excel VBA?
目前我在 Excel VBA 中编写了一个函数,它基本上使用 table 数据来计算 Z 分数。然后,我使用 excel 函数 NormSDist 从这个 Z 分数中得到一个概率值。代码的最后几行如下所示:
...
Dim disToDef As Double: disToDef = (Log(asset(iNumRows) / debt(iNumRows)) + (meanAsset - sigmaAsset ^ 2 / 2) * maturity) / (sigmaAsset * Sqr(maturity))
Dim defProb As Double: defProb = WorksheetFunction.NormSDist(-disToDef)
KMVModel = defProb
End Function
我想为 T 分布获得一个等效于 NormSDist(z) 的函数,其中我可以将 z 保留为变量。我认为 Excel 中不存在 - 解决此问题的好方法是什么?
Excel可以处理T分布:
Sub test()
Debug.Print Application.WorksheetFunction.T_Dist(0.95, 20, False) 'pdf value
Debug.Print Application.WorksheetFunction.T_Dist(0.95, 20, True) 'cdf value
End Sub
输出:
0.247866113626846
0.823274027108808
目前我在 Excel VBA 中编写了一个函数,它基本上使用 table 数据来计算 Z 分数。然后,我使用 excel 函数 NormSDist 从这个 Z 分数中得到一个概率值。代码的最后几行如下所示:
...
Dim disToDef As Double: disToDef = (Log(asset(iNumRows) / debt(iNumRows)) + (meanAsset - sigmaAsset ^ 2 / 2) * maturity) / (sigmaAsset * Sqr(maturity))
Dim defProb As Double: defProb = WorksheetFunction.NormSDist(-disToDef)
KMVModel = defProb
End Function
我想为 T 分布获得一个等效于 NormSDist(z) 的函数,其中我可以将 z 保留为变量。我认为 Excel 中不存在 - 解决此问题的好方法是什么?
Excel可以处理T分布:
Sub test()
Debug.Print Application.WorksheetFunction.T_Dist(0.95, 20, False) 'pdf value
Debug.Print Application.WorksheetFunction.T_Dist(0.95, 20, True) 'cdf value
End Sub
输出:
0.247866113626846
0.823274027108808