运行许多线性回归模型

时间:2020-04-16 10:42:27

标签: python r

假设我有数据以便运行许多线性回归模型。

数据: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多行。

谢谢。

1 个答案:

答案 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)