创建函数以将多个模型拟合到1个数据集

时间:2018-03-14 12:19:24

标签: r

我正在尝试将GLM拟合到一个小数据集中,该数据集由5列变量y,x1,x2,x3,x4和24行数据组成。 这本身不是问题,但是使用这些预测变量可能有2 ^ 4个模型。我正在尝试编写一个函数,它将为所有不同的模型创建一个GLM,并将系数与AIC值一起返回到1个表中。任何人都可以帮助我吗?

数据集如下所示:

i y x1 x2 x5 x7 1 29.5 5.0208 1.0 2.0 4 2 27.9 4.5429 1.0 1.0 3 3 25.9 4.5573 1.0 1.0 3 4 29.9 5.0597 1.0 1.0 3 5 29.9 3.8910 1.0 1.0 3 6 30.9 5.8980 1.0 1.0 3 7 28.9 5.6039 1.0 0.0 3 8 35.9 5.8282 1.0 2.0 3 9 31.5 5.3003 1.0 1.0 3 10 31.0 6.2712 1.0 1.0 2 11 30.9 5.9592 1.0 2.0 3 12 30.0 5.0500 1.0 0.0 2 13 36.9 8.2464 1.5 2.0 4 14 41.9 6.6969 1.5 1.5 3 15 40.5 7.7841 1.5 1.0 3 16 43.9 9.0384 1.0 1.5 3 17 37.5 5.9894 1.0 2.0 3 18 37.9 7.5422 1.5 1.0 3 19 44.5 8.7951 1.5 2.0 4 20 37.9 6.0831 1.5 1.0 3 21 38.9 8.3607 1.5 2.0 4 22 36.9 8.1400 1.0 2.0 3 23 45.8 9.1416 1.5 1.5 4 24 25.9 4.9176 1.0 1.0 4

输入是:

structure(list(y = c(29.5, 27.9, 25.9, 29.9, 29.9, 30.9, 28.9, 
35.9, 31.5, 31, 30.9, 30, 36.9, 41.9, 40.5, 43.9, 37.5, 37.9, 
44.5, 37.9, 38.9, 36.9, 45.8, 25.9), x1 = c(5.0208, 4.5429, 4.5573, 
5.0597, 3.891, 5.898, 5.6039, 5.8282, 5.3003, 6.2712, 5.9592, 
5.05, 8.2464, 6.6969, 7.7841, 9.0384, 5.9894, 7.5422, 8.7951, 
6.0831, 8.3607, 8.14, 9.1416, 4.9176), x2 = c(1, 1, 1, 1, 1, 
1, 1, 1, 1, 1, 1, 1, 1.5, 1.5, 1.5, 1, 1, 1.5, 1.5, 1.5, 1.5, 
1, 1.5, 1), x5 = c(2, 1, 1, 1, 1, 1, 0, 2, 1, 1, 2, 0, 2, 1.5, 
1, 1.5, 2, 1, 2, 1, 2, 2, 1.5, 1), x7 = c(4, 3, 3, 3, 3, 3, 3, 
3, 3, 2, 3, 2, 4, 3, 3, 3, 3, 3, 4, 3, 4, 3, 4, 4)), .Names = c("y", 
"x1", "x2", "x5", "x7"), row.names = c("1", "2", "3", "4", "5", 
"6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", 
"17", "18", "19", "20", "21", "22", "23", "24"), class = "data.frame")

1 个答案:

答案 0 :(得分:0)

几年前我使用glmulti软件包(下面的链接)来做类似的事情。我不知道它是否适用于您的问题(您应该发布您的数据或数据的子集,以便人们可以尝试一下)。

https://www.jstatsoft.org/article/view/v034i12/v34i12.pdf