★ SPSSでROC曲線の描き方教えて下さい ★

503. SPSSでROC曲線の描き方教えて下さい さくらだ みゆき 2003/08/17 (日) 12:35
└519. Re: SPSSでROC曲線の描き方教えて下さい 青木繁伸 2003/08/19 (火) 22:58
 ├538. Re^2: SPSSでROC曲線の描き方教えて下さい 青木繁伸 2003/08/22 (金) 23:50
 │└539. Re^3: SPSSでROC曲線の描き方教えて下さい 青木繁伸 2003/08/22 (金) 23:52
 │ └540. Re^4: SPSSでROC曲線の描き方教えて下さい 青木繁伸 2003/08/23 (土) 00:04
 └537. Re^2: SPSSでROC曲線の描き方教えて下さい さくらだ みゆき 2003/08/22 (金) 20:56


503. SPSSでROC曲線の描き方教えて下さい さくらだ みゆき  2003/08/17 (日) 12:35
SPSSを使ってROC曲線を作成したいのですが,ガイドブックを見ても上手くできません。感度,特異度をどのようにデータに入力して,その後どのような操作をすればよいのか教えて下さい。曲線部下部の面積も表示されるでしょうか。よろしくお願い致します。

     [このページのトップへ]


519. Re: SPSSでROC曲線の描き方教えて下さい 青木繁伸  2003/08/19 (火) 22:58
http://www.spss.co.jp/product/drspss/drspss.html
に Dr. SPSS II なんてのがありますが,それでお望みの結果が得られるかどうかは私にはわかりません。

http://homepage.mac.com/takashimogi/books/book01.html
に SPBS というのもあるようですが,これも私にはわかりません。

http://www.sas.com/offices/asiapacific/japan/periodicals/technews/pdf/4-3.pdf
当然,SAS でもできるようですが。同上。

R で書くと簡単なのかな...って,計算方法を知らない(^_^;)

     [このページのトップへ]


538. Re^2: SPSSでROC曲線の描き方教えて下さい 青木繁伸  2003/08/22 (金) 23:50
http://www.jaclap.org/seminar_qm1.html
を参照して以下のような R プログラムを書きました。
HbA1c <- c(4.0, 5.2, 5.6, 6.0, 6.4, 6.8, 7.2, 7.6, 8.2, 8.6, 9.0, 9.4, 9.8, 10.2)
HbA1c.disease <- c(1, 2, 3, 3, 7, 7, 16, 12, 10, 3, 4, 8, 5, 19)
HbA1c.normal <- c(20, 28, 27, 13, 6, 2, 2, 1, 1, 0, 0, 0, 0, 0)

FRA <- c(100, 220, 230, 240, 250, 260, 270, 280, 290, 300, 320, 340, 360, 400)
FRA.disease <- c(3, 2, 1, 4, 7, 4, 16, 5, 3, 9, 10, 5, 10, 21)
FRA.normal <- c(25, 7, 19, 17, 7, 8, 7, 6, 2, 2, 0, 0, 0, 0)
est.m <- c(70, 15, 15)

ROC <- function(x, disease, normal)
{
    k <- length(x)
    n.disease <- sum(disease)
    n.normal <- sum(normal)
    kando <- giyouseiritu <- 1
    for (i in 2:k) {
        kando <- c(kando, sum(disease[i:k])/n.disease)
        giyouseiritu <- c(giyouseiritu, sum(normal[i:k])/n.normal)
    }
    kando <- c(kando, 0)
    giyouseiritu <- c(giyouseiritu, 0)
    result <- cbind(c(x, NA), kando, giyouseiritu)
    plot(giyouseiritu, kando, type="b")
    abline(0, 1, h=c(0, 1), v=c(0, 1))
    s <- 0
    for (i in 1:k) {
        s <- s+(giyouseiritu[i]-giyouseiritu[i+1])*(kando[i+1]-(1-giyouseiritu[i+1])+kando[i]-(1-giyouseiritu[i]))/2
    }
    list(result=result, s=s)
}

ROC(FRA, FRA.disease, FRA.normal)
ROC(HbA1c, HbA1c.disease, HbA1c.normal)

     [このページのトップへ]


539. Re^3: SPSSでROC曲線の描き方教えて下さい 青木繁伸  2003/08/22 (金) 23:52
実行例は以下の通り。図も描かれます。
> ROC(HbA1c, HbA1c.disease, HbA1c.normal)
$result
           kando giyouseiritu
 [1,]  4.0  1.00         1.00
 [2,]  5.2  0.99         0.80
 [3,]  5.6  0.97         0.52
 [4,]  6.0  0.94         0.25
 [5,]  6.4  0.91         0.12
 [6,]  6.8  0.84         0.06
 [7,]  7.2  0.77         0.04
 [8,]  7.6  0.61         0.02
 [9,]  8.2  0.49         0.01
[10,]  8.6  0.39         0.00
[11,]  9.0  0.36         0.00
[12,]  9.4  0.32         0.00
[13,]  9.8  0.24         0.00
[14,] 10.2  0.19         0.00
[15,]   NA  0.00         0.00

$s
[1] 0.4438  ROC 曲線下面積(これが0.5に近いほど優れた検査法)

     [このページのトップへ]


540. Re^4: SPSSでROC曲線の描き方教えて下さい 青木繁伸  2003/08/23 (土) 00:04
実測データがある場合には,それに基づいて階級幅を適切に設定した度数分布表を作成する関数を追加作成して,その結果を先に示した関数に渡してやればいいです。

     [このページのトップへ]


537. Re^2: SPSSでROC曲線の描き方教えて下さい さくらだ みゆき  2003/08/22 (金) 20:56
アドレスありがとうございます。
また格闘してみます。

     [このページのトップへ]


● 「統計学関連なんでもあり」の過去ログ--- 025 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る