預測建模函數在 Tableau 中的運作方式

您已經可以將趨勢線預測新增至視覺效果,除此之外,您現在還可以利用統計引擎的能力來建立模型,藉此瞭解您的資料如何圍繞著趨勢線或最佳配適線分佈。以前,使用者必須將 Tableau 與 R 和 Python 整合,以便執行進階統計計算,並在 Tableau 中將其視覺化。現在,您可以使用預測建模函數,藉由在表計算中加入這些函數,以根據您的資料進行預測。有關表計算的詳情,請參閱使用表計算轉換值

有了這些預測建模函數,您可以藉由更新變數,並將具有不同組合預測值的多個模型視覺化,以選取目標和預測值。資料可以在任何詳細層級篩選、彙總和轉換,而模型(也就是預測)將自動重新計算以符合您的資料。

有關如何使用這些函數建立預測計算的詳細範例,請參閱範例 - 利用預測建模函數探索女性預期壽命

Tableau 中可用的預測建模函數

MODEL_PERCENTILE

語法MODEL_PERCENTILE(
model_specification (optional),
target_expression,
predictor_expression(s))
定義傳回預期值的概率(介於 0 和 1 之間)小於或等於目標運算式和其他預測值定義的觀測標記。這是後驗預測分佈函數,也稱為累積分佈函數 (CDF)。
範例
MODEL_PERCENTILE( SUM([Sales]),COUNT([Orders]))

MODEL_QUANTILE

語法MODEL_QUANTILE(
model_specification (optional),
quantile,
target_expression,
predictor_expression(s))
定義在指定的分位數傳回目標運算式和其他預測值定義的可能範圍內的目標數值。這是後驗預測分位數。
範例
MODEL_QUANTILE(0.5, SUM([Sales]), COUNT([Orders]))

預測建模函數的力量

讓我們來看看使用薪資資料的範例,從 MODEL_QUANTILE 開始。

在以下範例中,MODEL_QUANTILE 已用於顯示相同資料集之預期分佈的第 10 個百分位數和第 90 個百分位數。根據現有資料並使用線性回歸模型,統計引擎確定每個任期的薪資上限有 90% 的機率會低於綠線,每個任期的薪資下限有 10% 的機率低於藍線。

換句話說,當分位數設為 0.9 時,表示模型預測所有薪資有 90% 會落在綠線或低於綠線。藍線設定為 0.1 或 10%,因此只有 10% 的薪資會落在藍線或低於藍線,相反地,90% 會高於藍線。

實際上,這提供了一個區間,我們可以預測 80% 可能產生的未來時間點或未觀察到的資料將落在這個區間內。

薪資分佈圖表

接下來,讓我們看看 MODEL_PERCENTILE(MODEL_QUANTILE 的反向)如何幫助我們深入瞭解資料。

您可以使用 MODEL_PERCENTILE 函數來識別資料集的離群值。MODEL_PERCENTILE 會以百分位數的形式讓您知道,觀察到的標記落在每個標記的可能值範圍內的位置。如果百分位數非常接近 0.5,則觀察到的值會非常接近預測的中位數值。如果百分位數接近 0 或 1,則觀察到的值會位於模型範圍的下邊界或上邊界,這是比較出乎意料的。

以下,我們將 MODEL_PERCENTILE 以彩色的形式套用至影像上半部的薪資視覺效果,以幫助我們瞭解哪些值的預期最高。

彩色薪資分佈

預測建模函數的詳細語法

什麼是 MODEL_QUANTILE?

MODEL_QUANTILE 可計算後驗預測分位數,或在指定分位數的期望值。

  • 分位數:第一個引數是介於 0 到 1 之間的數字,表示應該預測的分位數。例如,0.5 是指將預測中位數。
  • 目標運算式:第二個引數是要預測或「設為目標」的度量。
  • 預測值運算式:第三個引數是用於進行預測的預測值。預測值可以是維度、度量,或兩者。

結果為可能範圍內的數字。

您可以使用 MODEL_QUANTILE 產生信賴區間、缺少值(如未來日期),或產生基礎資料集中不存在的類別。

什麼是 MODEL_PERCENTILE?

MODEL_PERCENTILE 會計算後驗預測分佈函數,也稱為「累積分佈函數 (CDF)」。這將介於 0 到 1 之間特定值的分位數,即 MODEL_QUANTILE 的反向。

  • 目標運算式:第一個引數是要設為目標的度量,可識別要評估的值。
  • 預測值運算式:第二個引數是用於進行預測的預測值。
  • 其他引數是可選的,包含在其中是為了控制預測。

請注意,計算語法是相似的,MODEL_QUANTILE 的額外引數是定義的分位數。

結果是期望值的機率小於或等於標記中表示的觀察值機率。

您可以使用 MODEL_PERCENTILE 顯示資料庫中的相關性和關係。如果 MODEL_PERCENTILE 傳回的值接近 0.5,則表示考量到您選取的其他預測值,觀察標記接近預測值範圍的中位數。如果 MODEL_PERCENTILE 傳回的值接近 0 或 1,則表示考量到您選取的其他預測值,觀察到的標記接近模型預期的下限或上限範圍。

附註:用作預測值的維度可以是有序的,也可以是無序的。有序的維度是指可以對其值進行排序的任何維度,如月份。無序的維度是指其值沒有固有順序的任何維度,如性別或色彩。使用高斯過程回歸時,這種區別很重要。有關此模型和其他模型的詳情,請參閱選擇預測模型

對於進階使用者,可以包括兩個其他的可選引數來控制預測。有關詳情,請參閱預測建模中的正則化和增強指定

計算的內容為何?

用於建立模型的輸入是一個矩陣,其中,每個標記都是一列,而欄是針對每個標記評估的目標運算式和預測值運算式。在視覺效果上指定的任何列都是定義統計引擎計算之資料集的列。

