【问题标题】:Calculate AUC and GAM and set a scale in R计算 AUC 和 GAM 并在 R 中设置比例
【发布时间】:2014-05-21 02:58:19
【问题描述】:

我有一个数据表格如下:

x    y   chla   sst   ssha   eke  tuna
:    :     :     :      :     :     : 
:    :     :     :      :     :     :

我使用的 GAM 模型如下:

GAM

通过使用上述模型,我可以处理 chla、sst 和 ssha 的数据。但是当我处理 eke 数据时,它不起作用,R 程序告诉我“eval(expr, envir, enclos) 中的错误:找不到对象eke。有人可以帮我解决这个问题吗?

我已经安装了 ROCR 包来计算 AUC。但我不知道如何(语法)计算 AUC。有谁能帮我解决这个问题吗?

我还使用了以下命令来制作图表:

plot(GAM, xlab=..., ylab=..... font.lab= ...shade=....)

但是当我运行该命令时,结果并不是那么好。我的意思是,y 轴上的刻度非常奇怪。如何分别以 1 和 5 间隔(例如)设置 y 轴和 x 轴上的刻度?

【问题讨论】:

  • GAM 表示广义加法模型
  • 我对 R 一无所知,但我怀疑添加“不太正确”图表的屏幕截图可能会有所帮助。
  • 您能否将str(nonLinear) 的输出添加到您的问题中。除了dput(names(nonLinear)),如果“eke”的字符不好或者与其他向量不同,我也在工作。
  • 对不起 MrFlick 我不明白你的意思。你能帮我看看示例语法吗?

标签: graph r


【解决方案1】:

由于您没有包含任何测试数据,我将使用gam 包中的测试数据来计算 AUC 并绘制 ROC 曲线。

library(gam)
library(ROCR)

#sample binomial regression    
data(kyphosis)
GAM<-gam(Kyphosis ~ poly(Age,2) + s(Start), data=kyphosis, family=binomial)

#get the predicted probabilities for each sample
gampred <- predict(GAM, type="response")

#make a ROCR prediction object using the predicted values from
#    our model and the true values from the real data
rp <- prediction(gampred, kyphosis$Kyphosis) 

#now calculate AUC
auc <- performance( rp, "auc")@y.values[[1]]
auc

#not plot ROC curve
roc <- performance( rp, "tpr", "fpr")
plot( roc )

【讨论】:

  • 实际上我想绘制 Chl-a vs s(Chl-a)、SST vs s(SST) 等。我该怎么做?
  • @ahmad 我不知道你的符号是什么意思。
  • 从您的回答来看,我认为您的数据名称是 kyphosis。是真的吗?我的输入数据在 .txt 中(例如 2005.txt)。当我用 2005 或 2005.txt 更改后凸畸形时,R 程序说 `Error:unexpected input in "rp
  • @ahmad 由于您没有提供任何数据,因此我使用了 GAM 包中的示例数据集 kyphosis。数据框名为“kyphosis”,用于 GAM 回归的 data.frame 中的响应变量名为“Kyphosis”(大写很重要)。
  • 据我所知,gam 模型对每个模型协变量都有一个平滑函数。我也在这里使用了 mgcv 包。这就是为什么我要绘制 Chl-a vs s(Chl-a)、SST vs s(SST)、SSHA vs s(SSHA) 和 EKE vs s(EKE)。
猜你喜欢
  • 2011-12-10
  • 2011-06-21
  • 2013-05-08
  • 2016-01-23
  • 2020-06-25
  • 2013-12-29
  • 2019-06-16
  • 1970-01-01
  • 2018-03-28
相关资源
最近更新 更多