RでROCの下の面積のp値を計算する方法


12

私は、受信者オペレーター特性(ROC)の下の領域のp値を計算する方法を見つけるのに苦労しています。連続変数と診断テスト結果があります。AUROCが統計的に有意であるかどうかを見たいです。

ROC曲線を扱う多くのパッケージを見つけました:pROC、ROCR、caTools、検証、Epi。しかし、ドキュメントを読んでテストするのに何時間も費やした後でも、私はその方法を見つけることができませんでした。見逃したばかりだと思う。


1
曲線下の領域が「有意」であるとはどういう意味でしょうか?
GUNG -復活モニカ

AUC値が統計的に0.5
user32530

ROC曲線は何から来ましたか?おそらく、あなたはそれのテストが必要です(例えば、全体としてロジスティック回帰モデルのp値があります)。
GUNG -復活モニカ

さて、私のデータは次のようなものです。病気の有無に応じてグループ化する標準テストがあり、血液サンプルから生物学的測定のカットオフ値を見つけたいと思います。それに加えて、曲線の下の領域が必要です。いいえ、回帰モデルはありません
-user32530

したがって、患者から採取された血液のサンプルに対して実行されるいくつかのテストがあります。&あなたは、患者が病気にかかっているかどうかを分類するためにその番号を使用したいと思うでしょう。現在、あなたは彼らの本当の病気の状態を知っている患者のセットのためのこのテストからの数字のセットを持っています。それはすべて正しいですか?
GUNG -復活モニカ

回答:


12

あなたの状況では、ROC曲線をプロットし、その曲線の下の面積を計算することは問題ありませんが、これは一次分析自体ではなく、主分析を補足するものと考えるべきです。代わりに、ロジスティック回帰モデルを適合させます。

ロジスティック回帰モデルには、モデル全体のテストが標準装備されます。(実際には、変数が1つしかないため、そのp値はテスト結果変数のp値と同じになります。)そのp値は後のものです。このモデルを使用すると、観測値が病気になる確率を計算できます。受信者動作特性がどのように伝える感度と特異性は、あなたが予測分類に予測確率を変換するために、異なるしきい値を使用する場合、トレードオフになります。予測された確率はテスト結果変数の関数になるため、異なるテスト結果値をしきい値として使用した場合、予測確率はどのようにトレードオフするかを示しています。


ロジスティック回帰にあまり精通していない場合は、インターネット上で利用可能なリソースがいくつかあります(上記のリンクされているウィキペディアのページ以外)。


それは非常に啓発的でした。ありがとうございました!そこで、ロジスティックモデルglm binomial(logit)を近似します。それから、それをヌルモデルと比較し、そのテストは私が探しているp値を与えますか?
user32530

はい、それはあなたのためにそれを行う必要があります。LRは他にも多くのことを可能にしますが、それで十分です。
GUNG -復活モニカ

コードは次のようになりますか?GLM.1 <-glm(Group〜ContinuousVar、family = binomial(logit)、data = diagnosticData)summary(GLM.1)GLM.2 <-glm(Group〜1、family = binomial(logit)、data = diagnosticData) anova(GLM.2、GLM.1、test = "Chisq")
user32530

summary(GLM.1)必要なものを提供する必要がありanova(GLM.1)ます。実際にフィットする必要がないヌルモデルに対してそれをテストすると思います。しかし、あなたのやり方は間違いなく機能します、はい。
GUNG -復活モニカ

8

基本的に、H0 = "AUCは0.5に等しい"をテストします。

これは実際には、H0 =「2つのグループのランクの分布は等しい」ということと同等です。

後者は、Mann-Whitney(Wilcoxon)検定の帰無仮説です(たとえば、Gold、1999を参照)。

つまり、Mann-Whitney-Wilcoxonテストを安全に使用して質問に答えることができます(たとえば、Mason&Graham、2002を参照)。これは、Franck Dernoncourtが言及した検証パッケージがまさに行うことです。


予測がランダムではないことを示すのはなぜ興味深いのでしょうか?それは有用性を評価しません。
フランクハレル14年