讓我們看看以下範例,其中列(也就是標記)是由職稱定義的,而欄是目標運算式 MEDIAN([Annual Rt])。之後是選用的其他預測值 MEDIAN([Tenure in Months (Measure)] 和 ATTR([Department Generic (group)]。

薪水資料表

附註:「部門」下的幾個職稱具有星號。這是因為這些職稱存在於多個部門,但 Tableau 將其視為在同一個部門。此外,統計引擎不會將記錄數目列入考量,並且會將每個標記的可能性視為相同。這是因為 Tableau 無法對未彙總的資料執行表計算,也無法彙總表計算的結果。有關彙總的詳情,請參閱 Tableau 中的資料彙總

有關用於建立模型和產生預測之資料的詳情,請參閱預測建模中的計算使用和資料分區

支援哪些模型?

預測建模函數支援線性回歸、正則化線性回歸和高斯過程回歸。這些模型支援不同的使用案例和預測類型,並且具有不同的限制。有關詳情,請參閱選擇預測模型

選擇您的預測值

預測值可以是資料來源中的任何欄位(度量或維度),包括導出欄位。

附註:如果使用維度做為預測值,您必須使用 ATTR 包裝函式(亦即 ATTR([State],而非只是 [州/省])。這是因為維度通常僅在視覺效果的詳細層級中,或是在其之上的階層中,才會直接發揮作用。

例如,假設您的資料集包括欄位 [城市]、[州/省] 和 [區域],其中,多個 [城市] 記錄存在於 [州/省]中,而多個 [州/省] 記錄存在於 [區域] 中。

在使用 [州/省] 做為標記的視覺效果中,預測值 ATTR([State]) 或 ATTR([Region]) 皆做為預測值運作。但是,預測值 ATTR([City]) 將還原至 *,因為多個城市存在於某個已視覺化的州/省中,因此無法用來做為預測值。換句話說,包括比視覺效果更低詳細層級的預測值不會將任何值新增至預測。在大多數情況下,比視覺效果更低詳細層級的預測值將評估為 *,因此,所有預測值都將得到相同的處理。

但是,如果使用相同的資料集來產生使用 [城市] 做為標記的視覺效果,則 ATTR([City])、ATTR([State]) 和 ATTR([Region]) 皆可順利地做為預測值。有關使用 ATTR 函數的詳情,請參閱何時使用屬性 (ATTR) 函數

維度和度量不需要視覺化(在檢視中或視覺效果中),即可做為預測值包含在內。有關詳細指引,請參閱選擇預測值

推薦設定

建議使用預測計算,如下所示:

  • 若要預測單筆記錄的值,其中,視覺效果中的每個標記表示一個離散實體,例如產品、銷售、人員等,而不是彙總資料。這是因為 Tableau 將每個標記的可能性視為相同,即使某個標記是由 100 筆記錄組成,而其他標記是由一筆記錄組成。統計引擎不會根據組成的記錄數目來加權標記。

  • 使用 SUM 和 COUNT 來預測彙總目標運算式的值。
附註:不建議 MODEL_QUANTILE 和 MODEL_PERCENTILE 使用 AVG、MEDIAN、MIN 和 MAX 預測彙總 target_expressions 的值。

限制

  • 您必須使用導出欄位,將時間序列延長到未來。有關詳情,請參閱預測未來

  • 預測值的詳細層級應該與檢視相同或更高。也就是說,如果您的檢視是依州/省彙總,您應該使用州/省或區域做為預測值,而非使用城市。有關詳情,請參閱選擇預測值

預測計算何時中斷?

無論使用哪個模型,每個分割區內必須至少有三個資料點,模型才會傳回回應。

若已將高斯過程回歸指定為模型,則可以將其用於以下預測計算中:具有一個有序的維度預測值和任意數量的無序維度預測值。在高斯過程回歸計算中,不支援將度量用作預測值,但可以將度量用於線性和正則化線性回歸計算中。有關模型選取的詳情,請參閱選擇預測模型

若計算已使用 ATTR[State] 作為預測值,並且視覺效果也包括 [州/省] 作為標記,但沒有其他詳細資料層級較低的欄位(例如 [城市]),則會傳回錯誤。為了防止這種情況,只需確保標記和預測值類別之間沒有一對一的關係。

有關這些和其他預測問題的詳情,請參閱解決預測建模函數中的錯誤

常見問題集

那麼多個預測值群組中的標記又是如何?

如果從存在於多個預測值群組中的資料彙總列,則 ATTR 函數的值是多個值的特殊值。例如,存在於多個州/省的所有城市都將具有相同的預測值(除非有其他不同的預測值)。選取預測值時,最好使用與視覺效果相同或更高詳細層級的預測值。同樣地,有關 ATTR 函數的詳情,請參閱何時使用屬性 (ATTR) 函數

如果 ATTR 彙總傳回 * 值,該怎麼辦?

* 視為不同值。如果 ATTR 針對所有標記傳回 *,那麼實際上,您具有包含常數值的預測值,該預測值將予以忽略。這等於完全不包含該預測值。

如果 ATTR 針對某些標記(但並非所有標記)傳回 *,則會視為一個類別,其中,所有 * 值視為相同。此情況與上述情況相同,其中,標記存在於多個預測值群組中。

「計算使用」表計算功能表選項如何?

此功能與其他表計算中的「計算使用」相同。有關詳情,請參閱預測建模中的計算使用和資料分區

為何會遇到錯誤?

使用預測建模函數時,遇到錯誤的可能原因有很多種。有關詳細的疑難排解步驟,請參閱解決預測建模函數中的錯誤

感謝您的意見反應!已成功提交您的意見回饋。謝謝!