関数は「 def 関数名 (引数名) 」とし、インデントを下げてコードを書く。
戻り値は「return 変数名」と書く。なくても良い。
def def_test1(i, j): x = i + j return x
実行は関数名(引数名)と書く。
val1 = def_test1(1, 2) print(val1) -- out -- 3
もう少し規模大きくして、t 検定(Student)の t 統計量を計算する関数を作ってみる。
計算式は 過去記事 参照。
#-- 関数:T統計量を算出してみる def ttest1(group1, group2): import numpy as np m1 = np.mean(group1) m2 = np.mean(group2) n1 = len(group1) n2 = len(group2) N = n1 + n2 s1 = np.sum((group1 - np.mean(group1))**2) s2 = np.sum((group2 - np.mean(group2))**2) se = np.sqrt((s1 + s2) / (N - 2)) t = (m1 - m2) / (se * np.sqrt(1/n1 + 1/n2)) return t
実行
group1 = [8,6,7,6,8,9] group2 = [3,4,3,5,4,6] ttest1(group1, group2) -- out -- 4.608176875690326
stats.ttest_ind関数で答え合わせ。
from scipy import stats stats.ttest_ind(group1, group2, equal_var = True) #-- equal_var=True: Student, False: Welch -- out -- Ttest_indResult(statistic=4.608176875690326, pvalue=0.0009679292740393189)