裏 RjpWiki

Julia ときどき R, Python によるコンピュータプログラム,コンピュータ・サイエンス,統計学

Julia に翻訳--214 二群の平均値の差の検定

2021年04月30日 | ブログラミング

#==========
Julia の修行をするときに,いろいろなプログラムを書き換えるのは有効な方法だ。
以下のプログラムを Julia に翻訳してみる。

二群の平均値の差の検定
http://aoki2.si.gunma-u.ac.jp/R/my-t-test.html

ファイル名: myttest.jl
関数名:   myttest(x, y; varequal = false)
         myttest(nx, mx, ux, ny, my, uy; varequal = false)

翻訳するときに書いたメモ

==========#

using Statistics, Rmath, Printf

function myttest(x, y; varequal = false)
    myttest(length(x), mean(x), var(x), length(y), mean(y), var(y); varequal)
end

function myttest(nx, mx, ux, ny, my, uy; varequal = false)
    if varequal
        df = nx + ny - 2
        v = ((nx - 1) * ux + (ny - 1) * uy) / df
        tstat = abs(mx - my) / sqrt(v * (1 / nx + 1 / ny))
    else
        tstat = abs(mx - my) / sqrt(ux / nx + uy / ny)
        df = (ux / nx + uy / ny) ^ 2 / ((ux / nx) ^ 2 / (nx - 1) + (uy / ny) ^ 2 / (ny - 1))
    end
    pvalue = 2pt(tstat, df, false)
    @printf("t = %.5f,  df = %.5f,  p value = %.5f\n", tstat, df, pvalue)
end

x = [44, 50, 52, 53, 49, 53, 47, 44, 38, 62];
y = [60, 55, 49, 58, 72, 69, 61, 63, 61, 55, 59, 63];
myttest(x, y, varequal=true) # t = 4.13039,  df = 20.00000,  p value = 0.00052
myttest(x, y)                # t = 4.10725,  df = 18.82177,  p value = 0.00061

myttest(36, 82.6, 15.3, 43, 84.5, 16.2, varequal=true) # t = 2.11652,  df = 77.00000,  p value = 0.03753
myttest(36, 82.6, 15.3, 43, 84.5, 16.2)                # t = 2.12195,  df = 75.26729,  p value = 0.03713

コメント    この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« Julia に翻訳--213 母平均の... | トップ | Julia に翻訳--215 非線形回帰 »
最新の画像もっと見る

コメントを投稿

ブログラミング」カテゴリの最新記事