Udostępnij za pośrednictwem


bartlett_test_fl()

Funkcja bartlett_test_fl() to funkcja tabelaryczna zdefiniowana przez użytkownika, która wykonuje test Bartlett.

Wymagania wstępne

  • Wtyczka języka Python musi być włączona w klastrze. Jest to wymagane dla wbudowanego języka Python używanego w funkcji.
  • Wtyczka języka Python musi być włączona w bazie danych. Jest to wymagane dla wbudowanego języka Python używanego w funkcji.

Składnia

T | invoke bartlett_test_fl()(data1,data2,, test_statisticp_value)

Dowiedz się więcej o konwencjach składniowych.

Parametry

Nazwa Typ Wymagane Opis
data1 string ✔️ Nazwa kolumny zawierającej pierwszy zestaw danych do użycia na potrzeby testu.
data2 string ✔️ Nazwa kolumny zawierającej drugi zestaw danych do użycia na potrzeby testu.
test_statistic string ✔️ Nazwa kolumny do przechowywania wartości statystyk testowych dla wyników.
p_value string ✔️ Nazwa kolumny do przechowywania wartości p dla wyników.

Definicja funkcji

Funkcję można zdefiniować, osadzając kod jako funkcję zdefiniowaną przez zapytanie lub tworząc ją jako funkcję przechowywaną w bazie danych w następujący sposób:

Zdefiniuj funkcję przy użyciu następującej instrukcji let. Nie są wymagane żadne uprawnienia.

Ważne

Instrukcja let nie może być uruchamiana samodzielnie. Należy po nim wykonać instrukcję wyrażenia tabelarycznego. Aby uruchomić działający przykład programu bartlett_test_fl(), zobacz Przykład.

let bartlett_test_fl = (tbl:(*), data1:string, data2:string, test_statistic:string, p_value:string)
{
    let kwargs = bag_pack('data1', data1, 'data2', data2, 'test_statistic', test_statistic, 'p_value', p_value);
    let code = ```if 1:
        from scipy import stats
        data1 = kargs["data1"]
        data2 = kargs["data2"]
        test_statistic = kargs["test_statistic"]
        p_value = kargs["p_value"]
        def func(row):
            statistics = stats.bartlett(row[data1], row[data2])
            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.

Przykład

W poniższym przykładzie użyto operatora invoke do uruchomienia funkcji.

Aby użyć funkcji zdefiniowanej przez zapytanie, wywołaj ją po osadzonej definicji funkcji.

let bartlett_test_fl = (tbl:(*), data1:string, data2:string, test_statistic:string, p_value:string)
{
    let kwargs = bag_pack('data1', data1, 'data2', data2, 'test_statistic', test_statistic, 'p_value', p_value);
    let code = ```if 1:
        from scipy import stats
        data1 = kargs["data1"]
        data2 = kargs["data2"]
        test_statistic = kargs["test_statistic"]
        p_value = kargs["p_value"]
        def func(row):
            statistics = stats.bartlett(row[data1], row[data2])
            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)
};
// Example query that uses the function
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 bartlett_test_fl('sample1', 'sample2', 'test_stat', 'p_val')

Dane wyjściowe

identyfikator sample1 sample2 test_stat p_val
Test nr 1 [23.64, 20.57, 20.42] [27.1, 22.12, 33.56] 1.7660796224425723 0.183868001738637
Test nr 2 [20.85, 21.89, 23.41] [35.09, 30.02, 26.52] 1.9211710616896014 0.16572762069132516
Test nr 3 [20.13, 20.5, 21.7, 22.02] [32.2, 32.79, 33.9, 34.22] 0.0026985713829234454 0.958570306268548

Ta funkcja nie jest obsługiwana.