簡體   English   中英

運行多次線性回歸 model

[英]Run many linear regression model

假設我有數據可以運行許多線性回歸 model。

數據: 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}

和 select 模型最大 R 平方。

問題:如何編碼? 環形?

同時使用 R 和 python。

Ps.真的,我使用有序概率 model。我有很多行 100+。

謝謝你。

要運行許多模型,可以使用*apply循環和結果 output 到列表 object 來完成。 在這種情況下,循環變量將是行號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)
)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM