Re: [程式] R語言的迴圈跟二進位法問題

看板Statistics作者 (I-20快點來)時間14年前 (2010/05/02 01:44), 編輯推噓2(202)
留言4則, 2人參與, 最新討論串2/2 (看更多)
※ 引述《roymond (羅伊)》之銘言: : ------------------------------------------------------------------------ : [軟體程式類別]: : R語言 : [程式問題]: : 資料處理 迴歸 : [軟體熟悉度]: : 低(1~3個月) : [問題敘述]: : 假設一組資料有 Y X1 X2 X3 X4 : 想要用迴圈的方式去計算 Y 對 X1 X2 X3 X4 所產生的subset model的r-square : 因為有4個變數,共有15組subset model : y=x1 : y=x1+x2 : y=x1+x3 : y=x1+x4 : y=x1+x2+x3 : y=x1+x2+x4 : y=x1+x2+x3+x4 : : : : : : : 以此類推... : 然後將給組subset model所產生的r-square存到矩陣裡面 : 可是想不出迴圈的部分該怎麼寫才能呈獻每組模型! : 另一個想法是利用二進位的方式 : 讓程式可以判斷什麼時候要放哪個變數進去 : 例如 0001 就是放x4 0010 就是放x3 : 0011 就是放x3+x4 1001 就是放x1+x4 以此類推... : 然後再計算r-square : 可是卻想不出該怎麼將這想法呈獻出來寫在R上 : 還有請教各位高手 : 感謝各位! : [程式範例]: : smatrix=matrix(1:15,15,1) : for(i = 1:15) : { : lm.f=as.formula(paste("y~ ",name[i+1],collapse= "+")) : smatrix[i,1]=summary(lm.f)$r.square : } : ----------------------------------------------------------------------------- 我只有想到這個笨方法 =.= library(e1071) bincombinations(4) [,1] [,2] [,3] [,4] [1,] 0 0 0 0 [2,] 0 0 0 1 [3,] 0 0 1 0 [4,] 0 0 1 1 [5,] 0 1 0 0 [6,] 0 1 0 1 [7,] 0 1 1 0 [8,] 0 1 1 1 [9,] 1 0 0 0 [10,] 1 0 0 1 [11,] 1 0 1 0 [12,] 1 0 1 1 [13,] 1 1 0 0 [14,] 1 1 0 1 [15,] 1 1 1 0 [16,] 1 1 1 1 qq <- bincombinations(4)[2:16,] > qq [,1] [,2] [,3] [,4] [1,] 0 0 0 1 [2,] 0 0 1 0 [3,] 0 0 1 1 [4,] 0 1 0 0 [5,] 0 1 0 1 [6,] 0 1 1 0 [7,] 0 1 1 1 [8,] 1 0 0 0 [9,] 1 0 0 1 [10,] 1 0 1 0 [11,] 1 0 1 1 [12,] 1 1 0 0 [13,] 1 1 0 1 [14,] 1 1 1 0 [15,] 1 1 1 1 這樣 qq 就是 你想要的二進位矩陣 然後你可以做迴圈 X <- cbind(X[1:4]) for (i in 1:15) { smatrix[i,1] <- lm(y ~ X %*% qq[i,])$r.square } 這樣應該可以吧 sorry 我只有想到這樣 也希望板上前輩能分享更簡單的方法 <(_ _)> -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 61.230.9.142 ※ 編輯: laba1014 來自: 61.230.9.142 (05/02 02:34) ※ 編輯: laba1014 來自: 61.230.9.142 (05/02 02:39)

05/02 18:47, , 1F
謝謝指教!想請問 %*% 這是什麼意思!剛學不久 有點不懂
05/02 18:47, 1F

05/02 19:46, , 2F
outer product 的指令
05/02 19:46, 2F

05/02 20:28, , 3F
恩恩 謝謝^^
05/02 20:28, 3F

05/03 17:43, , 4F
哪裡
05/03 17:43, 4F
文章代碼(AID): #1Bt6YIMI (Statistics)
文章代碼(AID): #1Bt6YIMI (Statistics)