2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩28頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、R財務(wù)分析與互動式介面教學(xué)實務(wù)經(jīng)驗分享,明新科技大學(xué)教師社群,2017.05.10,田慧君 于昌永 靜宜大學(xué)財務(wù)與計算數(shù)學(xué)系,Financial data Analysis System,靜宜大學(xué) 財務(wù)與計算數(shù)學(xué)系,1.隨著巨量資料分析發(fā)展,使用R語言將成為重要的基本能力。2.REXER ANALYTICS調(diào)查顯示,R為資料分析師使用比例最高的工具。3.GOOGLE、輝瑞藥廠、美國銀行、洲際酒店集團(tuán)、殼牌石油皆等使用R。

2、4.ORACLE、MICROSOFT與IBM將R做為其產(chǎn)品中的主要資料分析工具。,R軟體的特色免費的自由軟體、開放源碼且應(yīng)用廣泛有效的資料處理及存取能力 (可與C, C++和Fortran等程式連結(jié))方便的矩陣操作與運算能力完整而連貫的資料分析能力(有大量套件程式可用)強(qiáng)大的視覺化工具(繪圖功能)跨平臺,可在Windows、UNIX和MacOS執(zhí)行,WHY R?,R 與 財務(wù)金融,完整的財金功能套件多樣方便的財務(wù)資料取

3、得方式容易上手的財務(wù)資料分析方式不斷推陳出新的財金與各式各樣套件R for trading strategy develop and testing algorithm trading https://www.slideshare.net/tw_dsconf/dsc-2016-rR for finance time series data analysis,R--財務(wù)金融相關(guān)套件,Quantmod 、 Quants

4、trat 、 PortfolioAnalytics 、 PerformanceAnalytics…..,https://cran.r-project.org/web/views/Finance.html,RStudio下載安裝: download R之後 執(zhí)行RStudio-XXX.exe,R下載安裝: download R之後 執(zhí)行R-XXX-win.exe,R?與 Rstudio 安裝及使用簡介,1. R 與 RSstud

5、io安裝完成後,可在應(yīng)用程式檔案系統(tǒng)Rstudio圖形點選 ,即可啟動RStudio,2.安裝與執(zhí)行套件範(fàn)例:若要安裝shiny套件Packages?Install ?shiny若要執(zhí)行shiny,在右邊shiny對應(yīng)的方框中直接打勾,,Rstudio是個好用的IDE革新套件讓R在三方面有開創(chuàng)性改變網(wǎng)頁伺服器RStudio server互動式網(wǎng)頁Shiny互動式文件Rmarkdown資料整理工具dplyr

6、 tidyr繪圖介面ggplot2 ggvis,整合式開發(fā)環(huán)境 RStudio,R與財務(wù)資料分析--教材範(fàn)例,範(fàn)例: 2016.07 夏日大學(xué)教材,主單元: R_fundamental I,> x a<-"male" # char字串,變數(shù)及資料型態(tài): 將資料儲存於變數(shù)物件內(nèi),方便重複使用及分析,1.資料常用型態(tài):numeric數(shù)值、integer整數(shù)、char字串、factor因數(shù)、B

7、oolean邏輯2.變數(shù)物件命名:變數(shù)名稱只能以字母或.開頭變數(shù)名稱大小寫是不同的 3.指派(儲存)資料給變數(shù):使用<-或=,> b=factor("male") # factor因子> a[1] "male"> b[1] male Levels: male # factor呈報資料時,無"",主單元: R_fundamen

8、tal I,常用運算: 算數(shù)操作、邏輯操作、if(條件式)、for迴圈,#算數(shù)操作> 10 + 20 #加法> 10 * a #乘法> x/20 #除法,邏輯操作 與 關(guān)係比較== Equal toGreater than&Logical AND|Logical OR!Logical NOT > 10>=9[1] TRUE,#i

9、f(條件式) {執(zhí)行程式指令…}#只有條件式為真(TRUE)才會執(zhí)行#例子:袋子裡原本有四元,如果不足十元# (小於十元)再加入五元,結(jié)果是9元x=4if(x < 10) { x = x + 5},#for迴圈x=0for( k in 1:3){ x=x+k }#重複規(guī)律由k決定,而k是{1,2,3}#得到 x=0 x=x+1 x=x+2 x=x+3,主單元:R_fundame

10、ntal II,內(nèi)容:1.儲存『複雜資料』常用結(jié)構(gòu)2.處理及初步觀察資料時常用指令3.資料缺失值檢查與處理4.處理資料後初步結(jié)果顯示,主單元: R_fundamental II,> x=c(-4,5,10,-1,6,2,33,44,55) #產(chǎn)生向量變數(shù),常用c()> z=c("mary","John","Ellen")> x[3] #使用

