ホーム>source

こんにちは、データのROC曲線を作成するコードを実行しています。次のコードを使用しています。

ただし、ROC PDFを生成しますが、グラフなどはありません。

私が間違っているアイデアはありますか?

事前に感謝します。

DF <- list.files(path = getwd(), pattern = "*.csv", all.files = T )
n <- length(fname)
lst <- vector("list", length=n)
test <- matrix(data = NA, nrow=n, ncol=1)
for(i in 1:n){
  cat("\n",i)
  data <- read.csv(fname[i], header=T)
  s <- summary(data)
  breath <- c(DF$Absolute.Neg.74, DF$Absolute.Pos.74)
  n=nrow(DF)
  out <-  c(rep(0,length=n),rep(1,length=n))
  DF1 <- data.frame(breath=breath, out=out)
  str(DF1)
  DF1 <- na.omit(DF1)
  fm<- glm(out~breath, data=DF1)
  summary(fm)
  resp <- predict(fm, newdata = DF1, type = "response")
  DF1$resp <- resp
  cutoff = 0.05
  pred <- resp >cutoff
  DF1$pred <- as.numeric(pred)
  table(DF1$out, DF1$pred)
  library(pROC)
  myroc <- roc(out~resp, data = DF1)
  myroc
  auc(myroc)
  plot.roc(myroc, main=paste0('ROC curve of breath: ' , names(data)[1]),         col = 'red')
 }
pdf(file="ROC.pdf")
opar <- par(no.readonly = TRUE)
par(mfrow=c(2,2))
for(i in 1:n){
  cat("\n",i)
  data <- read.csv(fname[i], header=T)
  plot.roc(myroc, main=paste0('ROC curve of breath: ' , names(data)[1]),    col = 'red')
}
par(opar)
dev.off()

あなたの答え
  • 解決した方法 # 1

    この(はるかに単純な)コードを変更するだけです:

    data("iris")
    library(pROC)
    iris$y <- ifelse(iris$Species=="setosa",1,0)
    roc.list <- list()
    n <- 4
    
    

    これにより、すべてのプロットが別々のファイルになります

    for(i in 1:n){
         fit <- glm(y~Sepal.Length + Petal.Length, data=iris)
         roc.list[[i]] <- roc(y~Sepal.Length, data = iris)
         pdf(file = paste0("FileName",i,".pdf"))
         plot(roc.list[[i]])
         dev.off()
    }
    
    

    これにより、プロットの2X2マトリックスが得られます

    pdf(file = paste0("File2Name.pdf"))
    par(mfrow=c(2,2))
    plot(roc.list[[1]])
    plot(roc.list[[2]])
    plot(roc.list[[3]])
    plot(roc.list[[4]])
    dev.off()
    
    

関連記事

  • 前へ java - JPAクエリ:サブクエリをグループ化条件に結合する
  • 次へ singleton - Autofacシングルインスタンスが機能しない