作者mono1023 (阿沛)
站內Statistics
標題[程式] 使用sas做西格瑪計算
時間Wed May 8 11:39:18 2013
------------------------------------------------------------------------
[軟體程式類別]:
sas
[程式問題]:
想將每檔基金內的各個持有的股票權重減去半年前那個時點的該股票權重
並且取絕對值
再將這些這些各個股票相減的權重作西格瑪加總再除以2
然後會有很多不同基金
note:在這當中我有設一個虛擬變數D 我想將若虛擬變數為1的基金資料
減去半年前的資料
[軟體熟悉度]:
低(1~3個月)
[問題敘述]:
各位前輩我想將資料作上述的運算
我的資料格式例如
基金編號 持有金額 caldt_time 股票代號 權重 D
a ... 20050101 1203 ... 0
a ... 20050101 3241 ... 0
a ... 20050101 9321 ... 0
a ... 20050201 1203 ... 0
a ... 20050201 3241 ... 0
a ... 20050201 9321 ... 0
.
.
a ... 20050701 1203 ... 1
a ... 20050701 3241 ... 1
a ... 20050701 0321 ... 1
b ... ... .. ... .
b ... ... .. ... .
b ... ... .. ... .
由上面舉例就是在20050701時虛擬變數為1 所以我要用這個時點
的a資料中各個股票(使用股票代碼)的權重減去半年前的各個股票權重
再來麻煩看到20050701的第三行的股票0321跟原本9321不一樣
所以0321的權重要減去0 然後0減去9321的權重 都要各自取絕對值
最後西格瑪相加再除以2
然後每檔基金(我用基金編號當id)各自回圈去做
這邊我煩惱很久 好像不能用lag跟dif去做
希望有前輩能夠解答 或是提點我需要熟悉那些語法
謝謝大家!!
這邊我想補充一下 其中caldt_time我已經用mdy函數轉成sas內建時間函數
為了方便閱讀所以我把它打成日期
-----------------------------------------------------------------------------
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 118.160.173.252
※ 編輯: mono1023 來自: 118.160.173.252 (05/08 11:44)
1F:推 tew:要考慮三個 1.兩個時期都有股票 2.六個月前有 但是賣光了 05/08 12:36
2F:→ tew:3.新買進的股票 05/08 12:36
3F:→ tew:最佳方法是 每個月的資料都取出來然後用相差六個月的資料合併 05/08 12:37
4F:→ tew:記得依照基金以及股票代號合併 這樣直接做簡單的兩變項相減 05/08 12:39
5F:→ tew:就會相當輕鬆 05/08 12:39
6F:→ tew:第二個方法 proc sql可以直接處理 05/08 12:40
7F:→ tew:用full join 05/08 12:40
8F:→ mono1023:謝謝你 我去研究一下!! 05/08 13:49