11、位置指標(biāo) 取得元素,利用[]指定元素位置> x[c(1,4,2)] #取得第1、4、2個元素[1] -4 -1 5,儲存『複雜資料』常用結(jié)構(gòu):vector: 同類型資料matrix:同類型資料,同長度data.frame:不同類型資料,同長度list : 不同類型資料,不同長度特殊結(jié)構(gòu):不同R套件,設(shè)計特定儲存資料結(jié)構(gòu)如:zoo、xts(常用於財務(wù)交易數(shù)據(jù)),vector向量:將多個存在

12、一維向量內(nèi),> a=matrix(x,nrow=3,ncol=3) #產(chǎn)生矩陣變數(shù) > a [,1] [,2] [,3] [1,] -4 -1 33 [2,] 5 6 44 [3,] 10 2 55,matrix矩陣:將多個同類型向量資料,存在矩陣內(nèi),以R提供的內(nèi)建資料集為範(fàn)例> data() #查看有那些

13、內(nèi)建資料集> data(esoph) #載入esoph資料集-- esophagealcancer(食道癌) #載入後,產(chǎn)生esoph的data.frame物件> str(esoph) #查看esoph資料集的結(jié)構(gòu)> View(esoph) # V大寫,將esoph資料集內(nèi)容顯示于編輯區(qū),data.frame資料框: 處理資料

14、最常用的結(jié)構(gòu),將多組長度一致的向量(欄) (不同向量內(nèi)的資料類型可不同)存在data.frame內(nèi) 與Matrix最大不同在於允許不同column有相異型別,,,主單元: R_fundamental II,#在help中,輸入esoph查看此資料集詳細(xì)說明# A data frame with records for 88 age/alcohol/tobacco combinations(法國)#共5個欄位,88筆資料age

15、gp年齡(Age group): factor 6個level : 25--34 35--44 45--54 55--64 65--74 75+ yearsalcgp 酒精(Alcohol consumption): factor 4個level: 0--39 40—79 80—119 120+ gm/dayTobgp抽煙(Tobacco consumption): factor 4個level: 0--9 1

16、0--19 20--29 30+ gm/dayNcases癌癥人數(shù)(Number of cases): numericncontrols未罹癌人數(shù)(Number of control):numeric#可發(fā)現(xiàn)此5個欄位中,有4種資料,前3個欄位雖然皆是factor,#但其level構(gòu)造不同,屬於不同資料。後2個欄位皆為numeric。,主單元: R_fundamental II,> x=c(-4,5,1

17、0,-1,6,2,33,44,55) #產(chǎn)生向量變數(shù)> x[x>3]# boolean取值,取得所有大於3的元素> max(x) #選取x中最大元素> min(x) #選取x中最小元素> sum(x) # x中所有元素作和> mean(x) # x中所有元素之平均值> sd(x) # x元素之標(biāo)準(zhǔn)差,處理及初步觀察資料時常用指令: bool

18、ean取值、max、sum、mean、sd,資料缺失值檢查與處理:缺失值NA:“Not Available”常出現(xiàn)在許多資料中:char、numeric、factor,> x=c(NA,1,2)> sum(x) #有NA,在套用函數(shù)時,可能導(dǎo)致結(jié)果為NA [1] NA> is.na(x) #檢驗變數(shù)是否有NA [1] TRUE FALSE FALSE,> y sum(y) #去

19、除NA後,再套用函數(shù) [1] 3> which(is.na(x)) #檢查NA在那裡 [1] 1,注意:1.雖然NA是空值,但也有其代表意義,例如:溫度記錄temp=c(36.5,36.2, 37, NA, 37)2.許多財務(wù)資料中都會有NA值,務(wù)必以is.na()、which(is.na())先檢查,並進(jìn)行適當(dāng)處理,如na.omit(),主單元: R_fundamental II,> x= x=c(-4

20、,5,10,-1,6,2,33,44,55) # 產(chǎn)生數(shù)值向量變數(shù)> summary(x) # 依資料型態(tài) 回傳x的大致資訊Min. 1st Qu. Median Mean 3rd Qu. Max. -4.00 2.00 6.00 16.67 33.00 55.00> fivenum(x)#用於數(shù)值資料 minimum,

