python - 运行许多线性回归模型
问题描述
假设我有数据可以运行许多线性回归模型。
数据:https ://www.img.in.th/image/TNHdEq
给定 C1 列是 y 变量。
x 变量是 C4 列,由 C2 和 C3 列创建,Model1 由 C2 列的第一行和 C3 列的剩余 8 行创建,Model2 由 C2 列的前 2 行和 C3 剩余的 7 行创建,然后到 Model9 是由 C2 的前 8 行和 C3 的最后一行创建。
示例 x 变量:
model1 : { b, d, i,...,z}
model2 : { b, f, i,..., z}
.
.
.
model9 : {b, f, h,..., z}
并通过最大 R 平方选择模型。
问题:如何编码?环形?
同时使用 R 和 python。
Ps.Really,我使用有序概率模型。而且我有很多行 100+。
谢谢你。
解决方案
运行许多模型可以通过*apply
循环和结果输出到列表对象来完成。在这种情况下,循环变量将是行号i
,从 1 到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)
测试数据
set.seed(1234)
n <- 9
df1 <- data.frame(
C1 = rbinom(n, 1, prob = c(0.4, 0.6)),
C2 = ordered(sample(1:4, n, TRUE), levels = 1:4),
C3 = ordered(sample(1:4, n, TRUE), levels = 1:4)
)
推荐阅读
- sql - PostgreSQL DATE_TRUNC 2 周
- firebase - 有什么方法可以跟踪 Firestore 的读写吗?
- java - 如何杰克逊按值序列化命名?
- asp.net - MongoDB opsmanager 启动服务无法启动
- php - PHP - 内存泄漏 - 对象不会从 ram 中取消设置,而 gc_collect_cycles 什么也不做
- reactjs - 如何在 React js 中加载和编辑文本文件?
- rest - 来自 setup() 函数的 REST 调用 - ionic - vue.js
- python - 熊猫向前填充 ffill() 直到另一列的条件为假
- api - 如何在测试之前运行异步任务并存储结果以供进一步测试 - Supertest
- excel - 需要帮助转置相同标准的不同值[难以描述,我需要的内容示例]