ねこすたっと

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

tidyverse

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

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

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

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

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

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

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

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

ランドマーク解析を使って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( )を使って数値から時間型データを作成する 時間型データの各要素を抽出する 日付を曜日に変換する 半期・四半期に変換する 時間型データが条…

回帰モデルの結果をキレイに表示する(gtsummaryパッケージtbl_regression関数)[R]

パッケージとデータセットの準備 モデルの当てはめ tbl_regression( )で結果をキレイに表示する 変数の表示名を変更する 一部の変数の結果のみ表示する 係数やP値の桁数を変更する モデル当てはめに関する情報を追加する 表の体裁を変更する 太字・イタリッ…

対象者背景表Table1を作成する(gtsummaryパッケージtbl_summary関数)[R]

パッケージとデータセットの準備 tbl_summary( )でキレイな背景表を作成する 群別に要約する 要約統計量を変更する 欠測の表示方法を変更する 変数の表示名を変更する 一部の変数の結果のみ表示する 表示する情報を追加する 表の体裁を変更する 太字・イタリ…

予測性能指標のoptimism補正をまとめて行う(tidymodelsパッケージ, rmsパッケージ)[R]

パッケージとデータセットの準備 事前準備 bootstraps( )を使ってブートストラップサンプルを作成する 関数を定義する optimismを計算する optimism補正性能指標を計算する おわりに 参考資料 予測性能には、識別能と較正能があって、内的妥当性検証の1つと…

ROC解析でoptimismを補正したAUCを計算する(tidymodelsパッケージ)[R]

Optimismとは Optimism補正予測性能の求め方 tidymodelsパッケージを使ってoptimism-corrected AUROCを計算する bootstraps( )を使ってブートストラップサンプルを作成する optimismを計算する自作関数 map( )を使ってデータセットのリストに一括して適用す…

マルチレベルデータの解析方法(1):一般化推定方程式GEE(geepackパッケージ)

マルチレベルデータとは マルチレベルデータの解析 一般化推定方程式(GEE)の概要 独立型:independent 交換可能型:exchangeable 1次自己相関型:AR(1) 非構造化型:unstructured geepackパッケージで一般化推定方程式(GEE)を使う サンプルデータの準備 …

2値アウトカムに対する回帰モデルいろいろ(1):glm関数とロバスト分散推定法[R]

アウトカムが2値変数の場合、一般的にロジスティック回帰モデルが用いられることが多い。 この場合の効果指標はオッズ比(odds ration, OR)だが、アウトカムの発生頻度が高い場合(>10%ルール)、オッズ比はリスク比(risk ratio, RR)の近似にならない。 …

多重代入法(4):補完後データを解析する(miceパッケージ)[R]

基本:mice( )→with( )→pool( ) 別の方法1:mice( )→complete( )→by( ) 別の方法2:mice( )→group_by( )→do( ) おわりに 参考資料 多重代入法を使ったデータ解析の流れのおさらい。 図1:多重補完を使ったデータ解析の流れ 基本的には、(1)mice( )で作成した…

データを縦長・横長に変換する操作(tidyverseパッケージ)[R]

pivot_wider( )を使って横長にする pivot_longer( )を使って縦長にする おわりに 参考資料 性質が類似していると考えることが自然な構造を持つデータをクラスターデータと呼ぶ。 例えば、 世帯・学校などの構成員のデータ 同一対象から反復して測定されたデ…

データをキーを使って結合する操作(tidyverseパッケージ)[R]

left_join( )を使って左側データを基準に結合する 結合キーの名前が異なる・複数の結合キーを使う場合 inner_join( )を使って両方に含まれる場合のみ結合する full_join( )を使ってどちらかに含まれるならば結合する おわりに 参考資料 2つのデータセットに…

データを単純に結合する操作(tidyverseパッケージ)[R]

bind_rows( )を使って行を追加する bind_cols( )を使って列を追加する union( )で和集合を作る intersect( )で積集合を作る setdiff( )で差集合を作る おわりに 参考資料 2つのデータセットを単純に繋ぎ合わせるだけ。 survivalパッケージのpbcデータセット…

データを要約する操作(tidyverseパッケージ)[R]

summarise( )で要約する group_by( )でグループ別に要約する おわりに 参考資料 データを要約する操作のまとめ。 新しい変数を作るのと違い、要約された後は元の変数よりもベクトルの長さが短くなる。 ここでもsurvivalパッケージのpbcデータセット(の一部…

データ列に対する操作(tidyverseパッケージ)[R]

select( )を使って変数を指定して抽出する rename( )で変数名を変更する mutate( )で新しく変数を作成する おわりに 参考資料 列、つまり変数に対する操作のまとめ。 ここでもsurvivalパッケージのpbcデータセット(の一部)を例として使う。 > library(surv…

データ行に対する操作(tidyverseパッケージ)[R]

filter( )で条件に該当する行を抽出する sample_n( )・sample_frac( )でランダムに抽出する distict( )で重複を取り除く top_n( )で順序をもとに抽出する arrange( )で順序どおりに並べ替える rownames_to_column( )で行番号を変数に追加する おわりに 参考…