21、lower-hinge, median, upper-hinge, maximum [1] -4 2 6 33 55,處理資料後初步結(jié)果顯示: summary、fivenum、table、hist、plot,hist():畫出數(shù)值分佈的長條圖,提供觀察依據(jù)plot():依資料型態(tài)畫圖提供觀察依據(jù),> hist(table(esoph$agegp)),data.frame數(shù)據(jù)框基本分析,$: 取欄位(colum

22、n)table():將factor數(shù)據(jù)依level進(jìn)行分群,然後對每一群資料資料筆數(shù)進(jìn)行統(tǒng)計, 結(jié)果組合成一個比較表格返回aggregate() :群集函數(shù),將按指定欄位的factor資料進(jìn)行分群, 然後對每一群資料的某特定欄位資料套用指定函數(shù), 最後把結(jié)果組合成一個比較表格返回,> data() #查看有那些內(nèi)建資料集> data(es

23、oph) #載入esoph資料集-- esophageal cancer(食道癌)載入後,產(chǎn)生data.frame物件> head(esoph) #查看esoph內(nèi)前6筆資料,對資料內(nèi)容有概念> which(is.na(esoph)) #查看esoph內(nèi)是否有NA值 integer(0) #查無NA值,以R提供的內(nèi)建資料集為分析範(fàn)例,它首先將資料依factor level進(jìn)行分組,然後對每一組資

24、料資料筆數(shù)進(jìn)行統(tǒng)計,最後把結(jié)果組合成一個比較表格返回,可瞭解資料資料筆數(shù)分佈,table()函數(shù),> table(esoph$agegp) # esoph$agegp取出欄位值,$是data.frame取欄位值符號 # table()可針對指定欄位,依factor level,彙整資料筆數(shù)>table(esoph$agegp,esoph$alcgp)# table(x,y)可彙集x,y two

25、-way table,結(jié)果分析1.數(shù)據(jù)資料筆數(shù)均勻分布在年齡的各level 2.數(shù)據(jù)資料筆數(shù)分佈在年齡及酒精組合的各level也頗均勻,data.frame數(shù)據(jù)框基本分析,data.frame數(shù)據(jù)框基本分析,> aggregate(cbind(ncases,ncontrols)~ alcgp,esoph,sum),cbind(ncases,ncontrols) ~ alcgp 表示使用 alcgp 的fac

26、tor,分成多個資料群,對ncases、 ncontrols 數(shù)據(jù)都各自進(jìn)行sum()操作,結(jié)果分析:1. 酒精消耗量,得到有/無食道癌人數(shù)2. 酒精消耗量愈大的群體, 得食道癌比例明顯愈高 ?可進(jìn)一步以統(tǒng)計檢定Note:由此看出 前一頁中僅以人數(shù)觀察容易誤導(dǎo), 應(yīng)該看比例較正確,,,人數(shù):75人 比例:75/355 (21%),人數(shù):45人 比例:45/67 (67%),quantmod是應(yīng)

27、用在財務(wù)方面的R語言套件。 quantmod套件提供許多功能:搜集金融資料、繪畫歷史股價、計算報酬率 資料分析:價格趨勢、風(fēng)險估測、投資組合及其他財務(wù)應(yīng)用,下載及安裝 quantmod套件,> install.packages("quantmod") # 下載quantmod套件> library("quantmod")# 安裝quantmod套件,透過網(wǎng)路,由yahoo

28、 finance 取得股票交易數(shù)據(jù),> tw2330 <- getSymbols("2330.TW",auto.assign=FALSE),# 若要將臺積電股票資料儲存在變數(shù)tw2330上,需要加auto.assign=FALSE#這段指令才能成功儲存在變數(shù)tw2330上。,主單元:quantmod套件與財務(wù)資料分析,靜宜大學(xué) 財務(wù)與計算數(shù)學(xué)系,1. getSymbols()下載金融數(shù)據(jù)後,儲存於xts

29、格式的物件,xts常用於時間序列資料2. xts格式的物件可轉(zhuǎn)為data.frame格式,> tw2330.DF<-as.data.frame(tw2330),檢視數(shù)據(jù),開高低收 (OHLC) Open(當(dāng)日開盤價)、High (當(dāng)日最高價)Low (當(dāng)日最低價)、Close (當(dāng)日收盤價)Volume (成交量) 、Adjust (調(diào)整後股價),> View(tw2330)#檢視資料,主單元:quantmo

30、d套件與財務(wù)資料分析,主單元:quantmod套件與財務(wù)資料分析,計算交易報酬率,,,相關(guān)指令如下:dailyReturn、weeklyReturn、monthlyReturn、quarterlyReturn、yearlyReturn,> re.2330=monthlyReturn(`2330.TW`) #計算2330.TW股票月報酬> head(re.2330) #顯示月報酬的前6筆資料> plot(r

