はじめての PROscorerTools

Ray Baser

2021-06-05

概要

PROscorerToolsは、患者報告アウトカム(PRO)測定値やその他の生活の質(QoL)および心理測定法を採点するツールを提供します。 PROscorerTools はまた、PROscorerパッケージの機能の構成要素を提供します。 PROscorerTools にはいくつかの「ヘルパー」関数が含まれており、各関数はPROのような測定器を採点する際によくある特定のタスクを実行する(例えば、項目の逆コーディング)。 しかし、ほとんどのユーザーは、scoreScale()関数だけで採点のニーズに対応できることに気づくでしょう。

scoreScale()関数

PROscorerToolsの主力関数は、scoreScale()関数です。 この関数の基本的な仕事は、いくつかの項目に対する回答を含むデータフレームを受け取り、それらの項目に対する1つのスコアを出力することです。 関数scoreScale()はシンプルで柔軟な引数を持ち、ほとんどすべてのスコアリングの状況を扱うことができます。

機能:

インストールと基本的な使い方

CRANから安定版をインストールしてください(推奨)。

install.packages("PROscorerTools")

PROscorerTools や PROscorer パッケージの開発に貢献したい場合は、GitHub から開発版をインストールすることができます(通常は推奨しません)。:

devtools::install_github("raybaser/PROscorerTools")

R 環境に PROscorerTools をロードします:

library(PROscorerTools)

例として、makeFakeData() 関数を使って、20人の架空の回答者から6つの偽の項目に対する回答を集めたデータフレームを作ってみます。 作成されたデータセット(名前は “dat”)には、“id” という変数と、20人の架空の回答者による6つの項目(名前は “q1”、“q2”など)に対する回答が含まれています。 また、欠落している回答(「NA」)も散見されます。

dat <- makeFakeData(n = 20, nitems = 6, values = 0:4, id = TRUE)

以下では、scoreScale 関数を使って、“dat”の偽の回答を採点します。 items という引数を使って、スコアリングしたい項目がどの変数にあるかを scoreScale に伝えます。 回答を合計して項目を採点します(type = "sum")。 偽のアンケートから得られたスコアを “dat_scored” というデータフレームに保存します。

dat_scored <- scoreScale(df = dat, items = 2:7, type = "sum")
dat_scored

デフォルトでは、scoreScale は回答者が項目の50%以上を欠落していない限り、回答者の項目を採点します。 これは okmiss という引数で変更することができます。 上の例では、デフォルトで okmiss = 0.50 となっているので、回答者が6項目中3項目を欠落していても、スコアが割り当てられます(4項目以上を欠落している場合には、スコアは NA となります)。 下の図では、再び項目を採点していますが、今回は、項目の半分以下の欠落でも採点できるようにしています(okmiss = 0.49)。

dat_scored <- scoreScale(df = dat, items = 2:7, type = "sum", okmiss = 0.49)
dat_scored

デフォルトでは、scoreScale は回答者が項目の50%以上を欠落していない限り、回答者の項目を採点します。 これは okmiss という引数で変更することができます。 上の例では、デフォルトで okmiss = 0.50 となっているので、回答者が6項目中3項目を欠落していても、スコアが割り当てられます(4項目以上を欠落している場合には、スコアは NA となります)。 以下、再び項目を採点しますが、今回は項目の半分以下の欠落でも採点できるようにしました(okmiss = 0. 49)。

dat_scored <- scoreScale(df = dat, items = 2:7, type = "sum", okmiss = 0.49)
dat_scored

関数 scoreScale の詳細については、R に ?scoreScale と入力することで、その “ヘルプ” ページにアクセスすることができます。

今後の開発予定

R パッケージの PROscorer ファミリーには、PROscorer、PROscorerTools、FACTscorer があります。

これら3つのパッケージの開発における私の優先順位は以下の通りです。

  1. パッケージが引数をチェックし、scoreScale や他のカスタムライティングされたスコアリング関数への入力を処理する方法を合理化する。 現在のシステムは仕事をこなすことはできますが、あまり美しいものではありません。 これらのタスクを実行するための、よりエレガントで使いやすいシステム(おそらく assertive パッケージを使用)が、PROscorer パッケージ(特定の、よく使われる PRO 用のカスタム採点関数を含む)の拡張を加速すると信じています。 次回の PROscorerTools のメジャーアップデートでは、このシステムの安定版を提供したいと考えています。

  2. PROscorer と PROscorerTools のユニットテストフレームワークをより包括的にする。 PROscorer 関数の基礎となるコードのほとんどは、すでに PROscorerTools のテストによってテストされているでしょう。 しかし、私や他の人が彼らのスコアリング関数にユニットテストを追加することを容易にするために、PROscorer 関数のための標準的なテストセットを考え出すつもりです。

  3. PROscorer を拡張し、特定のPROのための採点関数を増やす。 いずれにしても、私は仕事のためにこれをしなければなりませんが、新しいスコアリング関数を書くことは、上記の1と2のプログラミングにも役立ちます。

  4. ユーザーが PROscorerTools を使って自分の好きな PRO のためのスコアリング関数を書き、PROscorer に含めるために提出することができる共同インフラストラクチャ(例えば、GitHub上)を完成させます。 この主要な要素は、得点関数を書くためのステップバイステップのガイド、機器の説明を書くためのガイドライン、関数のドキュメントを書くためのテンプレートを含む、いくつかの説明用のヴィネットを追加することです。

  5. FACTscorer パッケージの更新。 FACTscorer は、FACT(Functional Assessment of Cancer Therapy)およびFACIT(Functional Assessment of Chronic Illness Therapy) ファミリーの尺度を採点します。 PROscorerTools を書く前に、私は基礎となる FACTscorer のコードのほとんどを完全に書き直し、より確実で将来の更新が容易になるようにしました。 また、PROscorer に同梱されているものと同様の「指標の説明」vignette も書きました。 私は FACTscorer のアップデートの最後の仕上げを行い、上記の作業が終わり次第、リリースする予定です。

  6. IRT ベースのスコアを使用している PRO に対して、IRT ベースのスコアを生成する機能を追加する。 私は、様々な PROMIS 指標を使用している多くの研究者を知っています。 彼らは IRT ベースの採点法を使いたいと思っているが、研究のワークフローに統合するのが難しすぎると感じている。 PROscorer は、IRT ベースのスコアをより多くの研究者が利用できるようにしてくれるでしょう。

より詳細な情報のためのリソース