作者filialpiety (filialpiety)
看板R_Language
標題[問題]
時間Sat Feb 16 00:14:07 2019
-
[問題類型]:
程式資訊
[軟體熟悉度]:
新手(只有五個月的經驗)
[問題敘述]:
想請教各位大大的策略
我有嘗試用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://webptt.com/m.aspx?n=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
1F:推 Luluemiko: 用np.where來判斷BETA是否>0 02/16 09:46
2F:→ Luluemiko: 喔不對 這個是python的作法 02/16 09:51
3F:→ filialpiety: 感謝~其實我也影響學python~~ 02/16 10:14
4F:→ hank830214: lm物件也可以把beta叫出來 02/16 12:15
5F:→ hank830214: 不太懂分X1,X2,...和Y1,Y2,...的用途,最後又併在一起 02/16 12:18
6F:→ andrew43: reverse是什麼? 02/16 19:13
7F:→ a78998042a: n = 10 02/16 21:06
8F:→ a78998042a: usedata_xnew_list = vector("list", n) 02/16 21:06
9F:→ a78998042a: for(i in 1:n){ 02/16 21:06
10F:→ a78998042a: usedata_df = as.data.frame(replicate(2, rnorm(30) 02/16 21:06
11F:→ a78998042a: )) 02/16 21:06
12F:→ a78998042a: colnames(usedata_df) = c("Y", "X") 02/16 21:06
13F:→ a78998042a: # 02/16 21:06
14F:→ a78998042a: model = lm(Y~X, data = usedata_df) 02/16 21:06
15F:→ a78998042a: if(model$coe[2] < 0) usedata_df[, 2] = usedata_df 02/16 21:06
16F:→ a78998042a: [, 2]*-1 02/16 21:06
17F:→ a78998042a: # 02/16 21:06
18F:→ a78998042a: usedata_xnew_list[[i]] = usedata_df[, 2] 02/16 21:06
19F:→ a78998042a: } 02/16 21:06
20F:→ a78998042a: X_new_total = Reduce("+", usedata_xnew_list) 02/16 21:06
21F:→ andrew43: a78998042a板友,較長的程式碼敬請回文或貼在code分享站 02/16 21:50
22F:→ andrew43: 會更友善。謝謝。 02/16 21:51
24F:→ filialpiety: 感謝樓上各位大大!我寫出來了!晚點貼上code和大家 02/17 06:14
25F:→ filialpiety: 分享 02/17 06:14