ryamadaの遺伝学・遺伝統計学メモ このページをアンテナに追加 RSSフィード

数学・コンピュータ関連の姉妹ブログ『ryamadaのコンピュータ・数学メモ』
京都大学大学院医学研究科ゲノム医学センター統計遺伝学分野のWiki
講義・スライド
医学生物学と数学とプログラミングの三重学習を狙う学習ツール
駆け足で読む○○シリーズ
ぱらぱらめくるシリーズ
カシオの計算機
オンライン整数列大辞典

2012-04-20 疫学のパッケージ

ryamada222012-04-20

[][][][]疫学のためのR

  • Epicalcパッケージとその大部な文書(こちら)
  • Epiパッケージ
    • そのチュートリアル
    • 時系列で扱うことも含めて、「簡便に使えるように」「処理をブラックボックス化して」という哲学でできている感じのパッケージ
    • 時間情報を取り込んだ上での、フィッティングとかは、回帰の基本的な関数gml()などを内部関数として使っているようだ
    • 時間データの取扱い
      • エントリー時刻
      • 出生時刻
      • エンドポイント時刻
      • ドロップアウト
    • 状態推移プロットとか面白い

f:id:ryamada22:20120420144407j:image

[][][]疫学調査(疫学パッケージ)の標本数計算

  • epicalcパッケージのチュートリアル(こちら)の第24章にそれが書かれているのでなぞってみよう
  • 4タイプの標本数計算関数
    • (1) Prevalence調査のため
    • (2) 2群の比率の比較(ケース・コントロール、クロス・セクショナル、、コホート、randomized-controlled)
    • (3) 2群の平均値の比較
    • (4) ロットの品質担保のための標本抽出
  • (1) Prevalence調査のため
n.for.survey (p, delta = "auto", popsize = NULL, deff = 1, alpha = 0.05) 
    • p:prevalence の期待値・予想値
    • delta:「このくらいはずれてもいいよ」という幅(片側の)
    • popsize: 母集団サイズ
    • deff: 母集団全体から完全にランダムに取るなら1、幾つかの地域・群に分けて標本を地域・群から集中的に取ることはクラスターサンプリングと言うが、クラスターサンプリングの場合には、クラスターごとでの偏りが入る(population structureのようなもの)ので、その要素を数値で与える(1より大きい値を与える)
    • alpha: Type 1 エラーの値
    • prevalenceだけを渡すと、デフォルトのdeltaの値などが変わるので、連続したプロットにはならないけれども…
N.survey<-n.for.survey(p=seq(from=0.01,to=0.99,by=0.01))
plot(N.survey$table$p,N.survey$table$n)

f:id:ryamada22:20120420163047j:image

  • (2) 2群の比率の比較(ケース・コントロール、クロス・セクショナル、、コホート、randomized-controlled)
    • これは、ふつうの2群の比率の比較
n.for.2p(p1,p2,alpha=0.05,power=0.8,ratio=1)
    • p1,p2: 2群の予想割合
    • alpha: タイプ1エラー
    • power: タイプ2エラー
    • ratio: 2群の標本数比率
    • コントロールの割合(p2)がわかっていて、RRを指定したいときには、p2とRRからp1を計算して指定する
    • クロス・セクショナルでは2群の標本数の比がかなり大きくなるのでratioをきちんと与えること
  • (3) 2群の平均値の比較
n.for.2means(mu1, mu2, sd1, sd2, ratio = 1, alpha = 0.05, power = 0.8) 
    • m1,m2: 2群の平均
    • sd1,sd2: 2群のばらつきを標準偏差で
    • ratio: 2群の標本数の比
    • alpha,power: タイプ1、タイプ2エラー
  • (4) ロットの品質担保のための標本抽出」
n.for.lqas(p0, q = 0, N = 10000, alpha = 0.05, exact = FALSE)
    • p0: 予想された「悪いやつ」の割合がこの値を越えたら、そのロットは「ダメロット」とみなすという基準値
    • q: 「悪いやつ」の個数がこの値を越えたら、そのロットは「ダメロット」とみなすという基準値
    • N: ロットサイズ
    • alpha: タイプ1エラー
    • exact: 正確確率で計算するか、そうでないか
  • その他
# Cluster-controlled trialsの場合に以下の2つ
n.for.cluster.2means()
n.for.cluster.2p()
# 2群に違いがないか、あるならどれくらいかを検定するため
# したがって引数にsig.diffという値の指定が必要
n.for.equi.2p()
# 向きに意味が入る
n.for.noninferior.2p()
  • 標本数を計算する代わりに、標本数は与えてやって、そのときのパワーを計算するなら、
power.for.2p()
power.for 2means()