繁体   English   中英

尝试使用Power BI计算梯度的问题

Issue trying to calculate gradient using Power BI

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我正在尝试计算通过数据集中包含的一系列点的趋势线的梯度。 我已经研究过是否有内置函数可以执行此操作,而似乎没有,所以我是手动进行的。 我不是DAX专家(也不可能是数学专家!)。

我已经在excel中创建了一个表格来浏览一个简单的示例,所以我知道我的目标是:

在此处输入图片说明

在Power BI环境中,“月&年”列上有两个表。 这些表的简要说明如下:

在此处输入图片说明

在此处输入图片说明

请注意,插图中的“订单”度量在Power BI代码中被称为“每天的特殊订单”。

第1步

创建平均月份数的度量:

Average of months =
    - AVERAGEX (
        SUMMARIZE (
            CALCULATETABLE ( Query_GSR, ALLSELECTED ( User_Friendly_Months ) ),
            Query_GSR[Month&Year],
            "AvMonths", AVERAGE ( Query_GSR[MonthNumForSlope] )
        ),
        [AvMonths]
    )

我在表达式部分中使用AVERAGE,以便“ AvMonths”列中的2018年9月记录具有21,然后对于2018年10月,其记录为22。我想我可以使用MIN或MAX,因为它们都表示21或22(取决于月份)(避免使用的总和为SUM,因为这将它们加起来)。

我还尝试通过汇总然后在User_Friendly_Months表中创建NATURALLEFTOUTERJOIN来获取这些月份的月数,并将其合并到此过程的其余部分中时,该度量将永久计算(即使最终实际上可以工作)不知何故)。

第2步

对订单执行相同的操作:

Average of special orders =
- AVERAGEX (
    SUMMARIZE (
        CALCULATETABLE ( Query_GSR, ALLSELECTED ( User_Friendly_Months ) ),
        Query_GSR[Month&Year],
        "Special OPD", [Special orders per day]
    ),
    [Special OPD]
)

第三步

执行原始图片中经过步骤“ C”的计算:

Column_C_Step =
SUMX (
    SUMMARIZE (
        CALCULATETABLE ( Query_GSR, ALLSELECTED ( User_Friendly_Months ) ),
        Query_GSR[Month&Year],
        "Special OPD", [Special orders per day],
        "MonthNum", AVERAGE ( Query_GSR[MonthNumForSlope] )
    ),
    ( [Special OPD] + [Average special orders] )
        * ( [MonthNum] + [Average of MonthNums] )
)

在我的示例中,该度量未返回-11.95,而是返回了零。

当我这样做时:

Check_orders_worked =
SUMX (
    SUMMARIZE (
        CALCULATETABLE ( Query_GSR, ALLSELECTED ( User_Friendly_Months ) ),
        Query_GSR[Month&Year],
        "Special OPD", [Special orders per day],
        "MonthNum", AVERAGE ( Query_GSR[MonthNumForSlope] )
    ),
    [Special OPD]
)

...我得到1188.9,这是我的Excel表格插图中“订单”的总数(因此必须有效)。

当我这样做时:

Check_months_worked =
SUMX (
    SUMMARIZE (
        CALCULATETABLE ( Query_GSR, ALLSELECTED ( User_Friendly_Months ) ),
        Query_GSR[Month&Year],
        "Special OPD", [Special orders per day],
        "MonthNum", AVERAGE ( Query_GSR[MonthNumForSlope] )
    ),
    [MonthNum]
)

...我得到43,这是我的插图中Month_Num的总数(因此,再次必须工作)。

但是,当我尝试对A和B执行等效的SUMPRODUCT以获得C时,它返回零。

任何人都可以阐明地球上正在发生的一切吗?

它让我发疯。

或者,如果有一种更简单的方法来进行梯度计算,我会欣喜若狂。

谢谢

更新

为了完整起见,这里是有效的措施:

