waxo0825 2024-04-30 17:43 采纳率: 0%
浏览 21

POWER BI DAX 根据筛选值生成正态分布

POWER BI DAX: 根据筛选的值 生成正态分布

我的数据源包含Date,Derivaitves, Value, Remarks, 我写了两个表达式,根据所筛选的Derivatives可以生成Average和Standard Deviation

Average = CALCULATE(
    AVERAGE(Py_FEI_TS[Value]),[]([]())
    Py_FEI_TS[Derivatives] = SELECTEDVALUE(Py_FEI_TS[Derivatives])
)
 
Standard DEV = CALCULATE(
    STDEV.S(Py_FEI_TS[Value]),
    Py_FEI_TS[Derivatives] = SELECTEDVALUE(Py_FEI_TS[Derivatives])
)

根据以上信息,我尝试生成正态分布的表达式: Normal Distribution = NORM.DIST(SELECTEDVALUE(Py_FEI_TS[Value]), [Average], [Standard DEV], FALSE())
但是该表达式生成的图一直报错

img


.

想要请问有什么解决办法,或者应该如何生成符合要求额正态分布。

  • 写回答

5条回答 默认 最新

  • 专家-皆知 2024-04-30 17:43
    关注

    参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。

    在Power BI中,使用DAX公式来生成正态分布图涉及到几个关键点。错误提示表明NORM.DIST函数中的一个或多个参数类型不正确或结果超出了可处理范围。根据您的描述,这里的问题很可能在于您尝试将SELECTEDVALUE(Py_FEI_TS[Value])直接用于NORM.DIST函数,而这个值可能包含了实际观察值,而非用于计算正态分布概率的标准化值。

    下面是一个解决步骤和修正后的DAX表达式示例,用于计算给定值在基于筛选Derivatives的平均值和标准差下的正态分布概率密度:

    首先,确保您的平均值和标准差的计算是正确的。您提供的代码看起来基本正确,但请注意,在DAX中,如果您想确保表达式只基于当前上下文(比如筛选器),通常不需要额外的过滤器语法,除非有特定的高级上下文需求。因此,简化后的平均值和标准差计算可能是这样的:

    Average =
    AVERAGE(Py_FEI_TS[Value])
    

    StandardDev =
    STDEV.P(Py_FEI_TS[Value])
    

    注意,我使用了STDEV.P而不是STDEV.S,因为通常在创建全局度量值时,我们想要的是总体标准偏差,除非你明确知道并且需要样本标准偏差。

    接下来,计算标准化值,然后使用NORM.DIST函数。标准化值计算公式是:(X - 平均值) / 标准差。然后用这个标准化值去调用NORM.DIST函数。修改后的正态分布计算表达式如下:

    NormalDistributionProbability =
    VAR SelectedValue = SELECTEDVALUE(Py_FEI_TS[Value])
    VAR AverageValue = [Average]
    VAR StandardDevValue = [StandardDev]
    VAR StandardizedValue = (_SelectedValue - _AverageValue) / _StandardDevValue
    RETURN NORM.DIST(StandardizedValue, 0, 1, FALSE)
    

    这段代码首先定义了当前选中的值、平均值和标准差,然后计算出标准化值,最后调用NORM.DIST函数,这里的第一个参数是标准化值,第二个和第三个参数分别为正态分布的平均值和标准差,由于我们已经标准化了输入值,所以这里使用0和1,最后一个参数FALSE表示返回累积分布函数的概率密度,而非累积概率。

    创建这些度量值后,您可以在视觉元素中选择这些度量值来展示数据。如果目的是创建一个图表显示正态分布曲线,您可能需要进一步的操作,比如创建一个表来代表一系列的X值,然后对这些X值应用上述正态分布公式,从而生成分布曲线的数据。这通常涉及使用“新建表”功能和生成一系列数字来代表X轴的值。例如:

    XValues = GENERATESERIES(min(Py_FEI_TS[Value]), max(Py_FEI_TS[Value]), 0.1)
    

    然后基于这个XValues表和您的正态分布公式创建视觉图表。

    请记得在实际应用中调整GENERATESERIES的起始值、结束值和步长,以适应您的具体数据范围和所需的精度。

    评论 编辑记录

报告相同问题?

问题事件

  • 创建了问题 4月30日

悬赏问题

  • ¥15 35114 SVAC视频验签的问题
  • ¥15 impedancepy
  • ¥15 在虚拟机环境下完成以下,要求截图!
  • ¥15 求往届大挑得奖作品(ppt…)
  • ¥15 如何在vue.config.js中读取到public文件夹下window.APP_CONFIG.API_BASE_URL的值
  • ¥50 浦育平台scratch图形化编程
  • ¥20 求这个的原理图 只要原理图
  • ¥15 vue2项目中,如何配置环境,可以在打完包之后修改请求的服务器地址
  • ¥20 微信的店铺小程序如何修改背景图
  • ¥15 UE5.1局部变量对蓝图不可见