• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      R軟件在馬科維茨資產(chǎn)組合投資理論中的教學(xué)應(yīng)用

      2018-01-31 17:53:39高蓉
      時(shí)代金融 2017年36期
      關(guān)鍵詞:R語言

      【摘要】隨著經(jīng)濟(jì)的發(fā)展和科技的突破,當(dāng)下已進(jìn)入大數(shù)據(jù)時(shí)代,數(shù)據(jù)科學(xué)對金融的影響越來越大。然而R軟件在金融學(xué)教學(xué)中發(fā)揮的作用還很有限,本文結(jié)合數(shù)據(jù)科學(xué)工具R軟件,探討如何在《投資學(xué)》課堂上引入軟件教學(xué),以此推廣R軟件在投資學(xué)課堂上的教學(xué)應(yīng)用,進(jìn)一步提高學(xué)生理論聯(lián)系實(shí)際的實(shí)踐能力。

      【關(guān)鍵詞】R語言 馬科維茨投資組合 最優(yōu)風(fēng)險(xiǎn)組合 資本市場線

      一、《投資學(xué)》課程

      《投資學(xué)》是金融學(xué)的專業(yè)基礎(chǔ)課,具有很強(qiáng)的專業(yè)性和實(shí)踐性。教學(xué)目標(biāo)是指導(dǎo)學(xué)生掌握基本的投資學(xué)原理和分析方法,并在實(shí)際問題中運(yùn)用這些知識。教學(xué)形式力求靈活多樣,充分利用統(tǒng)計(jì)分析軟件等多媒體工具來增強(qiáng)學(xué)生的興趣和積極性。教學(xué)要求有三方面:一是掌握投資學(xué)的基本概念和基本理論,理解相關(guān)的背景和適用的條件;二是掌握基本的計(jì)算方法和理論之間的推理;三是掌握投資學(xué)理論的運(yùn)用技能。投資學(xué)的教學(xué)既要重視基礎(chǔ)知識的教育,又要強(qiáng)調(diào)實(shí)際應(yīng)用能力的培養(yǎng)。

      近年來,隨著計(jì)算機(jī)的發(fā)展和大數(shù)據(jù)的發(fā)展,金融領(lǐng)域正在快步進(jìn)入高科技時(shí)代,對人才的動手實(shí)踐能力較以往有了更高的要求。僅僅掌握基本理論而不能解決實(shí)際問題,已經(jīng)不再符合社會對金融學(xué)類學(xué)生的要求。傳統(tǒng)的《投資學(xué)》本科課堂以基本理論為主要內(nèi)容,以單向的教師講解為主要模式,以黑板和PPT為主要方式,與學(xué)生繼續(xù)深造或從事實(shí)際工作所需要的能力有一定脫節(jié)。

      以《投資學(xué)》中的組合理論教學(xué)為例,傳統(tǒng)方式主要存在兩個(gè)缺點(diǎn)。第一,投資組合涉及到的數(shù)學(xué)知識較多較深,理論的推導(dǎo)和習(xí)題的計(jì)算難度都比較多,增加了教學(xué)難度,較多的學(xué)生反映課程太難太抽象,不易理解更不易應(yīng)用。第二,EXCEL軟件本身的計(jì)算能力也比較有限。EXCEL是一款功能強(qiáng)大的辦公軟件,但計(jì)算性能相對較差,進(jìn)行復(fù)雜計(jì)算時(shí)速度較慢甚至計(jì)算機(jī)容易陷入死機(jī),平臺之間的移植性也不好,不同版本的EXCEL文件之間功能偶爾不兼容,VBA計(jì)算程序在更換計(jì)算機(jī)后常常因?yàn)榧嫒莶缓枚鵁o法運(yùn)行。因此,課堂上和教材中往往都選擇高度理想化的例子輔助理論的闡述,增加了理論聯(lián)系實(shí)際的難度。此外,EXCEL畢竟不是數(shù)據(jù)科學(xué)工具,難以應(yīng)付當(dāng)下的大數(shù)據(jù)時(shí)代對培養(yǎng)學(xué)生數(shù)據(jù)處理能力的要求。

      二、數(shù)據(jù)科學(xué)工具R軟件

      R軟件是一款開源的統(tǒng)計(jì)計(jì)算軟件,是一套完整的數(shù)據(jù)處理、計(jì)算和制圖的軟件系統(tǒng),特點(diǎn)是統(tǒng)計(jì)分析功能和作圖功能都非常優(yōu)秀。1992年,新西蘭的奧克蘭大學(xué)統(tǒng)計(jì)系的Ross Ihaka和Robert Gentleman在AT&T貝爾實(shí)驗(yàn)室創(chuàng)立的S語言的基礎(chǔ)上開發(fā)了R系統(tǒng)。S語言主要在Insightful公司的S-Plus軟件中使用,R語言在免費(fèi)發(fā)行的R軟件中使用,R軟件與S-Plus軟件有很大的相似性和兼容性。R軟件和源代碼可以自由下載和使用,并由R開發(fā)核心志愿者小組負(fù)責(zé)開發(fā)和維護(hù)。經(jīng)過20多年的發(fā)展,R語言已經(jīng)成為世界上主流的數(shù)據(jù)分析語言,廣泛應(yīng)用于統(tǒng)計(jì)計(jì)算和數(shù)據(jù)分析的各個(gè)領(lǐng)域,包括金融計(jì)算和量化交易領(lǐng)域。作為一種數(shù)據(jù)分析語言,R語言具有如下的優(yōu)點(diǎn):

      第一,R系統(tǒng)是一個(gè)全面的統(tǒng)計(jì)計(jì)算平臺,提供了從傳統(tǒng)方法到學(xué)術(shù)前沿的各種數(shù)據(jù)分析方法。幾乎任何類型的數(shù)據(jù)分析工作都可以在R中完成,并且R提供了100多個(gè)與金融直接相關(guān)的包。

      第二,R語言可以進(jìn)行交互式的數(shù)據(jù)分析,同時(shí)具有強(qiáng)大圖形能力,便于進(jìn)行理論方法的細(xì)節(jié)研究、數(shù)據(jù)探索和展示。同時(shí),R語言作為一種編程語言,它的語法和數(shù)據(jù)結(jié)構(gòu)與主流的計(jì)算機(jī)編程語言相似,易學(xué)易用。

      第三,R軟件是開源軟件,可以免費(fèi)的下載和使用,無需考慮商業(yè)軟件的授權(quán)問題。同時(shí),開源軟件的用戶眾多,新的方法和新的研究成果會迅速以R包的形式上傳到R社區(qū)供大家下載和研究,這是其他商業(yè)軟件無法比擬的。

      總之,R軟件為金融計(jì)算提供了大量的函數(shù)、數(shù)據(jù)類型和包,可以勝任金融領(lǐng)域各種數(shù)據(jù)分析和模型計(jì)算的任務(wù),包括時(shí)間序列分析、衍生品定價(jià)以及量化交易系統(tǒng)的開發(fā)和評價(jià)。教師在教學(xué)過程中可以直接借鑒,使計(jì)算部分更加容易和直觀,提高學(xué)生的參與度和學(xué)習(xí)興趣。

      三、馬可維茨資產(chǎn)組合選擇的R應(yīng)用

      投資學(xué)的一個(gè)重要問題是如何在多種風(fēng)險(xiǎn)資產(chǎn)中選擇最好的風(fēng)險(xiǎn)資產(chǎn)組合,哈維.馬可維茨在論文《資產(chǎn)組合選擇》中首次提出了正式的科學(xué)理論回答這個(gè)問題,該理論也稱為馬可維茨投資組合理論。馬科維茨使用均值刻畫收益率,使用方差刻畫風(fēng)險(xiǎn),第一次將數(shù)理統(tǒng)計(jì)的方法引入投資組合的選擇,因此該理論也叫做均值-方差模型。同時(shí),它還標(biāo)志著現(xiàn)代金融學(xué)的建立,自此金融學(xué)理論進(jìn)入了模型化和數(shù)量化的時(shí)代。馬可維茨的學(xué)生威廉.夏普隨后在此基礎(chǔ)上發(fā)展出資本資產(chǎn)定價(jià)模型,奠定了完整的金融經(jīng)濟(jì)學(xué)基礎(chǔ)理論。馬科維茨和夏普這對師生因?yàn)樵诮鹑诮?jīng)濟(jì)學(xué)領(lǐng)域出色的開創(chuàng)性工作,與莫頓.米勒一起獲得了1990年的諾貝爾經(jīng)濟(jì)學(xué)獎(jiǎng)。

      如果可以在課堂上適當(dāng)結(jié)合R計(jì)算案例講解最優(yōu)風(fēng)險(xiǎn)資產(chǎn)組合模型的計(jì)算,向同學(xué)們清晰展示計(jì)算的步驟,會有利于學(xué)生對知識的理解和吸收,鍛煉學(xué)生的學(xué)習(xí)能力,培養(yǎng)學(xué)生的綜合能力,開拓學(xué)生的創(chuàng)新能力,提高課堂的綜合教學(xué)效果。本文以馬可維茨資產(chǎn)組合計(jì)算為例,展示R語言的計(jì)算。

      (一)從互聯(lián)網(wǎng)獲取實(shí)時(shí)金融數(shù)據(jù)

      R軟件可以直接通過互聯(lián)網(wǎng)下載實(shí)時(shí)的金融和經(jīng)濟(jì)數(shù)據(jù)。包quantmod可以下載國內(nèi)股票的數(shù)據(jù)。在此之前,我們先加載包fPortfolio和包lpSolve,前者可以進(jìn)行有效投資組合的計(jì)算,后者可以進(jìn)行函數(shù)優(yōu)化的計(jì)算。我們在上證A股中選擇四支股票,浦發(fā)銀行(600000),山東黃金(600547),伊利股份(600887)、康美藥業(yè)(600518),并使用包quantmod的getSymbols函數(shù),從雅虎金融下載這四只股票實(shí)時(shí)的價(jià)格時(shí)間序列,同時(shí)計(jì)算月收益率。注意,下載上交所的股票數(shù)據(jù)時(shí),股票代碼的后面需要加上ss后綴。實(shí)現(xiàn)的代碼如下。

      library(fPortfolio)endprint

      library(lpSolve)

      library(quantmod)

      stocksymbol<-c('600000','600547','600887','600518')

      stocksymbols<-paste(stocksymbol,'.ss',sep='')

      stock<-list()

      stock.n<-list()

      for(i in stocksymbols){

      stock[[i]]<-getSymbols(i,src="yahoo",from="2010-01-01", to=Sys.Date(),auto.assign=FALSE)

      stock.n[[i]]<-periodReturn(stock[[i]],period='monthly')

      }

      names(stock.n)<-stocksymbol

      得到收益率序列后,我們接著進(jìn)行初步的數(shù)據(jù)處理。為了便于隨后R的計(jì)算需要,我們把數(shù)據(jù)結(jié)果的形式轉(zhuǎn)化為數(shù)據(jù)框,并去掉其中可能的缺失值,代碼如下。

      n1<-length(stock.n)

      stock.d<-stock.n[[1]]

      for(i in 2:n1)

      {stock.d<-na.locf(merge(stock.d,stock.n[[i]],all=F))}

      colnames(stock.d)<-names(stock.n)

      (二)資產(chǎn)組合有效前沿的計(jì)算

      數(shù)據(jù)處理完畢之后,接下來我們使用fPortfolio包來進(jìn)行最優(yōu)組合的計(jì)算。根據(jù)馬爾維茨投資組合理論,優(yōu)化組合的計(jì)算需要使用風(fēng)險(xiǎn)資產(chǎn)的均值和協(xié)方差。我們先使用fPortfolio包將數(shù)據(jù)形式轉(zhuǎn)化為timeSeries對象,再使用內(nèi)置函數(shù)covEstimator計(jì)算月收益率數(shù)據(jù)的均值和協(xié)方差矩陣。R語言通過程序控制數(shù)據(jù)對象,避免了直接控制數(shù)據(jù)出錯(cuò)的可能,而相同的計(jì)算在EXCEL中需要用單元格計(jì)算來進(jìn)行,鼠標(biāo)操作容易出錯(cuò),股票數(shù)量越大,出錯(cuò)的可能性也越大。

      stock.s<-as.timeSeries(stock.d)

      covEstimator(stock.s)

      得到的結(jié)果簡化如下表1、表2所示:

      接下來,我們計(jì)算均值-方差組合的有效前沿。有效前沿是風(fēng)險(xiǎn)資產(chǎn)的組合中風(fēng)險(xiǎn)最小的組合連成的線。包fPortfolio對上面得到的stock.s對象進(jìn)行計(jì)算,以離散方式(計(jì)算前沿上的50個(gè)組合)。使用包fPortfolio需要指定以下幾個(gè)參數(shù),組合的類型(portfolioSpec)、求解方法的類型(setSolver)以及組合投資的約束(constraints="LongOnly")。通過summary函數(shù)可以看到概況和相關(guān)圖示。

      shortSpec<-portfolioSpec()

      setSolver(shortSpec)<-"solveRshortExact"

      shortFrontier<-portfolioFrontier(stock.s,spec=shortSpec,constraints="LongOnly")

      summary(shortFrontier)

      使用frontierPlot函數(shù)可以畫出有效邊界,邊界上最左端的點(diǎn)表示方差最小的組合,也是所有風(fēng)險(xiǎn)資產(chǎn)的組合中方差最小的組合,使用minvariancePoints函數(shù)可以在有效邊界上標(biāo)示出方差最小的組合點(diǎn)。程序如下。

      Frontier<-shortFrontier

      frontierPlot(Frontier,frontier="both",risk="Sigma",type="l",

      title=F,labels=F)

      title('有效邊界',xlab='標(biāo)準(zhǔn)差',ylab='預(yù)期收益率')

      minvariancePoints(Frontier,pch=19,col="red")

      找到了方差最小的投資組合,我們可以看一看其中各個(gè)證券的權(quán)重,并將權(quán)重用條形圖繪出。

      MVP<-minvariancePortfolio(stock.s)

      MVP.portfolio<-slot(slot(MVP,'portfolio'),'portfolio')

      MVP.weights<-MVP.portfolio$weights

      MVP.weights

      barplot(MVP.weights[which(MVP.weights!=0)],main="最小方差投資組合",

      xlab="資產(chǎn)",ylab="權(quán)重",

      col=topo.colors(4),beside=TRUE)

      legend("topright",names(MVP.weights[which(MVP.weights!=0)]),

      cex=1,col=topo.colors(4),pch=19)

      其中,各個(gè)證券的權(quán)重如下表3所示:

      在有效邊界上,我們也可以計(jì)算任意投資組合的組成權(quán)重。比如,設(shè)定預(yù)期收益為0.001,我們來計(jì)算相應(yīng)的組合。

      mu<-0.001

      Spec<-portfolioSpec()

      setSolver(Spec)<-"solveRshortExact"

      setTargetReturn(Spec)<-muendprint

      efficientPortfolio(stock.s,Spec)

      得到該組合的情況,簡化如下表4、表5:

      (三)最優(yōu)風(fēng)險(xiǎn)組合的計(jì)算

      找出了有效邊界,再考慮無風(fēng)險(xiǎn)資產(chǎn),找出從無風(fēng)險(xiǎn)資產(chǎn)出發(fā),與風(fēng)險(xiǎn)資產(chǎn)的有效邊界相切的切線,就是資本市場線,相應(yīng)的切點(diǎn)表示最優(yōu)的風(fēng)險(xiǎn)組合。根據(jù)基金分離定理,每個(gè)投資者都會選擇這種最優(yōu)的風(fēng)險(xiǎn)組合與無風(fēng)險(xiǎn)資產(chǎn)的組合,只是根據(jù)每個(gè)人自身的風(fēng)險(xiǎn)厭惡程度的不同,在最優(yōu)風(fēng)險(xiǎn)組合和無風(fēng)險(xiǎn)資產(chǎn)之間的配置比例不同。

      假設(shè)無風(fēng)險(xiǎn)資產(chǎn)的收益率為0.002,利用tangencyPortfolio函數(shù),我們能得到切點(diǎn)組合,記為M,代碼如下。

      RiskF=portfolioSpec()

      setRiskFreeRate(RiskF)=0.002

      setSolver(RiskF)<-"solveRshortExact"

      M=tangencyPortfolio(stock.s,spec=RiskF,constraints="Short")

      summary(M)

      M.portfolio<-slot(slot(M,'portfolio'),'portfolio')

      M.return<-M.portfolio$targetReturn[2]

      M.sigma<-M.portfolio$targetRisk[2]

      切點(diǎn)組合M的權(quán)重情況可以通過餅圖展示,如圖所示。

      畫出資本市場線的圖形,如圖所示。

      Frontier=portfolioFrontier(stock.s,spec=RiskF,constraints= "Short")

      frontierPlot(Frontier,risk="Sigma",lwd=2,type='l',xlim= c(0.05,0.12),

      title=F,labels=F)

      tangencyLines(Frontier,risk="Sigma",col="blue",lwd=1)

      ##plot Market Portfolio

      cmlPoints(Frontier,pch=19,col="purple")

      text(x=M.sigma+0.001,y=M.return+0.001,'M',cex=1)

      title('投資組合和資本市場線',xlab='標(biāo)準(zhǔn)差',ylab='預(yù)期收益率')

      minvariancePoints(Frontier,pch=19,col="red")

      四、結(jié)論

      確定有效的投資組合是一個(gè)復(fù)雜的決策過程,數(shù)學(xué)推導(dǎo)過程比較抽象和枯燥。在投資學(xué)教學(xué)過程中應(yīng)用R語言進(jìn)行投資組合的計(jì)算,既能使學(xué)生感受投資學(xué)的基本原理,又能讓學(xué)生從直觀上感受到投資學(xué)的意義,發(fā)揮出計(jì)算機(jī)輔助的高效作用。這樣的課堂教學(xué)設(shè)計(jì),不僅符合學(xué)生的認(rèn)知規(guī)律,而且學(xué)生的接受速度快,對理論的理解也更加深刻,學(xué)生在學(xué)習(xí)過程中既得到了知識,又培養(yǎng)了創(chuàng)新能力。在實(shí)際的教學(xué)中,可以進(jìn)一步結(jié)合知識點(diǎn)設(shè)計(jì)新的計(jì)算實(shí)驗(yàn),有效結(jié)合理論教學(xué)與實(shí)驗(yàn)教學(xué),達(dá)到不斷提高學(xué)生實(shí)踐能力的目的。

      參考文獻(xiàn)

      [1]蓋爾蓋伊.量化金融R語言初級教程[M].人民郵電出版社,2016.

      [2]蓋爾蓋伊.量化金融R語言高級教程[M].人民郵電出版社,2016.

      [3]D Würtz.Portfolio Optimization with R/Rmetrics, Rmetrics eBook[M]. Rmetrics Association and Finance Online,Zurich.2009.

      作者簡介:高蓉(1982-),陜西安康人,博士,任職于杭州電子科技大學(xué)經(jīng)濟(jì)學(xué)院金融系講師,畢業(yè)于南開大學(xué)經(jīng)濟(jì)學(xué)院金融系,研究方向:資產(chǎn)定價(jià)、金融工程、數(shù)據(jù)科學(xué)應(yīng)用。endprint

      猜你喜歡
      R語言
      基于Holt—Winters時(shí)間序列的圖書選題預(yù)測模型
      基于R語言的轎車銷量分析基于R語言的轎車銷量分析
      基于R語言時(shí)間序列的轎車銷量分析及預(yù)測
      R語言在統(tǒng)計(jì)分析中的使用技巧
      基于R語言的學(xué)生成績分析
      基于GPS軌跡數(shù)據(jù)進(jìn)行分析改善城市交通擁擠
      基于R語言的Moodle平臺數(shù)據(jù)挖掘技術(shù)的研究
      基于R語言的湖南產(chǎn)業(yè)結(jié)構(gòu)對其經(jīng)濟(jì)增長貢獻(xiàn)分析
      商(2016年24期)2016-07-20 08:03:39
      注重統(tǒng)計(jì)思維培養(yǎng)與應(yīng)用為主導(dǎo)的生物統(tǒng)計(jì)學(xué)課程建設(shè)
      考試周刊(2016年15期)2016-03-25 04:09:43
      人民幣匯率的均值回復(fù)檢驗(yàn)及Hurst指數(shù)計(jì)算
      措美县| 建平县| 雅江县| 万载县| 大冶市| 枣庄市| 隆德县| 梁河县| 大庆市| 南华县| 鄂尔多斯市| 大英县| 崇文区| 清流县| 资兴市| 门头沟区| 嘉荫县| 白城市| 青浦区| 双桥区| 梁河县| 理塘县| 华蓥市| 八宿县| 陇西县| 榆中县| 裕民县| 项城市| 凤冈县| 西畴县| 宣汉县| 开平市| 台安县| 基隆市| 中卫市| 衡东县| 洪泽县| 博客| 灵山县| 公安县| 闻喜县|