Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Changer de service à l’aide de la liste déroulante Version . En savoir plus sur la navigation.
S’applique à : ✅ Microsoft Fabric ✅ Azure Data Explorer
La fonction est une fonction two_sample_t_test_fl() définie par l’utilisateur (UDF) qui effectue le test T à deux exemples.
Remarque
Si l’hypothèse est que les deux jeux de données à comparer ont des variances différentes, nous vous suggérons d’utiliser la welch_test() native.
Prérequis
- Le plug-in Python doit être activé sur le cluster. Cela est requis pour le Python inline utilisé dans la fonction.
- Le plug-in Python doit être activé sur la base de données. Cela est requis pour le Python inline utilisé dans la fonction.
Syntaxe
T | invoke two_sample_t_test_fl(
data1 data2,,test_statistic,p_value equal_var,)
En savoir plus sur les conventions de syntaxe.
Paramètres
| Nom | Type | Requise | Description |
|---|---|---|---|
| data1 | string |
✔️ | Nom de la colonne contenant le premier jeu de données à utiliser pour le test. |
| data2 | string |
✔️ | Nom de la colonne contenant le deuxième jeu de données à utiliser pour le test. |
| test_statistic | string |
✔️ | Nom de la colonne à stocker la valeur des statistiques de test pour les résultats. |
| p_value | string |
✔️ | Nom de la colonne à stocker p-value pour les résultats. |
| equal_var | bool |
Si true (valeur par défaut), effectue un test indépendant standard de 2 échantillons qui suppose des variances de population égales. Si false, effectue le test t de Welch, qui ne suppose pas la variance de population égale. Comme mentionné ci-dessus, envisagez d’utiliser le welch_test() natif. |
Définition de fonction
Vous pouvez définir la fonction en incorporant son code en tant que fonction définie par une requête ou en la créant en tant que fonction stockée dans votre base de données, comme suit :
Définissez la fonction à l’aide de l’instruction let suivante. Aucune autorisation n'est requise.
Important
Une instruction let ne peut pas s’exécuter par elle-même. Elle doit être suivie d’une instruction d’expression tabulaire. Pour exécuter un exemple de travail, consultez l’exempletwo_sample_t_test_fl().
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.
Exemple
L’exemple suivant utilise l’opérateur Invoke pour exécuter la fonction.
Pour utiliser une fonction définie par une requête, appelez-la après la définition de la fonction incorporée.
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')
Sortie
| id | sample1 | sample2 | test_stat | p_val |
|---|---|---|---|---|
| Test #1 | [23.64, 20.57, 20.42] | [27.1, 22.12, 33.56] | -1.7415675457565645 | 0.15655096653487446 |
| Test n° 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 |