31、e.2330)# plot()畫時間序列圖,觀察各時期的月報酬率變化> hist(re.2330)# hist()畫出報酬率分佈的長條圖,觀察報酬率分佈,結(jié)果分析:1.2008~2009年,金融海嘯期間,月報酬率波動幅度較大2.長條圖顯示,正報酬機(jī)率較高 ?需進(jìn)一步以統(tǒng)計檢定,主單元:quantmod套件與財務(wù)資料分析,技術(shù)分析圖型,財務(wù)常用圖形:candles、matches、bars和lines。技術(shù)分析

32、基本函數(shù): addMACD()、addRSI()、addSMA()、addTA(),> chartSeries(`2330.TW`,subset='2007::2008-01',theme="white",name="臺積電") # subset='2007::2008-01’股價走勢圖的時間起始點設(shè)定在2007年~2008-01年 # theme="

33、;white"股價走勢圖的背景設(shè)定為白色 # name="臺積電"股價走勢圖的標(biāo)頭名稱設(shè)定為臺積電,畫出股價走勢圖後,可以再加上技術(shù)指標(biāo),,> addMACD()> addRSI()> addSMA(n = 5, col = "red")> addSMA(n = 20, col = "blue"),1.5日均線向下穿越20日均線--&

34、gt;轉(zhuǎn)弱賣出訊號2.RSI 買進(jìn)訊號,主單元:quantmod套件與財務(wù)資料分析,自行操作及練習(xí),Exercise 3-1: 1.透過網(wǎng)路,由yahoo finance取得某上市公司股票交易資料 2.計算此上市公司股票投資月報酬率並以plot及hist畫圖Exercise 3-2: 畫出此上市公司股價走勢圖,的時間起始點設(shè)定在2008年~2015年,並加上20日均線與250日均線,主單元: shiny互動式網(wǎng)頁

35、,1.shiny是一個可製作互動式網(wǎng)頁的R套件,在Rstudio上執(zhí)行,由Rstudio擔(dān)任網(wǎng)頁伺服器2.製作互動式網(wǎng)頁程式由2個函數(shù)負(fù)責(zé):ui與server,library(shiny)library("quantmod"),ui<-fluidPage( titlePanel("stock input"), sidebarLayout( sidebarPanel(

36、 textInput("stock", label = h3("Stock Symbol"), value = "2330.TW"), dateRangeInput("time",start = "2008-01-01",end ="2012-06-01", label = h3("Ti

37、me")), fluidRow( column(4,checkboxInput("D5", label = "5D", value = TRUE)), column(4,checkboxInput("D20", label = "20D", value = TRUE)), column(4

38、,checkboxInput("D240", label = "240D", value = TRUE)) ) ), mainPanel( plotOutput("chart") ) ) ),,,,,,,,,,,輸入?yún)?shù)stocktimeD5D20D240,輸出

39、網(wǎng)頁畫面,,,,,,,送到server抓數(shù)據(jù)、畫圖,再將圖chart送回來由ui的plotOutput()呈現(xiàn)在網(wǎng)頁上,ui負(fù)責(zé)網(wǎng)頁畫面版面、輸入、輸出,,主單元: shiny互動式網(wǎng)頁,shiny製作互動式網(wǎng)頁由2個函數(shù)負(fù)責(zé):ui與server,ui輸入?yún)?shù)stock、timeD5、D20、D240由input物件攜帶至server函數(shù),送到server抓數(shù)據(jù)、畫圖,再將圖chart送回來由plotOutput()呈現(xiàn)在網(wǎng)頁上

40、,依input$time參數(shù)確定資料日期區(qū)間,用getSymbol() 依input$stock參數(shù)抓資料,畫chartSeries圖依參數(shù)input$D5 input$D20 input$D240決定是否加上移動平均線,server由output$chart將圖送回ui,server負(fù)責(zé)~~所有的運算、資料處理與畫圖~~(後臺)ui負(fù)責(zé)~~頁面呈現(xiàn)與參數(shù)接收~~ (前臺),學(xué)習(xí)R的障礙與重點,1.資料類型

41、與結(jié)構(gòu)很複雜 ?使用R提供的功能前, 一定要確認(rèn)此功能要求的是何種物件: factor 、char、…data.frame、xts…. R裡面為此需求,有很多as.XXX函數(shù)可呼叫 例: 檢查: is.factor()、is.character()、is.data.frame()、is.xts()… 轉(zhuǎn)換:as.factor()、as.character()、as.data.frame()、as.xts

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論