ねこすたっと

ねこの気持ちと統計について悩む筆者の備忘録的ページ。

R

高校生のためのデータ分析入門 (30):解析環境を準備しよう!

数学が苦手なうちのJKに、将来必要となるかもしれないデータ分析への抵抗感をなくしてもらう目的で記事を書いてきました。30回目の今回で一区切り、シーズン終了(修了)です。前回に引き続き、最終回も実際にデータを分析する準備をしていきましょう。 クラ…

lapply関数とdo.call関数を整理する [R]

do.call( )は関数名と引数のリストを渡して、その関数を呼び出して実行する関数です。 リストに対して一括処理をするとき、たまに登場するんですがイマイチ理解していなかったので整理のためにまとめます。 lapply( )とdo.call( )の違い 関数のオプション引…

ラムダ式を使って関数を定義する [R]

R

同じ操作を反復するときは、map( )やlapply( )を使って関数を一括して適用すると便利です。そしてコードも読みやすくなります。 map( )やlapply( )では、関数を引数にする必要があります。mean( )やsd( )のように、既に与えられている関数だけでなく、自分で…

geom_contour関数で等高線を描く(ggplot2パッケージ)[R]

先日、ある変数の2次元分布をヒートマップを使って可視化する方法をまとめました。 necostat.hatenablog.jp ヒートマップで変数の区切りを細かくしていくと、滑らかなグラデーションにすることができます。 見た目が綺麗になるのはいいんですが、色の差がわ…

rowwise関数を使って複数の列を組み合わせた変数を作成する(tidyverseパッケージ)[R]

臨床現場では、対象者の年齢や症状、検査値などをもとにして計算される「何とかスコア」が使われることがよくあると思います。 臨床研究でも、既に収集された項目からcomposite scoreを計算し、変数に追加したいことはよくあります。 今回はtidyverseパッケ…

across関数を使ってデータフレームの列に対して一括で操作する(tidyverseパッケージ)[R]

以前、データフレームの列(=変数)に対して、追加・名前変更・要約などの操作方法についてまとめました。 necostat.hatenablog.jp necostat.hatenablog.jp 最近は列の操作でacross関数を使うことが多くなってきたので、ここらへんで学び直しておこうと思い…

geom_tileを使って予測確率をヒートマップで表現する(ggplot2パッケージ)[R]

ロジスティック回帰モデルなどから予測されるアウトカム発生確率(=予測確率)をグラフで可視化したいとします。 1つの変数に対して予測確率がどのように変化していくかを示したければ、折れ線グラフにしたり、変数をカテゴリー化して棒グラフで表したりする…

混合効果モデルで変化点を探す:Stanを使ったベイズ統計モデリング [R]

以前、segmentedパッケージを使って変化点を探す方法を調べました。 necostat.hatenablog.jp segment( )はglmオブジェクト(=glm関数で当てはめたモデル)とlmeオブジェクト(=変量効果を含む線形回帰モデル)には対応しているんですが、lme( )は変量効果を…

Segmented modelを使って変化点を探す(segmentedパッケージ)[R]

ある点を境にしてアウトカムの変化が急激になっているように見えて、 「変化点はどこなのか」あるいはそもそも「変化点があると言えるのか」を知りたいときがあると思います。 僕もそういうときがあったので少し調べてみました。 使用するパッケージとデータ…

「割合」や「率」に対してオフセット項付きポアソン回帰モデルを当てはめる [R]

アウトカムが「割合」、というか「試行数と成功数」として与えられているときに二項回帰モデルを当てはめる方法は以前まとめました。 今回は「オフセット項」を使った回帰モデルに当てはめる方法をまとめてみようと思います。 オフセット項(offset)とは 使…

試行数と成功数が与えられたデータに対して二項回帰モデルを当てはめる [R]

アウトカムが2値変数のときに使う回帰モデルについては、以前まとめたことがあります。 necostat.hatenablog.jp 今回はアウトカムが「割合」、というか「試行数と成功数」として与えられているときの回帰モデルについてまとめてみます。 使用するデータ cbin…

多重比較補正に対する考え方 [R]

測定されたデータをもとにして母集団を比較するときには2種類の誤りが生じる可能性があります。 第1種過誤(αエラー):本当は差がないのに「差がある」と判断してしまう誤り 第2種過誤(βエラー):本当は差があるのに「差がない」と判断してしまう誤り エ…

回帰モデルの診断・評価(3):多重共線性

この記事では回帰モデルにおける「多重共線性」について学んでみるつもりです。回帰モデルの満たすべき仮定の概要については以下の記事を参考にしてください。 necostat.hatenablog.jp necostat.hatenablog.jp 多重共線性とは 多重共線性を疑う状況 分散拡大…

回帰モデルの診断・評価(2):線形性

この記事では回帰モデルが満たすべき前提条件のうち、「線形性」について評価する方法について学んでみるつもりです。回帰モデルの満たすべき仮定の概要については以下の記事を参考にしてください。 necostat.hatenablog.jp 線形性(linearity)の仮定とは C…

回帰モデルの診断・評価(1):正規性・等分散性・外れ値・独立性

Rothman先生のModern Epidemiology(4th edition)の拾い読みシリーズとして"Chapter 21:Regression Analysis Part II: Model Fitting and Assessment" をまとめようと思ったんですが、もう少し統計学寄りの内容を勉強しようと思い、Applied linear statist…

Brunner-Munzel検定で分布によらずに2群の代表値を比較する(brunnermunzelパッケージ)[R]

