我正在使用glmnet软件包创建一个基于lasso回归的物种分布模型(SDM)。我成功地使用glmnet::cv.glmnet()对模型进行了拟合,并且可以通过设置s= lambda.min和type = "response“来使用predict()函数来生成给定的lambda值的预测概率。
我正在创建几种不同类型的SDMs,并一直使用dismo::估价()来生成fit统计数据(基于测试数据集),并使用阈值将概率转换为二进制值。但是,当我使用cv.glmnet (或glmnet)模型运行dismo::model ()时,我得到以下错误:
h(simpleError(msg,call))中的错误:在为函数“as.Matrix”选择方法时计算参数'x‘时出错: %*%的尚未实现的方法
这让我感到困惑,因为我认为,当我在存在位置(p)提供带有预测值的矩阵和在缺勤位置(a)提供值的另一个矩阵时,不需要使用value()中的x参数。我想知道估价()是否不适用于这些类型的模型?谢谢,如果我错过了一些显而易见的事情,那就道歉吧!
发布于 2022-10-12 20:06:53
在花费了更多的时间之后,我不认为dismo::value()在提供"p“和"a”作为预测值的矩阵时与glmnet对象一起工作。dismo::计算()在调用data.frames ()函数之前将它们转换为。为了解决我的问题,我创建了一个基于dismo::solve ()的新函数,该函数将p或a作为预测()函数的矩阵。
https://stackoverflow.com/questions/74035242
复制相似问题