如何使 GAM 使用二进制变量?
How to make GAM work with binary variables?
我是运行这段代码:
model.runs <- BIOMOD_Modeling(run.data,
models = models,
NbRunEval = runs.CV,
DataSplit = 80,
VarImport = 20,
SaveObj = T,
Yweights = NULL,
rescal.all.models = FALSE,
do.full.models = FALSE,
models.options = BIOMOD_ModelingOptions(
GAM = list(k=3),
MAXENT.Phillips = list(path_to_maxent.jar = "F:/xxx/xxx/")))
save(model.runs, file = "model.runs")
我遇到了这个错误:
Error in smooth.construct.tp.smooth.spec(object, data, knots) :
A term has fewer unique covariate combinations than specified maximum
degrees of freedom
经过一番研究,我了解到GAM不喜欢我的二进制变量,所以我把它们拿出来了,效果很好。
因此,我的问题很简单:我想保留我的环境变量,这在某种程度上可行吗?
对不起,如果它是微不足道的,但我不经常使用 GAM,我在其他任何地方都找不到答案。
干杯。
不能对二元或分类变量进行平滑处理,只能对连续变量进行平滑处理。
您可以在平滑变量和分类变量之间创建交互,并且可以对分类变量使用随机效应“平滑”。但是你不能只对二元或分类变量进行平滑处理。您需要安排 biomod 将这些变量作为线性因子项包含在内。如果您将它们编码为 0,1,那么 R、biomod 和 mgcv 将认为这些变量是数字。确保它们被强制为因子,然后重试。
我是运行这段代码:
model.runs <- BIOMOD_Modeling(run.data,
models = models,
NbRunEval = runs.CV,
DataSplit = 80,
VarImport = 20,
SaveObj = T,
Yweights = NULL,
rescal.all.models = FALSE,
do.full.models = FALSE,
models.options = BIOMOD_ModelingOptions(
GAM = list(k=3),
MAXENT.Phillips = list(path_to_maxent.jar = "F:/xxx/xxx/")))
save(model.runs, file = "model.runs")
我遇到了这个错误:
Error in smooth.construct.tp.smooth.spec(object, data, knots) :
A term has fewer unique covariate combinations than specified maximum
degrees of freedom
经过一番研究,我了解到GAM不喜欢我的二进制变量,所以我把它们拿出来了,效果很好。
因此,我的问题很简单:我想保留我的环境变量,这在某种程度上可行吗?
对不起,如果它是微不足道的,但我不经常使用 GAM,我在其他任何地方都找不到答案。
干杯。
不能对二元或分类变量进行平滑处理,只能对连续变量进行平滑处理。
您可以在平滑变量和分类变量之间创建交互,并且可以对分类变量使用随机效应“平滑”。但是你不能只对二元或分类变量进行平滑处理。您需要安排 biomod 将这些变量作为线性因子项包含在内。如果您将它们编码为 0,1,那么 R、biomod 和 mgcv 将认为这些变量是数字。确保它们被强制为因子,然后重试。