@FrankHarrell多くの場合、予測はランダムよりも優れていない可能性があります。その場合、報告する有用性は実際にはゼロです。確かに、有用性の尺度(感度と特異性)の信頼区間を報告する方がより便利です。しかし、少なくとも2つのグループの違いをテストすることは臨床文献では一般的であり(実際、そこにグループはしばしば違いはありません)、私はレビューアがそれを特に求めているのを見ました。
カリモ14年

私見ではほとんど意味がありません。コインをひっくり返すことよりも良いかどうかではなく、何かがどれだけ便利かを知りたい。
フランクハレル14年

コインを投げるよりも優れていない場合、なぜあなたはすべての仕事をするのですか?コインを裏返すだけです。
スコット

4

パッケージ検証からroc.area()を使用できます。

install.packages("verification")
library("verification")

# Data used from Mason and Graham (2002).
a<- c(1981, 1982, 1983, 1984, 1985, 1986, 1987, 1988, 1989, 1990,
 1991, 1992, 1993, 1994, 1995)
d<- c(.928,.576, .008, .944, .832, .816, .136, .584, .032, .016, .28, .024, 0, .984, .952)

A<- data.frame(a,d)
names(A)<- c("year", "p2")

# For model without ties
roc.area(A$event, A$p2)

戻ります $p.value [1] 0.0069930071


どうもありがとうございましたが、cとdの値はありません。疾患の有無にグループ化する標準的なテストがあり、血液サンプルから生物学的測定のカットオフ値を見つけたいです。それに加えて、曲線の下の領域が必要です。いいえ、回帰はありません。stdtestバイナリ変数と生物学的
価値の

ああ、あなたはすでにROC曲線を持っていると仮定したので、あなたはdを持っていると思った。
フランクダーノンクール

3
通常、病気の確率との真の関係が滑らかなときに任意のカットオフを探すのは間違いです。また、ROC面積が0.5であるという帰無仮説の検証は、非常に退屈な仮説です。ほとんどの予測では、ランダムであるかどうかではなく、予測の精度が重要です。
フランクハレル

問題ありません。フランクデーモンクール、dを入手する方法があるかもしれません。
user32530

医療分野では、診断テストを作成するためにそれらのカットオフポイントが必要になる場合があります。彼らは被験者が病気であるかどうかを知りたいのであり、何かを予測したくないのです。病気の状態を特定するために、より安価な決定でコストを削減する必要がある場合があります。
user32530

0

を使用してpROCで2つのROC曲線を比較できますroc.test()。これもp値を生成します。さらに、使用roc(..., auc=TRUE, ci=TRUE)すると、ROCオブジェクトの作成中に、出力のAUCとともに低い信頼区間と高い信頼区間が得られます。これは有用な場合があります。

次は、ガロンあたりのマイル数または車の重量が、装備されているトランスミッションの種類(自動または手動)のより良い予測子であるかどうかをテストするサンプルコードです。

library(pROC)
roc_object_1 <- roc(mtcars$am, mtcars$mpg, auc=T, ci=T) #gives AUC and CI
roc_object_2 <- roc(mtcars$am, mtcars$wt, auc=T, ci=T) #gives AUC and CI

roc.test(roc_object_1, roc_object_2) #gives p-value

重量は、燃料消費量よりもはるかに優れた予測因子であると思われます。ただし、これは2つの曲線を比較するものであり、0.5などの数値に対する単一の曲線ではありません。信頼区間に数値0.5が含まれているかどうかを確認すると、有意差があるかどうかがわかりますが、p値は生成されません。


p値も提供しますか?
マイケルR.チャーニック

質問はRに関して具体的に尋ねられますが、ここでの一般的なポリシーは、統計(機械学習など)Q&Aサイトであるということです。したがって、Qには統計内容が必要であり、Asはソフトウェア固有の用語で提供されるだけではないことが強く望まれます。それに照らして、このテストが何であり、どのように機能するかについて、Rに存在することだけでなく、そのためのRコードを示すことだけでなく、もっと言うことができますか?
GUNG -復活モニカ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.