2013-10-04 18 views
1

我有一个使用glm2的logit模型对象。预测因子是连续的和时间变化的,所以我使用了基本样条。当我模型对象predict(FHlogit, foo..,)它提供了一个预测。一切都很好。从str()提取R中的模型对象

现在,我想要做的是提取部分FHLogit和提供预测的基础矩阵。我不想从str(FHLogit)中提取关于该模型的信息我试图提取说Beta * Predictor = 2的部分。所以,我可以操纵每个预测的基础矩阵

+0

如果你不能找到你'STR(FHLogit)'所需的值,看看在'print.glm2'或'summary.glm2'代码(或任何'类(FHlogit)'返回......不知道它是不是glm2)。它在那里。 –

+0

你看过'ls(FHlogit)'吗? – Frank

+0

我会看看您推荐的区域。在周末前来审查我的书和明天的裁判。它的glm2,所以我知道它必须在那里。谢谢你的建议 –

回答

0

我不认为使用基准样条会影响这个。如果是这样,请提供一个可重现的例子。

这里有一个简单的例子:

df1 <- data.frame(y=c(0,1,0,1), 
        x1=seq(4), 
        x2=c(1,3,2,6)) 
library(glm2) 
g1 <- glm2(y ~ x1 + x2, data=df1) 
### default for type is "link" 
> stats::predict.glm(g1, type="link") 
      1   2   3   4 
0.23809524 0.66666667 -0.04761905 1.14285714 

现在,作为不确定这些编号S是如何到达我们可以看看源针对上述情况,与predict.glm。我们可以看到,TYPE =“链接”是最简单的情况下,返回

pred <- object$fitted.values # object is g1 in this case 

这些值是从产生的原始数据 * 系数,我们可以用例如验证预测

all.equal(unname(predict.glm(g1, type="link")[1]), 
      unname(coef(g1)[1] + coef(g1)[2]*df1[1, 2] + coef(g1)[3]*df1[1, 3]))