精華區beta R_Language 關於我們 聯絡資訊
最後補一個總流程 1. 了解資料特性 2. 查看變數相關性,確保共線性問題不會出現 => 出現共線性問題 就要考慮其他方法 3. 模型選擇,通常不會是單一標準 a. 最簡單的方式就是根據你設定的significant level篩選掉不顯著的變數 b. 用prediction error決定加入哪些變數 (資工最常用) c. 用AIC or BIC選擇最好的模型 d. 有時候也會同時考慮R^2跟AIC 4. Model checking a. Normality => 沒過就要考慮response要做轉換,很多時候b的方法會拿來用 b. Equal variance => 最常見的就是用power transformation or Box-Cox (Note: 轉換以容易解釋為主) c. outlier detection => influence大才建議刪除 5. 最終結果 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 218.164.79.227 ※ 編輯: celestialgod 來自: 218.164.79.227 (09/06 02:02)
sseeaann:感謝c大 對我處理迴歸有很大的幫助^^ 09/06 02:29
sseeaann:想再請教c大 假如資料含有NA 如何把NA排除或轉化為0? 09/06 14:49
如果你的data存在dat這個object上,指令如下 dat[which(is.na(dat)]=0
sseeaann:另外還有幾個問題 outlierTest()指令是跑出所有離群值的? 09/06 15:23
他會告訴你說有沒有standardized residual太大 在第一行 然後下面會列出最大的standardized residual.... 我手邊沒有一個有outlier的data,不知道有outlier他會怎樣....
sseeaann:離群值要怎麼做刪除? 指令我不太會..以savings資料檔為例 09/06 15:25
離群值就你如果知道他的row number,rn 就 dat.new=data[-rn]
sseeaann:我有把要刪除na的資料檔打進指令內 但好像還是不行 09/06 16:59
sseeaann:刪除NA的資料檔我適用data(airquality) 09/06 16:59
sorry, 不用which airquality[is.na(airquality)]=0
sseeaann:我自己有找過刪除NA的指令 好像有個na.action=na.exclude 09/06 17:00
sseeaann:另外離群值的哪個指令 好像刪除數字還可以 09/06 17:01
sseeaann:但文字的離群值就不知道該怎麼刪除了 09/06 17:01
你有例子我可以幫你試試看.... 還有我對function涉獵比較少...通常我都徒法煉鋼@@... 可能有好用的function可以用於刪除NA or Outliers...
sseeaann:另外誠心跟c大您說聲感恩 不然迴歸很少有用R的書籍= =+ 09/06 17:06
書的話下面有幾本 你可以在網路上找到低調 Linear Models with R Extending_the_Linear_Model_with_R Using R for Data Management, Statistical Analysis, and Graphics 這幾本都有用回歸作分析....而且都是用R
sseeaann:關於文字的離群值我適用data(savings)資料檔 再用指令 09/06 18:24
sseeaann:outlierTest()找出離群值 只是試跑出文字的離群值用 09/06 18:25
sseeaann:data[-rn,]的方式不適能刪除 數字的話就沒問題! 09/06 18:26
sseeaann:另外剛剛有把airquality[is.na(airquality)]=0的指令放在 09/06 18:34
sseeaann:lm()指令中 但發現如果對y做log轉換好像就有問題= =+ 09/06 18:34
還是不太明白什麼叫做文字離群值XD... rn一定要數字啊!!! 因為那個是去掉那一列 如果你說的是去掉某一個國家的話,可以這樣 savings[-match("South Africa", rownames(savings)),] 這個就是我要去掉南非那一個row....當然可以一次去多個 savings[-match(c("South Africa","China"), rownames(savings)),] 因為你y裡面有0....(PS:你剛剛說要把NA轉成0....) 所以log(0)=-Inf...當然會有問題 補充:你可能會用到多項式的回歸 可以這樣寫 lm(y~I(x^2)+I(x^3)+log(x)) I()可以讓你在lm裡面做計算@@...
sseeaann:喔喔 對吼 不能LOG(0)= =+ 那NA的部分要怎麼處理才好= =? 09/06 19:30
sseeaann:因為有個迴歸方程的常態假設沒成立 所以我要對Y做LOG轉換 09/06 19:31
sseeaann:麻煩的是airquality這個資料檔有NA.. 09/06 19:31
sseeaann:晚一點我可能會PO我寫的程式碼@@ 不過應該有些問題.. 09/06 19:33
NA就是NA阿= = 給他0....實在不怎麼make sense除非有什麼合理解釋... 你PO程式碼之後 可以再研究看看 ※ 編輯: celestialgod 來自: 218.164.79.227 (09/06 19:41)