• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:割合データの比較)

割合データの比較の方法と結果の検定について

このQ&Aのポイント
  • エクセルで数値の全データから指定した範囲のデータの割合を求める方法について説明します。
  • 2つの割合の結果に有意差があるか検定する方法について教えてください。
  • 母数が同じ場合の検定方法についても教えてください。

質問者が選んだベストアンサー

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.1

こんにちは。KenKen_SP です。 有意差検定の考え方を理解してしまえば、計算方法自体はさほど難しいない と思います。WEB で検索してみましょう。 参考 URL をあげておきます。有意差検定について分かりやすい解説と、WEB ページ上で Java Script による簡易検定が行える WEB ツールがあります。 http://www.blufi.co.jp/

hikensyaG
質問者

お礼

KenKen_SPさん 参考URLを教えて頂きありがとうございます.Java Script による簡易検定は,私がやりたいと考えていた事にピッタリだったのでとても役立ちます. ただ,Javりa Script による簡易検定をエクセル上の関数を使用して行う事は,やはり難しいのでしょうか?よければ教えて下さい.

その他の回答 (1)

  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

> エクセル上の関数を使用して行う事は,やはり難しいのでしょうか? ご紹介した WEB サイト内に有意検定の考え方と検定方法が記載されて います。それを Excel の数式に直していくだけですが、、、 SQRT:平方根を求める ABS:絶対値を求める ROUND:四捨五入で数値を丸める などの関数を使えば統計量を求める数式はできると思います。 参考までに、VBA で簡易的な有意差検定を行うプログラムを書いておき ます。各要素のセルをクリックしてゆけば、検定結果が表示され、 最後に統計量を求める数式をセルに書き込むようになっています。 ただし、取り急ぎで作ったので、「取りあえず動けばよし」ですが。 母数が同じ場合の検定方法については、省略しますが、ご紹介した WEB サイト内に検定方法の記載があります。先にあげた、関数を使えば Excel で十分やれますよ。 では。 Sub 異なるサンプル間の有意差検定()   Dim s1v As Range, s1p As Range   Dim s2v As Range, s2p As Range   Dim a$, x$, b$, y$   Dim aa#, xx#, bb#, yy#, cc#, dd#, ee#, ff#   Dim strMes$, strResult$      On Error GoTo Terminate      'データ取得   strMes = "該当データのセルをひとつ選択し、[OK]をクリックします。"   With Application     Set s1v = .InputBox(strMes, Title:="サンプル1", Type:=8)     Set s1p = .InputBox(strMes, Title:="サンプル1比率", Type:=8)     Set s2v = .InputBox(strMes, Title:="サンプル2", Type:=8)     Set s2p = .InputBox(strMes, Title:="サンプル2比率", Type:=8)   End With   a = s1v.AddressLocal(False, False): aa = s1v.Value   x = s1p.AddressLocal(False, False): xx = s1p.Value   b = s2v.AddressLocal(False, False): bb = s2v.Value   y = s2p.AddressLocal(False, False): yy = s2p.Value      '有意判定   cc = (aa * xx + bb * yy) / (aa + bb)   dd = cc * (1 - cc)   ee = (1 / aa) + (1 / bb)   ff = Round(Abs(xx - yy) / Sqr(dd * ee), 3)   Select Case ff     Case Is >= 2.576: strResult = "有意水準1%で有意差あり"     Case Is >= 1.96: strResult = "有意水準5%で有意差あり"     Case Is >= 1.645: strResult = "有意水準10%で有意差あり"     Case Is < 1.645: strResult = "有意差なし"   End Select   strMes = ""   strMes = strMes & "サンプル1: " & vbTab & aa & vbCrLf   strMes = strMes & "サンプル1比率: " & vbTab & Format(xx, "0%") & vbCrLf   strMes = strMes & "サンプル2: " & vbTab & bb & vbCrLf   strMes = strMes & "サンプル2比率: " & vbTab & Format(yy, "0%") & vbCrLf   strMes = strMes & "統計量: " & vbTab & vbTab & ff & vbCrLf & vbCrLf   strMes = strMes & "【検定結果】: " & vbTab & strResult   MsgBox strMes, vbInformation      strMes = "=Round(ABS(" & x & "-" & y & ")/SQRT((((" & a & "*" & x & "+" & b _     & "*" & y & ")/(" & a & "+" & b & "))*(1-((" & a & "*" & x & "+" & b _     & "*" & y & ")/(" & a & "+" & b & "))))*((1/" & a & ")+(1/" & b & "))),3)"     Set s1v = Application.InputBox( _     Prompt:="統計量を求める数式を書き込むセルを選択し、[OK]をクリック", Type:=8)   s1v.Formula = strMes Terminate: End Sub

関連するQ&A