【Python】関数の作成(def)

関数は「 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)
本ブログは個人メモです。 本ブログの内容によって生じた損害等の一切の責任を負いかねますのでご了承ください。