雙樣本T檢驗基於統計學原理用來檢驗兩個樣本的均值是否有顯著差異。本文為您介紹Designer提供的雙樣本T檢驗的參數配置和使用樣本。
組件配置
您可以使用以下任意一種方式,配置雙樣本T檢驗組件參數。
方式一:可視化方式
在Designer工作流程頁面配置組件參數。
頁簽 | 參數 | 描述 |
欄位設定 | 樣本1所在列 | 進行檢驗的樣本1所在列。 |
樣本2所在列 | 進行檢驗的樣本2所在列。 | |
參數設定 | T檢驗類型 | T檢驗的類型,取值如下:
|
對立假設類型 | 對立假設的類型,取值如下:
| |
信賴度 | 檢驗結果的信賴度,取值包括:0.8、0.9、0.95、0.99、0.995、0.999。 | |
假設均值大小 | 假設均值的大小,預設值為0。 | |
兩總體方差是否相等 | 兩個總體值的方差是否相等,取值包括true和false。 | |
節點個數 | 節點個數,與參數單個節點記憶體大小配對使用,正整數。範圍為[1, 9999]。 | |
單個節點記憶體大小,單位MB | 單個節點記憶體大小,單位MB,正整數。範圍為[1024, 64*1024]。 |
方式二:PAI命令方式
使用PAI命令方式,配置該組件參數。您可以使用SQL指令碼組件進行PAI命令調用,詳情請參見SQL指令碼。
pai -name t_test
-project algo_public
-DxTableName=pai_t_test_all_type
-DxColName=col1_double
-DxTablePartitions=ds=2010/dt=1
-DyTableName=pai_t_test_all_type
-DyColName=col1_double
-DyTablePartitions=ds=2010/dt=1
-DoutputTableName=pai_t_test_out
-Dalternative=less
-Dmu=47
-DconfidenceLevel=0.95
-Dpaired=false
-DvarEqual=true
參數名稱 | 是否必選 | 描述 | 預設值 |
xTableName | 是 | 輸入表名稱x。 | 無 |
xTablePartitions | 否 | 輸入表x中參與T檢驗的分區。系統支援以下格式:
說明 指定多個分區時,分區之間使用英文逗號(,)分隔。 | 所有分區 |
xColName | 是 | 輸入表x中參與T檢驗的列,只能為DOUBLE或INT類型。 | 無 |
yTableName | 是 | 輸入表名稱y。 | 無 |
yTablePartitions | 否 | 輸入表y中參與檢驗的分區。系統支援以下格式:
說明 指定多個分區時,分區之間使用英文逗號(,)分隔。 | 所有分區 |
yColName | 是 | 輸入表y中參與T檢驗的列,只能為DOUBLE或INT類型。 | 無 |
paired | 否 |
| false |
alternative | 否 | 對立假設的類型,取值包括:two.sided、less、greater。 | two.sided |
mu | 否 | 假設的均值,只能為DOUBLE類型。 | 0 |
varEqual | 否 | 兩個總體值的方差是否相等。可選true或false。 | false |
confidenceLevel | 否 | 檢測結果的信賴度,取值包括:0.8、0.9、0.95、0.99、0.995、0.999。 | 0.95 |
coreNum | 否 | 節點個數,與參數memSizePerCore配對使用,正整數。範圍為[1, 9999]。 | 自動計算 |
memSizePerCore | 否 | 單個節點記憶體大小,單位MB,正整數。範圍為[1024, 64*1024]。 | 自動計算 |
lifecycle | 否 | 指定輸出表的生命週期。 | 無 |
如果輸入表為普通表非分區表,不建議設定coreNum和memSizePerCore,由演算法自動計算。在資源有限的情況下,您可以使用如下代碼計算:
def CalcCoreNumAndMem(row,centerCount,kOneCoreDataSize=1024):
"""計算節點個數和單個節點記憶體。
Args:
row:輸入錶行數。
centerCount:輸入表列數。
kOneCoreDataSize:單個節點計算的資料量,單位M,正整數,預設1024。
Return:
coreNum,memSizePerCore
Example:
coreNum,memSizePerCore = CalcCoreNumAndMem(1000,99,100,kOneCoreDataSize=2048)
"""
kMBytes = 1024.0 * 1024.0
#按數量劃分,計算節點個數。
coreNum = max(1, int(row * 2 * 8 / kMBytes / kOneCoreDataSize))
#單個節點記憶體 = 資料量大小。
memSizePerCore = max(1024,int(kOneCoreDataSize * 2))
return coreNum,memSizePerCore
使用樣本
測試資料
create table pai_test_input as select * from ( select 1 as f0,2 as f1 union all select 1 as f0,3 as f1 union all select 1 as f0,4 as f1 union all select 0 as f0,3 as f1 union all select 0 as f0,4 as f1 )tmp;
PAI命令列
pai -name t_test -project algo_public -DxTableName=pai_test_input -DxColName=f0 -DyTableName=pai_test_input -DyColName=f1 -DyTablePartitions=ds=2010/dt=1 -DoutputTableName=pai_t_test_out -Dalternative=less -Dmu=47 -DconfidenceLevel=0.95 -Dpaired=false -DvarEqual=true
輸出說明
輸出一個只有一行一列的JSON格式表。
{ "AlternativeHypthesis": "difference in means not equals to 0", "ConfidenceInterval": "(-2.5465, -0.4535)", "ConfidenceLevel": 0.95, "alpha": 0.05000000000000004, "df": 19, "mean of the differences": -1.5, "p": 0.008000000000000007, "t": -3 }