如何在C ++代码中实现R模型
|
我在R中有一个模型:
> s1 <- toys[1:10000,]
> model <- glm(V11~V2+V3+V5+V7+V8+V9+V10,gaussian,s1)
> model
Call: glm(formula = V11 ~ V2 + V3 + V5 + V7 + V8 + V9 + V10, family = gaussian,
data = s1)
Coefficients:
(Intercept) V2 V3 V5 V7 V8 V9 V10
-0.900106 0.006385 -0.005080 1.006324 0.229282 0.012391 -0.049307 -0.186450
Degrees of Freedom: 9999 Total (i.e. Null); 9992 Residual
Null Deviance: 11050000
Residual Deviance: 121200 AIC: 53340
现在,如何将该R模型编程为C函数? (带有链接的RTFM就足够了)
可能我只需要将R模型中的所有系数乘以它们各自的输入,然后将所有项相加即可得出最终结果?
float model(float v2, float v3, ... float v10)
{
return -0.900106 * v2 + 0.006385 * v3 + .. + (-0.186450) * v10;
}
我需要独立代码,而不依赖于任何外部来源
没有找到相关结果
已邀请:
1 个回复
苛肠倒俱
代表广义线性模型,但是当您使用恒等链接时,最终会得到线性回归)。 C语言中有多种实现方式,例如apophenia库,该库具有一组不错的统计函数,并带有针对MySQL和Python的绑定。 GSL和ALGLIB库也有专用算法。 但是,对于轻量级和几乎独立的C代码,我建议您看一下snpMatrix BioC软件包源代码中的ѭ3。 在更新了问题之后,您似乎宁愿根据一组回归参数来预测结果。然后,假设假设模型的一般形式为y = b0 + b1 * x1 + b2 * x2 + ... + bp * xp,其中b0是截距,b1,...,bp是回归系数(从数据中估算出来),计算起来非常简单,因为它是一个加权总和:取p个预测变量的每个观测值,然后乘以b \(不要忘了截距项!)。 您可以使用R
函数仔细检查结果;这是一个示例,包含两个名为ors5ѭ和
的预测变量,100个观察值以及一个规则的新值网格,用于预测结果(您也可以使用自己的数据):