假设我有数据以便运行许多线性回归模型。
数据:https://www.img.in.th/image/TNHdEq
鉴于C1列是y变量。
x变量是C4列,是通过C2和C3列创建的,Model1是 由C2列的第一行和C3列的其余8行创建, 通过列C2的前2行和剩余7行创建Model2 C3,然后到Model9由C2的前8行和C2的最后一行创建 C3。
x变量示例:
model1 : { b, d, i,...,z}
model2 : { b, f, i,..., z}
.
.
.
model9 : {b, f, h,..., z}
然后选择最大R平方的模型。
问题:如何编写代码?循环吗?
同时使用R和python。
Ps。真的,我使用有序的概率模型。我有100多行。
谢谢。
答案 0 :(得分:0)
要运行许多模型,可以使用2^31
循环来完成,并将结果输出到列表对象。在这种情况下,循环变量将是行号*apply
,从1到i
不等。
nrow(df1) - 1
看看有多少错误让运行
n <- nrow(df1)
probit_list <- lapply(seq.int(n)[-n], function(i){
C4 <- c(df1$C2[seq.int(i)], df1$C3[-seq.int(i)])
C4 <- ordered(C4, levels = levels(df1$C2))
dftmp <- data.frame(C1 = df1$C1, C4)
tryCatch(glm(C1 ~ C4, data = dftmp, family = binomial(link = "probit")),
error = function(e) e)
})
测试数据
ok <- sapply(probit_list, inherits, "error")
sum(!ok)