パッケージとデータの準備 brunnermunzel.test( )を使ってBrunner-Munzel検定を行う brunnermunzel.permutation.test( )を使って並べ替えBrunner-Munzel検定を行う おわりに 参考資料 少し前に連続変数の代表値比較でどの検定方法を使えばよいのか考えた。 n…

2×2表で関連性をみるための正確検定(Exactパッケージ)[R]

Fisher正確確率検定(Fisher's exact test) Fisher正確確率検定の問題点 固定されている周辺度数いろいろ 行も列も固定されているケース 行(あるいは列)のみ固定されているケース 合計数のみ固定されているケース Fisher正確確率検定の過剰な保守性に対処…

時間依存性共変量をスーパーランドマークモデルを使って解析する(dynpredパッケージ)[R]

ランドマーク(LM)解析とは スーパーランドマーク解析とは 必要なパッケージとデータの読み込み 使用するスーパーランドマーク解析の概要 cutLM( )を使ってLM解析用データセットを準備する。 おわりに 参考資料 ランドマーク(LM)解析とは Immortal time b…

RでTeX表記を使う(latex2expパッケージ)[R]

Tex( )でLaTeX表記を使う LaTeX表記の方法 おわりに 参考資料 文字や図版などの要素を紙面に配置するという作業を「組版」というが、TeXはこの作業を行うために開発された言語。 LaTeX(ラテフ, ラテク)はTeXを使いやすくした無料の文書処理システムで、数…

反復処理でサブグループ解析を一括で行う(tidyverse系purrrパッケージ)[R]

サブグループ解析とは、全体からある特性を持った一部の集団(例:男性)を取り出して解析をすること。ランダム化が崩れたり、解析対象集団のサイズが小さくなるから検出力が落ちたり、多重検定の問題が生じたり、と色々注意はある。 でもこの記事では、そこ…

幾何平均(geometric mean)の信頼区間を求める(Gmean関数)[R]

はじめに 幾何平均の信頼区間 Gmean( )を使って計算する おわりに 参考資料 はじめに 平均と言えば大体は「算術平均(arithmetic mean, AM)」のこと。全部足して、要素の個数Nで割る。 これに対して、「幾何平均(geometric mean, GM)」は全部掛け合わせて…

ランドマーク解析を使ってimmortal time biasに対処する(dynpredパッケージ)[R]

Immortal time biasとは ランドマーク(LM)解析とは dynpredパッケージを使ってシンプルなLM解析を行う 必要なパッケージの読み込みと模擬データ作成 元データを通常どおり解析する cutLM( )を使ってランドマーク解析を行う cutLM( )を使わない場合 おわり…

文字列の操作(2):文字列を加工する(stringrパッケージ)[R]

文字列を変換する 文字列の一部分を置換する・除去する 大文字・小文字を変換する 新しい文字列を生成する 文字列を結合する 文字列を分割する 文字列を挿入する 文字列の長さを調整する おわりに 参考資料 stringrパッケージは文字列データの操作を楽にして…

文字列の操作(1):文字列を検出する・並べ替える(stringrパッケージ)[R]

パターンにマッチする文字列を検出する 指定パターンが含まれるかどうか判定する 指定パターンが含まれる位置を返す 文字列の一部分を抽出する 文字列を並べ替える おわりに 参考資料 stringrパッケージは文字列データの操作を楽にしてくれるパッケージ。 ti…

因子型データに対する操作(forcatsパッケージ)[R]

因子型データとは 因子型データの作り方 factor( )を作って因子型データを作る 2つの因子型データを統合する 因子型データの内容を確認する 水準の順序を変更する 他の変数に基づいて水準を並べ替える 水準の値を変更する fct_recode( )で水準のラベル名を変…

日付・時間の操作(2):期間を計算する(lubridateパッケージ)[R]

時間型データを丸める(切り上げ・切り捨て・四捨五入) 期間を計算する duration:時間の長さを秒単位に直して計算する period:人間の感覚の年月日で計算する interval:2つの時点の間隔を秒単位で計算する int_length( )を使ってintervalの長さを求める i…

日付・時間の操作(1):時間型データを作成する・要素を抽出する(lubridateパッケージ)[R]

時間型データの種類 ymd_hms( )を使って文字列から時間型データを作成する 時間帯(タイムゾーン) make_datetime( )を使って数値から時間型データを作成する 時間型データの各要素を抽出する 日付を曜日に変換する 半期・四半期に変換する 時間型データが条…

サンプルサイズ計算:1群の連続アウトカム(正規分布)の平均を既知の値と比較する [G*Power]

想定シナリオ 方法:t検定もとにして計算する おわりに 参考資料 自分用のリファレンスとして、サンプルサイズ計算に関する記事をシリーズで書いています。 なるべく体裁を統一するために、以下のように決めています。 群を示す添字について: c, C = 対照群…

サンプルサイズ計算:1群の連続アウトカム(正規分布)の平均を既知の値と比較する [R]

想定シナリオ 方法0:手計算 方法1:pwr.t.test( )を使って計算する 方法2:TwoSampleMean.Equality( )を使って計算する 方法3:power.prop.test( )を使って計算する おわりに 参考資料 自分用のリファレンスとして、サンプルサイズ計算に関する記事をシリー…

サンプルサイズ計算:2群の連続アウトカム(正規分布)を比較する [R]

想定シナリオ 方法0:手計算 方法1:pwr.t.test( )を使って計算する 方法2:TwoSampleMean.Equality( )を使って計算する 方法3:power.prop.test( )を使って計算する おわりに 参考資料 自分用のリファレンスとして、サンプルサイズ計算に関する記事をシリー…