你的第一個step(m)只是試試看把維一的X丟掉看看AIC變化而發現AIC沒有變更小所以就維持不動。不嫌棄的話請見拙作
https://youtu.be/en_GdbpZexE等等,你的X是矩陣的話,那其實是把整個X都丟掉看看。你可以as.data.frame(X)後再丟給lm()。如果x有很多欄,就寫成lm(y ~ ., as.data.frame(x))其中的 "." 就是指 as.data.frame(x) 的每個欄位lm(y ~ (.)^2, as.data.frame(x))那可以改變做法,先把所有自變項製作好並塞在新的matrix或是塞在新的data frame例如 model.matrix(~.^2, data = as.data.frame(x))[,1]和x^2這二個matrix用cbind()接起來,看習慣。另一種想法可以是利用字串處理生成很長的formula,直接餵給lm()和step(),而不是預先製作變數。