参考免费微信小程序:皆我百晓生 作答,经由专家-皆知整理回复,如问题解决,望采纳;如仍有疑问,请评论回复。
在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
的起始值、结束值和步长,以适应您的具体数据范围和所需的精度。