看板 R_Language 關於我們 聯絡資訊
- [問題類型]: 程式資訊 [軟體熟悉度]: 新手(只有五個月的經驗) [問題敘述]: 想請教各位大大的策略 我有嘗試用FUNCTION搭配IF找誰的Beta<0和>=0 下一部就卡死了 麻煩給點靈感 我是有想到機器學習或深度學習 可是沒學過 網路爬文也不知道從何學起 求求各位!!!! 感謝 [程式策略]: 流程如下 ###以下是成功的部份 第一步:整理出Y1, Y2, ….和X1, X1_reverse, X2, X2_reverse, …. 第二步:用迴圈結合線性回歸 For (Y in Y1, Y2, ….){ For ( X in X1, X2, …){ Lm(Y~X } } 第三步:找出lm(Y~X)的X1, X2, X3,….的BETA ####成功結束 ####以下是瓶頸的部分 第一步: 如果lm(Y~X1)的X1的BETA<0,則用X1_reverse取代X1 如果lm(Y~X2)的X2的BETA<0,則用X1_reverse取代X2 如果lm(Y~X3)的X3的BETA<0,則用X1_reverse取代X3 ….. 第二步: 最後跑出新的自變相 X1_new(X1或是X1_reverse), X2_new(X2或是X2_reverse), X3_new(X3或是X3_reverse), ….. 第三部: 再把X1_new+ X2_new+ X3_new+ …..加總成X_new_total ####目前卡死在以上這些 [關鍵字]: 條件式判斷 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.164.79.201 ※ 文章網址: https://www.ptt.cc/bbs/R_Language/M.1550247249.A.7BE.html ※ 編輯: filialpiety (218.164.79.201), 02/16/2019 00:15:41 ※ 編輯: filialpiety (218.164.79.201), 02/16/2019 00:20:00
Luluemiko: 用np.where來判斷BETA是否>0 02/16 09:46
Luluemiko: 喔不對 這個是python的作法 02/16 09:51
filialpiety: 感謝~其實我也影響學python~~ 02/16 10:14
hank830214: lm物件也可以把beta叫出來 02/16 12:15
hank830214: 不太懂分X1,X2,...和Y1,Y2,...的用途,最後又併在一起 02/16 12:18
andrew43: reverse是什麼? 02/16 19:13
a78998042a: n = 10 02/16 21:06
a78998042a: usedata_xnew_list = vector("list", n) 02/16 21:06
a78998042a: for(i in 1:n){ 02/16 21:06
a78998042a: usedata_df = as.data.frame(replicate(2, rnorm(30) 02/16 21:06
a78998042a: )) 02/16 21:06
a78998042a: colnames(usedata_df) = c("Y", "X") 02/16 21:06
a78998042a: # 02/16 21:06
a78998042a: model = lm(Y~X, data = usedata_df) 02/16 21:06
a78998042a: if(model$coe[2] < 0) usedata_df[, 2] = usedata_df 02/16 21:06
a78998042a: [, 2]*-1 02/16 21:06
a78998042a: # 02/16 21:06
a78998042a: usedata_xnew_list[[i]] = usedata_df[, 2] 02/16 21:06
a78998042a: } 02/16 21:06
a78998042a: X_new_total = Reduce("+", usedata_xnew_list) 02/16 21:06
andrew43: a78998042a板友,較長的程式碼敬請回文或貼在code分享站 02/16 21:50
andrew43: 會更友善。謝謝。 02/16 21:51
andrew43: https://ideone.com/F7a0NR 參考看看 02/16 23:17
filialpiety: 感謝樓上各位大大!我寫出來了!晚點貼上code和大家 02/17 06:14
filialpiety: 分享 02/17 06:14