statistics - MDX 逆正态分布
问题描述
如何在 MDX 中创建逆正态分布函数?这相当于 Excel 中的 NORM.INV() 函数。
解决方案
这不是一个很好的体系结构,但可以从 Analysis Services 多维实例中的 MDX 调用 Excel 函数。我说这不是一个好的架构,因为您必须在服务器上安装 Excel,而且对于您必须安装的 Excel 版本存在一些问题。我的笔记说安装 Excel 2003 或更高版本应该可以工作,但我已经有大约 10 年没有测试过这些笔记了。我怀疑 Excel 的 Office 365 安装将无法正常工作。如果你让它工作,那么你会看到一个 excel.exe 进程启动,因为 SSAS 在进程外运行 Excel 函数。
支持的 Excel 函数列表没有很好的记录。我拥有的文档来自 Analysis Services 2000,但我相当确定在最近的 Analysis Services 2008 测试中仍然准确(并且目前在 Analysis Services 2017 及更高版本中可能仍然准确)。
无论如何,如果你得到这个工作,那么下面的 MDX 计算成员应该工作,我相信:
create member CurrentCube.[Measures].[test] as NormInv(0.908789, 40, 1.5);
顺便说一句,如果您在 SSMS 中展开 SSAS 实例下的 Assemblies 文件夹,您将看到一个 ExcelMDX 程序集,我相信它是通往 Excel 的桥梁。这是预装的。
另一种选择是 DAX 语言具有一个NORM.INV 函数,该函数在本机实现时具有更好的性能特征。dax.guide 网站上的 Analysis Services 2019 中似乎提供了此功能,我怀疑这意味着针对多维模型的 DAX 查询将能够使用此功能,例如:
evaluate row("My NORM.INV Calc",Norm.Inv(0.908789, 40, 1.5))
推荐阅读
- dart - 如何在 InkResponse 小部件中更改 highlightShape 大小
- mongodb - PySpark MongoDB :: java.lang.NoClassDefFoundError: com/mongodb/client/model/Collation
- android - Google Places 不适用于发布 apk
- python - 找到这个字节串的编码
- facebook-audience-network - 该应用程序被拒绝,因为 Audience Network 中已有另一个具有相同标识符的应用程序
- javascript - 如何将不同行中的对象值合并为一行
- android - 颤动中的弯曲半径按钮
- c# - 在 ASP .NET MVC 中引发异常时如何向客户端显示模型异常消息
- python - 如何在python中的列表中索引中间字符
- flutter - 设置选定的初始 CupertinoPicker 选定索引