Top

Rによる保健医療データ解析演習

Latest update on 15th September 2014

このページは表記の本(奥付では2007年12月25日刊行)についての情報を掲載するためのものです。コメントや質問は,minato-nakazawa[at]umin.netまで(ただし[at]は半角の@)メールでお願いします。

この本のために開発した関数群は,元々"msb_funcs.R"という単一のスクリプトとして提供していましたが,その後大幅に改良し,英語でドキュメントを書いてfmsbパッケージとしてまとめました(詳しい経緯はこちら,html版マニュアルはこちら)。最新版は2014年9月15日に作成した0.5.1で,CRANにsubmit済みです。

Notes in English

This page is provided to support analyses written in my own Japanese textbook "[R] ni yoru hoken-iryou [data] kaiseki ensyu" (A workbook for data analyses in health and medicine using R), which was published in December 2007. The functions in the book were originally provided as a single R script file "msb_funcs.R", but were largely refined now. With English documentations, I compiled them as a "fmsb" package. The first version submitted to CRAN was wrongly named as 0.11 (as of May 13th 2010), it has been corrected as 0.1.1 now. Sorry for inconvenience caused by this fault.

The newest version of "fmsb" is 0.5.1, made on 15th September 2014, submitted to CRAN. A manual in html format is given here.

書誌情報

正誤表

以下の誤りについて,お詫び申し上げます。出版物では可及的速やかに(つまり,増刷の機会があれば,ということですが)修正します。

2008年8月27日記)なお,第6章第2節「独立2標本の平均値の差の検定」(p.74〜p.78)において,p.77の脚注7で「常にウェルチの方法を用いるべきという意見」について触れていますが,本文では慣習的に行われてきた2段階検定を説明しています。しかし,奥村先生青木先生がシミュレーションで鮮やかに示されているように,常にWelchの方法だけにするのが検定としては良いと思いますので,もし増刷の機会があれば記述を改め,基本的にWelchを用い,2段階検定を慣習的な方法として脚注で紹介する形にしたいと思います。

