Sdílet prostřednictvím


two_sample_t_test_fl()

Funkce two_sample_t_test_fl() je uživatelem definovaná funkce (UDF), která provádí T-test se dvěma vzorky.

Poznámka

Pokud předpokládáme, že dvě porovnávané datové sady mají různé odchylky, doporučujeme použít nativní welch_test().

Požadavky

  • Modul plug-in Pythonu musí být v clusteru povolený. To se vyžaduje pro vložený Python použitý ve funkci .
  • V databázi musí být povolený modul plug-in Pythonu. To se vyžaduje pro vložený Python použitý ve funkci .

Syntax

T | invoke two_sample_t_test_fl(data 1,data 2,, test_statistic, p_valueequal_var)

Přečtěte si další informace o konvencích syntaxe.

Parametry

Název Typ Vyžadováno Popis
data 1 string ✔️ Název sloupce obsahujícího první sadu dat, která se má použít pro test.
data 2 string ✔️ Název sloupce obsahujícího druhou sadu dat, která se má použít pro test.
test_statistic string ✔️ Název sloupce pro uložení hodnoty testové statistiky pro výsledky.
p_value string ✔️ Název sloupce pro uložení p-hodnoty pro výsledky.
equal_var bool Pokud true (výchozí), provede standardní nezávislý 2 výběrový test, který předpokládá stejné odchylky základního souboru. Pokud false, provede Welchův t-test, který nepředpokládá stejnou odchylku základního souboru. Jak je uvedeno výše, zvažte použití nativního welch_test().

Definice funkce

Funkci můžete definovat vložením jejího kódu jako funkce definované dotazem nebo jejím vytvořením jako uložené funkce v databázi, a to následujícím způsobem:

Definujte funkci pomocí následujícího příkazu let. Nejsou vyžadována žádná oprávnění.

Důležité

Příkaz let nelze spustit samostatně. Musí za ním následovat příkaz tabulkového výrazu. Pokud chcete spustit funkční příklad , podívejte se na two_sample_t_test_fl()příklad.

let two_sample_t_test_fl = (tbl:(*), data1:string, data2:string, test_statistic:string, p_value:string, equal_var:bool=true)
{
    let kwargs = bag_pack('data1', data1, 'data2', data2, 'test_statistic', test_statistic, 'p_value', p_value, 'equal_var', equal_var);
    let code = ```if 1:
        from scipy import stats
        import pandas

        data1 = kargs["data1"]
        data2 = kargs["data2"]
        test_statistic = kargs["test_statistic"]
        p_value = kargs["p_value"]
        equal_var = kargs["equal_var"]

        def func(row):
            statistics = stats.ttest_ind(row[data1], row[data2], equal_var=equal_var)
            return statistics[0], statistics[1]
        result = df
        result[[test_statistic, p_value]]  = df.apply(func, axis=1, result_type = "expand")
    ```;
    tbl
    | evaluate python(typeof(*), code, kwargs)
};
// Write your query to use the function here.

Příklad

Následující příklad používá operátor invoke ke spuštění funkce.

Pokud chcete použít funkci definovanou dotazem, vyvolejte ji po definici vložené funkce.

let two_sample_t_test_fl = (tbl:(*), data1:string, data2:string, test_statistic:string, p_value:string, equal_var:bool=true)
{
    let kwargs = bag_pack('data1', data1, 'data2', data2, 'test_statistic', test_statistic, 'p_value', p_value, 'equal_var', equal_var);
    let code = ```if 1:
        from scipy import stats
        import pandas

        data1 = kargs["data1"]
        data2 = kargs["data2"]
        test_statistic = kargs["test_statistic"]
        p_value = kargs["p_value"]
        equal_var = kargs["equal_var"]

        def func(row):
            statistics = stats.ttest_ind(row[data1], row[data2], equal_var=equal_var)
            return statistics[0], statistics[1]
        result = df
        result[[test_statistic, p_value]]  = df.apply(func, axis=1, result_type = "expand")
    ```;
    tbl
    | evaluate python(typeof(*), code, kwargs)
};
datatable(id:string, sample1:dynamic, sample2:dynamic) [
'Test #1', dynamic([23.64, 20.57, 20.42]), dynamic([27.1, 22.12, 33.56]),
'Test #2', dynamic([20.85, 21.89, 23.41]), dynamic([35.09, 30.02, 26.52]),
'Test #3', dynamic([20.13, 20.5, 21.7, 22.02]), dynamic([32.2, 32.79, 33.9, 34.22])
]
| extend test_stat= 0.0, p_val = 0.0
| invoke two_sample_t_test_fl('sample1', 'sample2', 'test_stat', 'p_val')

Výstup

ID ukázka 1 ukázka 2 test_stat p_val
Test č. 1 [23.64, 20.57, 20.42] [27.1, 22.12, 33.56] -1.7415675457565645 0.15655096653487446
Test č. 2 [20.85, 21.89, 23.41] [35.09, 30.02, 26.52], -3.2711673491022579 0.030755331219276136
Test č. 3 [20.13, 20.5, 21.7, 22.02] [32.2, 32.79, 33.9, 34.22] -18.5515946201742 1,5823717131966134E-06

Tato funkce není podporovaná.