作者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/cn.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