r-如何使用predict.glm()对未经筛选的术语预测进行评分



我正在构建一个简单的GLM模型,如下所示:

model1 = glm(y ~ x1 + x2 + x3, data=train)

我使用预测函数为新的预测评分

newpred = predict(object=model1, newdata= validation, type = 'term')

通过指定选项type = 'term',我希望获得单独的术语预测(即,beta1*x1、beta2*x2等(。然而,事实证明,type = 'term'选项将返回将列值居中于0的"居中"预测(如这里所解释的:预测.glm(,type="terms"(实际做什么?(

我的问题是,是否有一种简单的方法可以得到普通的术语预测,而不是中心化的术语预测。该模型有分类变量,我希望每个分类变量都有一个单独的术语(与type = 'term'选项的输出相同(,而不是一系列伪指标变量。

如果你的模型真的那么简单(例如,只有简单的连续预测变量(,那么我感觉像

X <- model.matrix(formula(model), data=train)
sweep(X, coef(model), MARGIN=2, FUN="*")

应该有效(我还没有测试(;CCD_ 4的许多复杂内部机构用于收集属于同一"柱"的柱;术语";(例如一组多项式或样条曲线系数(。

最新更新