はじめに
◎中間栄治さんのお名前を「英治」とミスタイプしておりました。中間さん,大変申し訳ありませんでした。
第5章
◎「5.6 χ2分布」の中で,確率密度関数の式(草稿p.81,本ではp.66)に打ち間違いがありました(ご指摘ありがとうございました>たけしょう)。式中,(v/2)v/2-1となっているところは(x/2)v/2-1で,exp(-v/2)となっているところはexp(-x/2)が正しい式です。
第8章
◎(2010年11月19日記)「8.3回帰」の中で,p.102の一番下の部分,「回帰直線の95%予測区間(期待値の標準誤差が95%の信頼性をもってこの区間に含まれるであろう範囲)と95%信頼区間(データの95%がこの範囲に含まれるであろうという範囲)」は英語との対応関係から考えても不適切でした。predict()関数の引数でinterval="prediction"とした場合,データの95%予測区間(データの95%はこの範囲に含まれるであろう範囲)が得られ,interval="confidence"とした場合,回帰直線の95%信頼区間(回帰直線は95%の確率でこの範囲に含まれるだろう範囲)が得られる,とするのが妥当だと思います。申し訳ありませんでした。
第11章
◎2群の分布の位置の差の定式化(草稿p.180,本ではp.162)で,F(x),G(y),F(x)≡G(x)となっている部分は,記法として不自然なので,F,G,F≡Gに変更。
◎メディアン検定のクロス集計表(草稿p.186,本ではp.168)の,Yのメディアン以上の値は,括弧の位置が間違っていて,(m+n/2)-Hではなく,(m+n)/2-Hが正しい。申し訳ありませんでした。
第12章
◎(2009年8月31日記)ロジスティック回帰分析の説明中(本書p.196),「relevel()関数を使うと便利である(コラム∋仮函法廚箸△襪里蓮ぁrelevel()関数を使うと便利である(コラム参照)」の誤りでした。
なお,Mac等で↓が豆腐にしか見えない環境の方に補足説明しますと,誤りが丸数字の2,正しいのが丸数字の3です。
◎(2010年11月22日記)p.196とp.198で,birthwtデータフレーム内のptlという変数の説明として,「非熟練労働経験数」という記載は,「早期産経験回数」の誤訳でした。申し訳ありません。
第13章
◎例題5のGehanのデータにコックス回帰をした結果の説明(草稿p.238,本ではp.217)で,死亡ハザードとあるのは再発ハザードの誤り。従って延命効果も,再発防止効果が正しいです。申し訳ありませんでした。

本書出版後のR本体またはパッケージの更新に伴う追加情報

第2章
(2010年3月30日記)RjpWikiのQ&A(初級者コース)/11の「関数read.shapeが使えません」の応答にあるように,maptoolsのバージョンアップに伴ってread.shape()という関数は消滅したので,現在使えるmaptools-0.7-29では下記classmap.Rは動作しません。read.shape()をreadShapePoly()にすればとりあえず使えるかもしれませんが未確認です。
(2010年3月31日追記)readShapePolyにすればShapeFileは読み込めましたが,それだけではダメでした。maptools内で扱える地理情報データオブジェクトが,2007年にはS3のMapクラスもあったのが,2010年現在ではS4クラスしかなくなってしまったので,大きく変更する必要がありました。RjpWikiに牧山さんが県ごとに分割後,圧縮して掲載されているjapan_ver62.zipをダウンロードし,展開してできるファイルのうち,gunma.dbf, gunma.shp, gunma.shxと,agedprop2006.txtを作業ディレクトリにおき,classmap2.Rを実行すれば,gunmaagedprop2006.pdfができあがります。
第8章
(2010年11月20日記) carライブラリのdata.ellipse()関数はdataEllipse()関数に名前が変わりました。
第13章
(2010年4月15日記) survivalライブラリのsurvfit関数が返すオブジェクトの中で,ntimes.strataという変数がnに変わった等の原因により,c13-5.Rで定義したloglogplot()という関数は動作しません。実はplot.survfitが多機能になっているので,ほぼ同じ二重対数プロットをしたい場合は,survfit関数が返すオブジェクトをKMとして,plot(KM, fun=function(y) {log(-log(y))}, lty=1:2)とすれば可能ですし,時間軸が対数表示で良ければplot(KM, fun="cloglog", lty=1:2)で可能です。
そのように書き換えた関数をc13-5a.Rとして掲載しておきます。
msb-funcs.Rを書き換えてパッケージ化作業中ですが(参照),上記理由のため,loglogplot()関数は削除します。

文書内で取り上げた外部サイトへのリンク集

はじめに
群馬大学社会情報学部の青木繁伸教授によるRによる統計処理
岡田昌史さんによるRjpWiki
OpenOffice.org日本ユーザ会
三重大学・奥村晴彦教授によるTeX Wiki
第1章
関西大学・荒木孝治教授によるR品質管理本サポート情報(Rcmdrの国際化関連情報など)
R-helpメーリングリスト(英語)
CRANの筑波大学ミラー
CRANの東京大学ミラー
RjpWikiの日本語化掲示板
「Rによる統計処理」内,Mac OSのインストール法の説明
cgiとhtmlフォームを使ったデータ入力の解説(当サイト内)
第2章
人口ピラミッドの作り方(当サイト内)
R研究集会2012報告(当サイト内)で,年齢別死亡率と年齢別出生率を与えた時の将来人口予測をして人口ピラミッドが変化していく様子をアニメーション表示する方法をデモンストレーションしています。
DIVA-GIS
ESRIジャパン社の全国市町村界データ
okinawaさんこと牧山文彦さんによるShapeFileライブラリ(RjpWiki内にあり,ESRIジャパン社提供のshpファイルを加工した都道府県別のファイルが公開されている)
群馬県の年齢別人口(平成19年10月1日現在) | 第3表(MS-Excel形式)(注:2008年10月現在,本書出版時に公開されていた平成18年10月1日現在のデータは,既に群馬県のサイトには存在しないようです)
市町村コード
第10章
Epiライブラリ(デンマーク・コペンハーゲン大学)
第12章
東京工業大学・下平英寿助教授による「Rによる多変量解析入門」講義資料(2004年度版) | 2006年度前期版(leapsというライブラリのleaps関数を使うと総当り法ができるとは知らなかった)
群馬大学社会情報学部・青木繁伸教授による総当り法変数選択の説明とRコード
第13章
プリンストン大学にあるGehanの白血病治療データ
付録A.
当サイト内,統計処理ソフトウェアRについてのTipsでは,ソフトウェアのバージョンアップ,Rnewsのリリース,新しい本の出版情報など,Rに関わるニュースと,新しく知ったりまとめたりしたtips的な情報を随時掲載している。

ダウンロード

草稿pdf(rev. 1.00 / 7 NOVEMBER 2007),2,087,538 bytes,289ページ。

Rスクリプト

msb-funcs.R(汎用関数定義集Rスクリプト)

(2010年5月12日,13日追記;2011年12月28日にも加筆訂正;2012年1月5日更新;2012年2月6日更新;以下バージョンアップの都度,最新版へのリンクを更新)大幅に書き換えてパッケージ化しました(まだ試作段階ですので,rev. 0.11ですし,CRANにも投稿していません)。最新版(Windows用ziptar.gz版)は当サイトからダウンロードして,ローカルファイルとしてパッケージインストールすることも可能ですが,CRANからinstall.packages("fmsb")でもインストールできるはずです。日本の人口構造データのexampleを動作させるためにはpyramidライブラリもインストールしておくことをお薦めします。なお,かなり仕様を変更した関数もあるので,下記スクリプト群を動かす上で問題が生じる可能性があります。お気づきの方はお知らせくださるとありがたいです(0.1から0.1.1への更新は,oddsratio()関数のexampleが間違っていたことを訂正したものです)。

(2010年8月25日追記:)CRANに登録されましたが,ついでなので日本の人口データも統合してrev. 0.2としました。CRANから普通にinstall.packages("fmsb")でインストールできますし,update.packages("fmsb",ask=FALSE)で更新できるはずです。当初0.1.1とすべきバージョンを0.11としてしまったので,0.2がupdate.packagesで入らないかもしれません。Dr. Kurt Hornikが0.1.1としてパッケージ化し直してくださるとのご返事をいただいたのですが,もし2010年5月13日付の0.11がどこかにあったら,それは0.1.1の間違いですので削除してください。

(2011年5月7日追記:)radarchart()関数で最初の値が欠損だった場合の例外処理が不十分で停止してしまうことがあったのを修正し,日本の人口動態データの2010年分が一部公表されたので追加して,バージョン0.2.1としました。

(2011年12月12日追記:)mhchart()関数を追加し,日本の人口動態データの2010年分の残りを追加して,バージョン0.2.2としました。NAMESPACEも追加しました。

(2011年12月14日追記:)日本の2010年人口データを追加してバージョン0.2.3としました。0.2.2でNAMESPACEを追加したときに人口データをexportするのを忘れていたので,それを追加してビルドし直し,0.2.4としました。

(2011年12月28日追記:)人口データのデータフレーム3つと,いくつかの人口学関連の関数を追加してバージョン0.3.0としました。なお,Windows用zipの作成はRCMD INSTALL --build fmsbで行えますが,CRANにsubmitするのは*.tar.gzと決まっていて,公開されるWindowsバイナリはCore Teamによってビルドされたものになっています。

(2012年1月5日追記:)Denny()関数のバグを直して0.3.1としました。

(2012年2月6日追記:)radarchart()関数の欠損値が多い場合の例外処理を追加し,オプションを1つ追加して0.3.2としました。

(2012年3月15日追記:)サイト移転したのでドキュメントのURLを書き換え,0.3.3としました。

(2012年4月27日追記:)radarchart()関数のaxistypeオプションの引数パタンを増やし,0.3.4としました。

(2012年12月11日追記:)Jlifeに2010年完全生命表のqxを追加し,0.3.5としました。

(2013年1月8日追記:)radarchart()関数にpdensityオプションとpfcolオプションを追加し,ポリゴンの内側を塗りつぶしたり斜線を引いたりできるようにして,0.3.6としました。

(2013年2月7日追記:)radarchart()関数にcenterzeroオプションを追加し,最小値が中心の1点に集中するような描画を可能にしました。また,Rothman KJ (2012) Epidemiology: An Introduction. 2nd Ed.を参照し,率比を計算する関数rateratio(),率差を計算する関数ratedifference(),リスク差を計算する関数riskdifference()を追加しました。例にはRothmanのテキストに掲載されている例題を使っており,計算結果がテキストと合致することは確認済みです。

(2013年2月28日追記:)radarchart()関数にvlabels,caxislabels,paxislabelsという3つのオプションを新設しました。どれもデフォルトはNULLなので指定しなければ動作は不変ですが,変数名,中央軸ラベル,周辺軸ラベルを自由に指定できるようにしました。

(2013年6月10日追記:)Jvitalデータフレームに妊産婦死亡率を示す変数MMRを追加しました。

(2013年6月18日追記:)主として人口分析関係の多くのマニュアルページの説明に日本語訳を追加しました。

(2013年6月26日追記:)lifetable()関数でaxを扱えるようにして,Preston SH et al.(2001)にある補正式が使えるようにして,バージョン0.4.0に更新しました。また,年齢階級最後のオープンエンドの部分のLxの計算方法をlx/mxにしました。Denny(),Hadwiger(),NagelkerkeR2(),CT()などの関数のドキュメントにリファレンスを追加しました。

(2013年7月2日追記:)lifetable()関数のmode=6とmode=7をbug-fixしました。Coale and McNeil (1972)の年齢別初婚関数のモデルをCM()として実装し,fitCM()関数により,自動的に最適パラメータを返すようになりました。

(2014年1月6日追記:)Jvitalデータフレームのうち,人口動態統計で発表済みの変数について,2011年と2012年のデータを追加しました。

(2014年1月27日追記:)pvalueplot()関数をバグフィックスしました。

(2014年5月3日追記:)radarchart()関数をバグフィックスし,新オプションpangleを追加しました。

(2014年6月14日追記:)lifetable2()関数を追加し,mxtoqx()とqxtomx()でaxとnを扱えるようにオプション追加しました。

(2014年8月4日追記:)lifetable3()関数を追加し,fitGM()とfitSiler()でデータに欠損がある場合の処理を改良し,Jvitalデータの2011年と2012年の年齢調整死亡率と周産期死亡率と妊産婦死亡率がNAだったのを発表された数値に更新し,radarchart()関数にラベルサイズ指定オプションを追加しました。

(2014年9月15日追記:)Jvitalデータフレームに2013年のデータを追加しました。また,Jvital2013byPrefとして,2013年人口動態統計の都道府県別データを含むデータフレームを追加しました。

タブ区切りテキストデータ

目次

第1章 Rの導入とデータ入力
1.1 統計処理ソフトの選択
1.1.1 フリーソフト利用上の心得
1.1.2 Rの動作環境とインストール
1.1.3 Rの使い方の基本
1.1.4 プロンプトへの基本操作
1.2 データ入力
1.3 欠損値について
1.4 Rでの読み込みと基本操作
1.5 課題
第2章 基本的な図示
2.1 尺度と変数
2.2 名義尺度 (nominal scale)
2.3 順序尺度 (ordinal scale)
2.3.1 Cronbachのα係数
2.4 間隔尺度 (interval scale)
2.5 比尺度 (ratio scale)
2.6 データの図示の目的
2.7 名義尺度や順序尺度をもつ変数の図示
2.7.1 度数分布図
2.7.2 積み上げ棒グラフ
2.7.3 帯グラフ
2.7.4 ドットチャート
2.7.5 円グラフ(ドーナツグラフ・パイチャート)
2.8 連続変数の場合
2.8.1 ヒストグラム
2.8.2 正規確率プロット
2.8.3 幹葉表示 (stem and leaf plot)
2.8.4 箱ヒゲ図 (box and whisker plot)
2.8.5 ストリップチャート (stripchart)
2.8.6 散布図 (scatter plot)
2.8.7 レーダーチャート
2.9 その他のグラフ
2.9.1 塗り分け地図
2.10 課題
第3章 記述統計量
3.1 データを記述する2つの方法
3.2 中心傾向(Central Tendency)
3.2.1 平均(mean)
3.2.2 重み付き平均(weighted mean)
3.2.3 中央値(median)
3.2.4 最頻値(Mode)
3.2.5 使い分け
3.3 ばらつき(Variability)
3.3.1 範囲(range)
3.3.2 四分位範囲(Inter-Quartile Range; IQR)
3.3.3 四分位偏差(Semi Inter-Quartile Range; SIQR)
3.3.4 平均偏差(mean deviation)
3.3.5 分散(variance)
3.3.6 標準偏差(standard deviation)
3.3.7 標準誤差(standard error)と変動係数(coefficient of variation)
3.4 まとめ
3.5 課題
第4章 標本統計量と母数推定
4.1 標本統計量と母数
4.2 標本抽出
4.3 中心極限定理
4.4 信頼区間
4.5 自由度
4.6 課題
第5章 データの分布と検定の概念
5.1 はじめに
5.2 ベルヌーイ試行と2項分布
5.3 2項分布のシミュレーション
5.4 2項分布の理論分布
5.5 正規分布
5.6 χ2分布
5.7 t分布
5.8 F分布
5.9 検定の考え方と第一種,第二種の過誤
5.10 両側検定と片側検定
5.11 分布の正規性の検定
5.11.1 Shapiro-Wilkの検定
5.11.2 Gearyの検定
5.12 課題
第6章 2群の平均値の差の検定
6.1 母平均値と標本平均の差の検定
6.2 独立2標本の平均値の差の検定
6.2.1 母分散が既知で等しい$V$である場合(稀)
6.2.2 母分散が未知の場合(通常はこちら)
6.2.3 分散に差がない場合
6.2.4 分散に差がある場合(Welchの方法)
6.3 対応のある2標本の平均値の差の検定
6.4 課題
第7章 一元配置分散分析と多重比較
7.1 多群の平均値を比較する2つの思想
7.2 一元配置分散分析
7.3 検定の多重性を調整する「多重比較」
7.3.1 ボンフェローニの方法
7.3.2 ホルムの方法
7.3.3 テューキーのHSD
7.4 課題
第8章 相関と回帰
8.1 相関と回帰の違い
8.2 相関
8.2.1 見かけの相関・擬似相関
8.2.2 直線的な相関・直線に乗らない相関
8.3 回帰
8.3.1 決定係数
8.3.2 回帰直線推定と検定のしくみ
8.3.3 独立変数・従属変数と因果の向き
8.3.4 回帰式を予測に用いる際の留意点
8.4 課題
第9章 計数データと比率の解析
9.1 母比率を推定する方法
9.2 推定値の確からしさ
9.3 母比率の信頼区間
9.3.1 正規近似
9.4 カテゴリ2つの場合の母比率の検定
9.5 カテゴリが3つ以上ある場合の母比率の検定
9.5.1 少し複雑な例
9.6 サイコロの正しさの検定
9.7 2群間の比率の差
9.8 3群以上の比率の差
9.9 課題
第10章 クロス集計
10.1 複数のカテゴリ変数を分析するために
10.2 2つのカテゴリ変数の独立性の検定
10.2.1 クロス集計とは?
10.2.2 独立性のカイ二乗検定の原理
10.2.3 フィッシャーの直接確率(正確な確率)
10.3 研究デザインと疫学指標
10.3.1 頻度の指標
10.3.2 効果の指標
10.3.3 リスク比とオッズ比の点推定量
10.3.4 リスク比とオッズ比の95%信頼区間
10.3.5 関連性の指標
10.3.6 一致度の指標〜κ係数
10.4 スクリーニングにおけるROC分析
10.4.1 ROC分析とは
10.4.2 計算手順を考える
10.4.3 Epiライブラリを使う方法
10.5 交絡を考える
10.5.1 シンプソンのパラドックス
10.5.2 交絡を制御するには
10.6 課題
第11章 量的データのノンパラメトリックな分析
11.1 2群の分布の位置の差に関するノンパラメトリックな検定
11.1.1 ノンパラメトリックな検定とは?
11.1.2 Wilcoxonの順位和検定
11.1.3 メディアン検定
11.1.4 符号付き順位和検定
11.2 多群間の分布の位置の差の検定
11.2.1 クラスカル=ウォリス(Kruskal-Wallis)の検定
11.2.2 フリードマン(Friedman)の検定
11.2.3 多重比較
11.3 課題
第12章 一般化線型モデル
12.1 一般化線型モデルとは?
12.2 モデルの記述法
12.3 変数の種類と数の違いによる線型モデルの分類
12.4 重回帰分析についての留意点
12.5 多重共線性(multicolinearity)
12.6 モデルの評価
12.6.1 残差分析と信頼区間
12.6.2 尤度比検定
12.6.3 AIC: モデルの当てはまりの悪さの指標
12.7 変数選択
12.8 採択されたモデルを使った予測
12.9 共分散分析
12.10 ロジスティック回帰分析
12.11 課題
第13章 生存時間解析
13.1 生存時間解析概論
13.2 カプラン=マイヤ法:survfit()関数
13.3 ログランク検定:survdiff()関数
13.4 コックス回帰──比例ハザードモデル:coxph()関数
13.4.1 二重対数プロット
13.4.2 コックス回帰のパラメータ推定
13.4.3 コックス回帰における共変量の扱い
13.5 課題
第14章 文献
14.1 Rに関する日本語の文献
14.2 Rに関する英語の文献
14.3 疫学・統計学についての文献
14.4 Rに関するウェブサイト
第15章 【課題解答例】

更新履歴


リンクと引用について