Step_C_Measure =
VAR _OrdersAverage = [Average special orders]
VAR _MonthsAverage = [Average of MonthNums]
RETURN
    SUMX (
        SUMMARIZE (
            CALCULATETABLE ( Query_GSR, ALLSELECTED ( User_Friendly_Months ) ),
            Query_GSR[Month&Year],
            "Special OPD", [Special orders per day],
            "MonthNum", AVERAGE ( Query_GSR[MonthNumForSlope] )
        ),
        ( [Special OPD] + _OrdersAverage )
            * ( [MonthNum] + _MonthsAverage )
    )

然后执行步骤D:

Step_D_Measure =
VAR _MonthsAverage = [Average of MonthNums]
RETURN
    SUMX (
        SUMMARIZE (
            CALCULATETABLE ( Query_GSR, ALLSELECTED ( User_Friendly_Months ) ),
            Query_GSR[Month&Year],
            "Special OPD", [Special orders per day],
            "MonthNum", AVERAGE ( Query_GSR[MonthNumForSlope] )
        ),
        ( [MonthNum] + _MonthsAverage )
            * ( [MonthNum] + _MonthsAverage )
    )

最后得到渐变:

Special order gradient =
DIVIDE ( Step_C_Measure, Step_D_Measure, "" )
1 个回复

在关于多元线性回归的问题中,我链接到一个涵盖基本线性回归的社区帖子

在您的情况下,可以类似以下方式计算斜率公式:

Slope = 
VAR RowCount = COUNTROWS(Query_GSR)
VAR Sum_X = SUMX(Query_GSR, Query_GSR[Month_Num])
VAR Sum_Y = SUMX(Query_GSR, Query_GSR[Orders])
VAR Sum_XY = SUMX(Query_GSR, Query_GSR[Month_Num] * Query_GSR[Orders])
VAR Sum_XX = SUMX(Query_GSR, Query_GSR[Month_Num] * Query_GSR[Month_Num])
RETURN DIVIDE(RowCount * Sum_XY - Sum_X * Sum_Y, RowCount * Sum_XX - Sum_X * Sum_X)

这适用于多个月的回归,而不仅仅是两个月。

2 power-bi:使用切片器获取计数

我有一个几乎可以创建一个合适的帕累托表的度量: ) 唯一的问题是TotalExceptions变量,它返回ALARMS表中所有行的计数。 我需要的是过滤表的总和,它等于ExceptionCategoryTotal变量的总和。 谢谢 ...

4 使用Microsoft Graph API以power-bi获取日历数据

在我们的组织中,我们使用Office365。我正在使用Microsoft Graph API进行POC,并希望使用所有员工的日历数据来可视化Power BI中的容量。 我浏览了Graph API文档,然后才知道要在Power BI中获取日历数据,我需要使用以下URL。 但是当我尝试 ...

5 Power-BI:由于使用个人网关,数据集刷新失败

早上好。 对于我的公司,我使用 Power-BI Desktop 创建了一个报告。 为了收集数据,我建立了到 MySQL 数据库的连接并提供了登录凭据。 当我在查询中完成编辑并对报表进行建模后,我会说“发布到 Power-BI 服务”。 在那里我安排了每天刷新数据集。 然而: 我每天收到一 ...

6 计算函数梯度的问题

我想使用TensorFlow区分矢量与另一个矢量。 我无法编写和可视化输出(刚开始我的TensorFlow之旅) 我附上了我尝试过的代码段。 import numpy as np import tensorflow as tf import matplotlib.pyplot as p ...

7 在power-bi报表服务器中使用Kerberos请求类型代替NTLM

我有一台安装了power-bi报告服务的服务器,并在其上进行了配置,从托管该应用程序的前端,我安装了适当的power-bi组件的angular 7 。 由于该报告位于服务器上,并且需要进行身份验证才能登录,因此,每当我尝试访问此报告时,都会在我的网站上看到一个用户名和密码填写提示,登录后, ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM