99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁大數(shù)據(jù)時(shí)代如何在PowerBI DAX中有效實(shí)現(xiàn)移動(dòng)平均計(jì)算?
如何在PowerBI DAX中有效實(shí)現(xiàn)移動(dòng)平均計(jì)算?
2023-05-30
收藏

移動(dòng)平均是一種常見的數(shù)據(jù)分析技術(shù),可以用來平滑時(shí)間序列數(shù)據(jù)并提取趨勢(shì)。在Power BI中,DAX語言(Data Analysis Expressions)可以用來實(shí)現(xiàn)各種復(fù)雜的數(shù)據(jù)計(jì)算和分析,包括移動(dòng)平均。本文將介紹如何使用DAX在Power BI中有效地計(jì)算移動(dòng)平均。

  1. 什么是移動(dòng)平均

移動(dòng)平均是一種統(tǒng)計(jì)方法,用于平滑時(shí)間序列數(shù)據(jù)。它通過對(duì)連續(xù)時(shí)間段內(nèi)的數(shù)據(jù)進(jìn)行加權(quán)平均來消除噪聲和季節(jié)性因素,并揭示出潛在的趨勢(shì)和周期性變化。移動(dòng)平均通常用于經(jīng)濟(jì)學(xué)、金融、天氣預(yù)報(bào)等領(lǐng)域,以幫助預(yù)測(cè)未來趨勢(shì)和趨勢(shì)方向。

  1. 如何計(jì)算移動(dòng)平均

移動(dòng)平均計(jì)算的核心是定義一個(gè)窗口期(Window),表示要計(jì)算平均值的數(shù)據(jù)點(diǎn)數(shù)量。例如,如果窗口期為3,那么移動(dòng)平均將對(duì)連續(xù)的三個(gè)數(shù)據(jù)點(diǎn)進(jìn)行平均。隨著時(shí)間的推移,窗口期不斷地向前移動(dòng),每次都計(jì)算平均值。

以下是一個(gè)簡(jiǎn)單的移動(dòng)平均公式:

移動(dòng)平均 = (數(shù)值1 + 數(shù)值2 + ... + 數(shù)值n) / n

其中,n是窗口期大小,數(shù)值1至數(shù)值n是要計(jì)算平均值的數(shù)據(jù)點(diǎn)。例如,在一個(gè)時(shí)間序列數(shù)據(jù)中,要計(jì)算過去三個(gè)月的移動(dòng)平均,則n = 3,計(jì)算公式為:

移動(dòng)平均 = (本月銷售額 + 上月銷售額 + 上上個(gè)月銷售額) / 3

  1. 在Power BI DAX中實(shí)現(xiàn)移動(dòng)平均

在Power BI中,可以使用DAX語言來計(jì)算移動(dòng)平均。以下是一個(gè)簡(jiǎn)單的步驟:

步驟1:定義窗口期

首先,需要定義窗口期大小,也就是要計(jì)算平均值的數(shù)據(jù)點(diǎn)數(shù)量??梢允褂肈AX函數(shù)CALCULATE和LASTNONBLANK來獲取最近n個(gè)非空值。例如,要計(jì)算最近三個(gè)月的移動(dòng)平均,可以使用以下公式:

Window = CALCULATE(COUNTA(Table[Value]),FILTER(ALL(Table[Date]),Table[Date] > LASTNONBLANK(Table[Date], [Window]-1)-90))

其中,COUNTA函數(shù)計(jì)算非空值的數(shù)量,F(xiàn)ILTER函數(shù)根據(jù)日期篩選數(shù)據(jù),LASTNONBLANK函數(shù)獲取最近一個(gè)非空值。

步驟2:計(jì)算移動(dòng)平均

接下來,可以使用DAX函數(shù)AVERAGEX對(duì)窗口期的數(shù)據(jù)進(jìn)行加權(quán)平均。例如,在一個(gè)名為“Sales”的表格中,有一個(gè)名為“Amount”的列,要計(jì)算最近三個(gè)月的銷售額移動(dòng)平均,可以使用以下公式:

Sales Moving Average = AVERAGEX(FILTER(Sales,Sales[Date] > LASTNONBLANK(Sales[Date], [Window]-1)-90), Sales[Amount])

其中,F(xiàn)ILTER函數(shù)根據(jù)日期篩選數(shù)據(jù),并將結(jié)果傳遞給AVERAGEX函數(shù)進(jìn)行加權(quán)平均。LASTNONBLANK函數(shù)獲取最近一個(gè)非空值。

  1. 其他注意事項(xiàng)

在實(shí)現(xiàn)移動(dòng)平均時(shí),還需要考慮以下問題:

(1)窗口期大小的選擇:窗口期的大小對(duì)移動(dòng)平均的計(jì)算結(jié)果有很大影響。通常,窗口期越大,移動(dòng)平均越平滑,但同時(shí)也可能會(huì)掩蓋一些短期波動(dòng)性和趨勢(shì)。因此,在選擇窗口期大小時(shí),需要根據(jù)具體情況進(jìn)行權(quán)衡和調(diào)整。

(2)

數(shù)據(jù)預(yù)處理:在實(shí)現(xiàn)移動(dòng)平均之前,需要對(duì)數(shù)據(jù)進(jìn)行預(yù)處理和清洗,例如去除異常值、缺失值重復(fù)值。這樣可以保證計(jì)算結(jié)果的準(zhǔn)確性和可靠性。

(3)時(shí)間序列的基本特征:在進(jìn)行移動(dòng)平均計(jì)算時(shí),還需要考慮時(shí)間序列的基本特征,例如季節(jié)性、趨勢(shì)性和周期性等。對(duì)于不同類型的時(shí)間序列,可能需要采用不同的移動(dòng)平均方法,例如加權(quán)移動(dòng)平均、指數(shù)移動(dòng)平均和中心移動(dòng)平均等。

(4)數(shù)據(jù)可視化:最后,可以使用Power BI的可視化功能將移動(dòng)平均結(jié)果可視化展示出來,以便更好地觀察趨勢(shì)和變化。例如,在一個(gè)折線圖中同時(shí)顯示原始數(shù)據(jù)和移動(dòng)平均結(jié)果,可以更直觀地看出趨勢(shì)線和噪聲的關(guān)系。

總之,移動(dòng)平均是一種常見的數(shù)據(jù)分析技術(shù),可以用來平滑時(shí)間序列數(shù)據(jù)并提取趨勢(shì)。在Power BI中,通過使用DAX語言,可以有效地實(shí)現(xiàn)移動(dòng)平均計(jì)算,并結(jié)合數(shù)據(jù)預(yù)處理、時(shí)間序列特征和可視化等方面進(jìn)行綜合分析和展示。

數(shù)據(jù)分析咨詢請(qǐng)掃描二維碼

若不方便掃碼,搜微信號(hào):CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機(jī)數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個(gè)參數(shù)驗(yàn)證碼對(duì)象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個(gè)配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺(tái)檢測(cè)極驗(yàn)服務(wù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時(shí)表示是新驗(yàn)證碼的宕機(jī) product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請(qǐng)參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計(jì)時(shí)完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請(qǐng)輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請(qǐng)輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }