R語言與金融定量分析

本文是作者在學習許啟發(fā)子房、蔣翠俠撰寫并由清華大學出版社出版的《R軟件及其在金融定量分析中的應用》時寫下的review questions.內容涵蓋書中第1形用、2、4证杭、5尾序、6章,分別為R軟件基礎躯砰、基于R軟件的傳統(tǒng)計算每币、金融數據整理與預處理、金融資產收益計算金融波動模型部分琢歇±嫉。可以作為R軟件初學者的Guide,檢驗學習成果李茫。

數據操作

  • 如何顯示工作空間中的所有對象揭保,如何清除工作空間中的某個對象或全部對象? ls()/objects()輸出的類別是什么魄宏?

  • 對象命名規(guī)則有哪三個要點秸侣?

  • 對象創(chuàng)建四種方法,哪一種很少用宠互,哪一種不推薦使用味榛?

  • 有哪四種基本數據類型?這些類型最基本的屬性是哪兩個予跌,這兩個屬性如何獲得搏色?

  • 字符型定義時使用單引號和雙引號的區(qū)別在于?

  • 在基本數據類型基礎上券册,R語言創(chuàng)造出了哪些對象频轿?(7個)

  • 什么是向量? 同一基本類型元素構成的序列烁焙,相當于一維數組

  • 向量如何生成摩窃? c()享郊、m:n节榜、seq()谷醉、rep()

  • 什么是數組? 帶有多個下標同一類型的元素集合

  • 數組最重要的屬性是什么?它代表什么含義乞榨? 維數向量dim,向量長度代表?

  • 數組如何創(chuàng)建? array() data,dim,dimnames

  • 數組內的元素如何訪問? []

  • 什么是矩陣? 二維數組

  • 矩陣的創(chuàng)建: matrix() data,nrow,ncol,byrow,dimnames

  • 矩陣的訪問秽之,與數組相同; 如何將訪問結果保留矩陣類型而不是變成向量類型吃既? drop

  • 如何刪除矩陣中的某些行或列? 負值

  • diag()是泛型函數考榨,當輸入是整數、向量鹦倚、矩陣時河质,分別有什么作用?

  • 如何將矩陣轉化為上三角或下三角矩陣? lower.tri/upper.tri

  • 列表如何創(chuàng)建? list() name=object

  • 列表的四種訪問方式? [[]] [] [''] $

  • 上面四種訪問方式中,第一種的缺點是什么(每次只能訪問一個元素)震叙,第一種和第二種輸出結果的類型是否相同?第三種方法使用時要注意什么掀鹅,相比于第四種?(帶引號)

  • 如何獲取一個列表內的元素名? names

  • 如何增加列表元素媒楼?如何改變列表元素乐尊?如何刪除列表元素?

  • unlist()函數對列表的作用是什么划址?輸出的類型是什么? 帶有名字的字符串向量

  • 數據框有哪些特點扔嵌?四個 1.特殊的列表對象2.以矩陣形式存放數據3.變量必須有相同的長度/行數4.非數值型向量會被強制轉化成因子

  • 數據框的創(chuàng)建: data.frame() name = data

  • 數據框的引用: 矩陣引用方法,列表引用方法

  • 因子是用來干什么的夺颤? 存儲分類/離散數據痢缎,并存儲該數據的不同水平

  • 因子如何創(chuàng)建? factor() levels,labels,exclude

  • 如何統(tǒng)計各類水平的頻數? table()

  • 如何創(chuàng)建表達式類型? expression()

  • 如何對表達式求值世澜? eval()

  • 如何對表達式求偏導? D() 注: 結果是'call'類型

  • 如何獲得對象的類型? 如何判斷對象的類型独旷? 如何轉化對象的類型? is|as

  • 獲得對象類型的三種函數的區(qū)別是什么? class(),mode(),typeof()

  • 將數值型因子轉換為數值型向量時,要注意什么寥裂?

  • 通過對字符型因子轉化為數值型向量嵌洼,我們的發(fā)現是什么? 因子會將變量按照levels順序以數值編碼的方式存儲

  • 如何獲知更多的類型判別函數和轉換函數? methods()

  • 數學運算中封恰, %% 和 %/% 的含義是咱台?

  • 數學運算中如果出現了邏輯型變量會如何參與運算?

  • 矩陣的三種乘法俭驮?如何實現回溺?運算要求?

  • 如何比較兩個對象整體是否相等? identical(), all.equal()

  • 這兩個函數的區(qū)別是什么混萝? 返回結果的差異/是否判斷近似相等

  • 異或用哪個函數實現遗遵?異或是什么意思?

  • &逸嘀、|和 && || 的區(qū)別是 作用于第一個元素

  • 向量運算中车要,當兩個向量長度不同是會發(fā)生什么? 短的將被循環(huán)使用

  • 如何對向量添加元素崭倘? append() after

  • 對向量求和翼岁、求均值类垫、中位數、標準差琅坡、方差悉患、最大最小值、極差榆俺、連乘積售躁、判斷所有、判斷部分茴晋、升序排列陪捷、降序排列、升序排列原下標诺擅、最大值最小值的下標 注: sort(a) ≡ a[order(a)]

  • 矩陣轉置的兩種方法市袖?不同? t() aprem()

  • 矩陣維數獲得三種函數? nrow()/ ncol()/ dim()

  • 矩陣合并烁涌?按行合并凌盯,按列合并

  • 矩陣求特征值和特征向量、求逆烹玉、奇異值分解驰怎、qr分解、行列式二打。哪些函數需要輸入的是方陣县忌?

  • apply函數作用: 對矩陣或數組的某一維進行某種運算的實現

  • apply函數用法: apply() MARGIN,FUN

  • tapply函數的作用:進行分組統(tǒng)計,即用因子继效、向量和調用的函數來計算

  • tapply函數用法: tapply() X,INDEX,FUN simplify的作用是症杏?默認為TRUE

常用命令

  • 如何查看當前工作目錄?如何設置工作目錄瑞信?
  • 設置工作目錄時厉颤,要注意什么? 使用“/”或“\” 而電腦內部使用的是“\”
  • 如何查看內存大蟹布颉逼友?查看已使用內存大小秤涩?已分配內存大兄钠颉? memory.size(NA) memory.size(FALSE) memory.size(TRUE)
  • 如何查看內存限制?如何增大內存筐眷?如何清除內存垃圾黎烈? memory.limit() memory.size(x) gc()
  • 如何加載包?如何查看當前已經存在的包? library() search()
  • 自己編寫的函數如何加載照棋? source(file = '')
  • 如何保存當前工作空間的所有對象资溃?下次啟動后如何加載? save(,file = ) load(file = )
  • 查看數據的前幾行烈炭、后幾行溶锭、任意幾行? head\tail\some
  • 顯示對象全部內容的三種方式梳庆?
  • 如何設置顯示位數?兩種方式的不同點在哪些方面卑惜? 是否改變數據/是否全局改變/digits表示的意義
  • 顯示數據框和列表時膏执,如何將變量名鏈接到內存中,之后又如何取消這種掛接露久?如何取消加載包的掛接更米? attach() detach()

圖形制作

  • 高級繪圖函數和低級繪圖函數的區(qū)別:高級繪圖函數能夠創(chuàng)建一個新的圖形,可以通過其參數選項來設置圖形的坐標軸毫痕,標題征峦,標簽,字體等消请,而低級繪圖函數自身無法生成圖形界面栏笆,只能在已有的圖形上增加新的圖形,如點臊泰、線蛉加、標簽等

  • plot()函數是泛型函數,當輸入的分別為向量缸逃、時序针饥、矩陣、兩個向量需频、因子丁眼、因子與它對應的向量時,輸出分別是什么昭殉?

  • 如何畫出因子的頻率圖苞七?

  • 如何從一個向量中無放回或有放回的抽取n個數組成新的向量? sample() replace = FALSE

  • pairs()和coplot()函數的主要區(qū)別挪丢? pairs函數只顯示雙向關系莽鸭,coplot函數能夠說明多變量關系 coplot(y~x|z+t) z,t需要是因子或者向量來分類

  • 如何畫直方圖? hist() freq = F, xaxt = 'n'表示x軸設置但不顯示

  • 如何畫出概率密度圖? 對density()進行plot

  • 如何畫樣本的QQ圖吃靠,并畫出相應正態(tài)分布的QQ線硫眨? qqnorm()、qqline()

  • 低級繪圖函數:如何給圖上加點,如何在圖上加線礁阁,如何在圖上加標題(主標題副標題),如何在圖上加文本巧号,如何在圖外加文本,如何添加圖例姥闭? points() lines() abline() title() text() mtext() legend()

  • text(x,y,labels='') mtext('',side =)

  • legend() 參數: 位置參數'' legend = c() 字符串向量 lty 線形向量 lwd 線寬度向量

  • 如何添加多邊形丹鸿?如何繪制矩形?如何設置坐標軸棚品? polygon() col,border 填充顏色與邊框顏色 rect() axis() side,at,label,las

  • 繪圖參數的更改方式有哪兩種靠欢?兩者區(qū)別在于? 一種是直接在繪圖函數中設置參數選項铜跑,一種通過par()函數設置门怪,前者影響當前繪圖函數,后者影響當前所有繪圖函數的輸出

  • 高級繪圖參數有哪些锅纺?各代表什么意思掷空? add, axes, type, xlim,ylim, xlab, ylab, main, sub

  • type中的值 'p','l','b','o','h','s','n' (點圖,線囤锉,線不過點坦弟,線過點,垂直線官地,階梯形曲線,不畫內容)

  • par繪圖參數有哪些酿傍? lty, mar, mfrow, mfcol, pch, las, cex 各代表什么含義,怎么用? linetype,margin,按行繪制驱入,按列繪制拧粪,points character, labelspecification

  • 線型 1實 2虛 3點

  • 實例:

  • 有一個包可以相較于傳統(tǒng)方法可以更快地讀取excel文件,是哪個包沧侥?怎么使用可霎? 通過RODBC包,函數:odbcConnectExcel2007(),sqlFetch() odbcConnectExcel是文件流宴杀,sqlFetch從文件流中讀取數據癣朗,使用完文件流后用close()關閉

  • 如何在得到某一個值對應的下標? which()

  • 如何得到ts類型的數據? ts() data, start,end,frequency frequency=1,年度數據旺罢;4,季度數據;12旷余,月度數據;

  • 如何畫自相關函數圖?偏自相關函數圖扁达?如何改進使得圖的窄帶變寬正卧? acf(),pacf(),改變ylim

  • 累積分布函數是什么?怎么畫一個樣本的累計分布圖跪解? ecdf(),plot(ecdf())

  • knots函數????

  • 如何去掉向量中重復的元素炉旷? unique()函數

  • 如何得到正態(tài)分布的累積概率? pnorm(x,mean,sd)

  • 如何對函數進行繪圖? curve(function) from,to,lty,add

  • 如何利用axis函數將坐標軸刻度放縮? axis(side = 1, at = axTicks(1), labels = as.integer(axTicks(1)/100) axTicks(m) m為side窘行,返回的是數值向量

編程計算

  • 函數定義的兩種方式?
  • 函數定義的一般格式 函數名 <- function(參數列表){表達式}
  • 函數中饥追,如何寫入判斷,并在判斷為FALSE的情況下停止運行 stop
  • 函數通過哪三種方法向外界輸出運算結果罐盔? 打印輸出但绕,圖形輸出,返回結果

實踐

1.
  • 從某向量x中有放回取出num個數 sample(x,num,replace = TRUE) prob = 表示從向量中個元素被抽取到的概率向量
  • 篩選出某向量中的不同元素 unique(x)
  • 得到兩個集合不同的元素,x集合有而y集合沒有的元素 setdiff(x,y)
  • 兩集合取并集 union(x,y)
  • 兩集合取交集 intersect(x,y)
  • 檢查兩集合是否相同(只要元素相等即可惶看,順序不影響) setequal(x,y)
2.
  • 向量生成符:的運算優(yōu)先級低于冪運算^捏顺,但高于乘法運算
  • 只有“matrix與data.frame”在Rstudio的data中,其他類型數據都在value中
  • class\typeof\mode: mode模式是R存儲對象的模式纬黎;class類的概念是沿襲面向對象編程的概念而來幅骄,是一個抽象的概念;typeof和mode相似莹桅,但比mode分得更精細昌执;常見的mode有“numeric”“character”“l(fā)ogical”“complex”“raw”“l(fā)ist”“expression”“name”“symbol”“function”
  • 如何得到任意一個R對象的簡要結構? str(x)
  • 獲得一個R對象的一些屬性烛亦? attributes(x)
3.
  • 連接函數c()诈泼,將數據包括向量組合成一個向量
  • 如何粘接字符串? paste(x,y,z,...)
  • NA表示缺失值
  • 用邏輯向量作索引輸出特定位置的元素,注意:如果邏輯向量長度小于原向量煤禽,則將邏輯向量循環(huán)使用铐达;若邏輯向量長度大于原向量,則超出部分輸出NA
  • 如何對向量進行差分檬果?如何多階差分瓮孙? diff(x, lag = )
4.
  • 如何求標準差? sd()/ sqrt(var())
  • 如何進行五數匯總选脊?(基于中位數的五分位點) fivenum()
  • 四分位數杭抠?指定分位百分點? quantile(x, c(0,0.33,0.66,1))
  • 絕對中位差: median absolute deviation (數據點到中位數的絕對偏差的中位數) mad()
  • 四舍五入: round()
  • 向下取整: floor()
  • 升序排列恳啥,降序排列 order()/order(,decreasing = TRUE)
  • 如何求向量的累積和偏灿,累積最大值,累積最小值钝的,累積積 cumsum(),cummax(),cummin(),cumprod()
  • 如何求兩向量相關系數翁垂? cor(x,y)
5.
  • letters, LETTERS分別是小大寫英文字母向量
  • 注意: 無法給因子水平賦值,以為其僅為數值標識硝桩,強行賦值后會得到警告沿猜,并且被賦值的地方變成NA值
6.
  • solve(a,b) 可以解方程組ax=b,b默認為單位陣碗脊,因此solve(a)即是對a求逆
9.
  • z = list(1:3, Tom = c(1:2, a=list("R", letters[1:5]), w="hi!")) 問length(z$Tom) 5
10.
  • 讀取文件時不選定文件名啼肩,打開文件列表選擇 read.table(file.choose())
  • 把變量寫入文件 write(x,"")
  • 掃描文件數據到某變量y y <- scan("")???
11.
  • 如何逐行判斷是否無NA值? complete.cases(),輸出邏輯向量疟游,TRUE代表無NA值呼畸,FALSE代表有NA值
  • 向量也可以進行按行列合并 例子: rbind(1:5,rnorm(5)) cbind(1:5,rnorm(5))
  • 如何對向量的元素和矩陣的行或數據框的行查重? duplicated() 返回是否重復過的邏輯向量
  • 輸出矩陣不同行颁虐,組成新矩陣: unique()
12.
  • 輸出數據蛮原,保留有效數字n位 print(,digits = n)
  • 向量與矩陣之間的運算 sweep(x,1,1:5,"*")
  • 假設 x = matrix(1:20, 5, 4) ;則x1:5;x1:4 的輸出結果是另绩? x+1:5; x+1:4的輸出結果是儒陨?(加法會按照維度自動匹配,乘法只按照行來乘)
  • 如何將矩陣標準化笋籽? scale() center, scale 按列標準化,是否減均值蹦漠,是否除以標準差?
  • 獲得因子各水平值的頻數车海? table() 輸出的是table類型笛园,用integer存
  • 依據兩個因子分類,交叉制表侍芝? table(x,y)
  • 公式法表達兩個因子分類研铆,交叉制表? xtabs(~x+y,Data)
  • 消除對象的類州叠? unclass()
  • 如何依據多個分類因子求均值棵红? tapply(Data,list(factor1,factor2),mean)
13.
  • 如何對向量存儲的分類變量畫條形圖?比例圖咧栗? barplot(table(x)) barplot(table(x)/length(x))
  • 條形圖和直方圖的區(qū)別逆甜? 條形圖畫的是離散型數據的頻數分布,直方圖畫的是連續(xù)型數據的頻數分布
  • 對直方圖坐標軸下加上實際點的分布? rug(x)
  • 如何畫莖葉圖致板? stem()
  • 如何在回歸的散點圖中增加回歸線交煞? abline(lm(y~x))
  • 畫圖時,畫點斟或、線結合但不通過的圖 和畫點素征、線結合且線通過點的圖分別怎么畫? type = 'b' /'o'
  • 確定文本與符號縮放比例的參數缕粹,默認為1 cex
  • 如何在圖中添加文本稚茅,具體? text(x,y,labels = texts,...)
19.
  • 如何計算執(zhí)行某一語句所用時間平斩? system.time()
  • 如何對一個函數進行修改亚享? fix()
20.
  • 如何創(chuàng)造一個復向量? complex(real =, imaginary =)
  • 如何求一個復向量的實部虛部模和輻角绘面? Re(),Im(),Mod(),Arg()
  • 如何求組合數? choose(x,y) x個中任取y個的種類數
  • 如何求階乘欺税? factorial(n)
  • 如何求函數的極值侈沪? optimize(function,c(min,max)) 輸出列表有 minimum和objective
  • 如何求函數的零根? uniroot(function,c(min,max)) 輸出列表有root,f.root,iter等
21.
  • 如何將連續(xù)變量切分成區(qū)間分類變量晚凿?切分點為四分位點亭罪? cut(x, breaks = quantile(x), include.lowest = TRUE) 輸出的是因子,表現為區(qū)間
  • 如何獲得數據框的子框歼秽? cars[n] 與cars[,n]相似应役,不過cars[n]輸出的是子數據框,cars[,n]輸出的是原變量數據類型

傳統(tǒng)計算

多元回歸

  • 多元線性回歸的步驟有哪些燥筷? 模型表示箩祥,參數估計,擬合優(yōu)度肆氓,顯著性檢驗袍祖,模型診斷,模型預測
  • 模型診斷分為哪幾個過程谢揪,分別用到什么方法蕉陋? 殘差分析,影響分析(Cook距離拨扶,DFFITS準則)凳鬓,多重共線性分析(方差膨脹因子,條件數)
  • 如何讀取xlsx文件屈雄?(不用RODBC包) 村视,需要哪些包? read.xlsx(file = , sheetIndex = / sheetName = ) rJava,xlsxjars,xlsx
  • 如何建立線性回歸模型官套?參數設置酒奶?.和~表示的含義? 注意:lm()中data必須是數據框類型
  • 建立模型后如何查看奶赔? print和summary各自輸出結果是什么惋嚎? print輸出模型結構和系數;summary輸出模型結構站刑,殘差概述另伍,回歸系數及其檢驗,方程整體效果檢驗(RSE,擬合優(yōu)度,F檢驗)
  • 如何檢驗多重共線性绞旅? kappa條件數摆尝,利用kappa(data),輸出條件數因悲,判斷標準是100堕汞,1000; 計算方差膨脹因子晃琳,DAAG:vif(lm),輸出帶變量名的向量讯检,判斷標準最好為1琐鲁,不大于10
  • 如何進行殘差分析?輸出的各圖分別代表什么含義? plot(lm) 第一張圖殘差與擬合值人灼,第二張圖是殘差的QQ圖围段,第三張是標準化殘差的平方根與擬合值,第四張圖是cook距離圖投放,給出幾個對模型影響較大的點
  • 如何單獨獲得模型系數的向量奈泪,兩種方法? coef(lm)/ lm $ coefficients
  • 如何獲得擬合值向量,兩種方法? predict(lm)/ lm $ fitted.values
  • 如何獲得殘差灸芳,兩種方法? resid(lm)/ lm $ residuals
  • 如何獲得擬合優(yōu)度和標準差? summary(lm) r.squared/ summary(lm) adj.r.squared/ summary(lm) $ sigma
  • 如何進行預測段磨? predict。lm(lm,newdata = ,interval = ) 注意:newdata需要是數據框耗绿,點預測的輸出是向量苹支,區(qū)間預測的輸出是矩陣
  • 如何對矩陣的列進行繪圖? matplot()

逐步回歸

  • 逐步回歸有哪三種變量選擇準則? 選擇F檢驗,選擇調整后的擬合優(yōu)度误阻,選擇AIC準則(望小準則)
  • 如何改變數據框變量名稱? names() <-
  • 如何輸出x1~x7這樣的字符串向量债蜜? paste(,,sep=) 向量,向量,sep是兩者間的間隔
  • 如何進行逐步回歸?R語言逐步回歸的準則是什么? step(),AIC最小值準則

聚類分析

  • 聚類大概分哪兩種究反?區(qū)別是什么寻定? R型和Q型 (變量,樣本)
  • Q型聚類的四種距離定義? 絕對值距離精耐,歐幾里得距離狼速,閔可夫斯基距離,切比雪夫距離
  • R型聚類的兩種距離定義? 夾角余弦卦停,相關系數
  • 數據標準化的目的是什么向胡?數據標準化的要求有哪三點? 消除量綱的影響惊完;同一指標內部數據之間距離相對不變原則僵芹,不同指標之間相對距離不變原則,極大值不變原則
  • 常見的數據標準化方式有哪三種小槐? 中心化變換拇派,標準化變換,極差標準化變換
  • 三種典型的系統(tǒng)聚類法凿跳? 最短距離法件豌,最長距離法,重心法
  • 如何對類矩陣的數據進行標準化處理(按列標準化) scale() 輸出矩陣
  • 對矩陣計算距離矩陣控嗜?(行之間的距離) dist() method =, 注意: 輸出的是下三角矩陣,dist類型
  • 如何進行聚類? hclust(d,method = '') d必須是dist類型, 'complete'是完全距離法(最長距離法)茧彤,'average'是類平均法(距離平方的平均),'ward'是離差平方和法(類內距離總平方和增加最小),'centroid'是重心法躬审,輸出是hclust類棘街,以list方式存儲
  • 如何畫圖展示結果? plot(hclust,hang = ) 如果想要底下標簽對齊蟆盐,hang的值需要為負數
  • 如何在圖中加上結果的矩陣? rect.hclust(hclust, k = ,border = '') k表示需要的類數遭殉,border指矩陣邊框顏色

因子分析

  • 進行因子分析的步驟: 第一步石挂,確定最優(yōu)因子數目 第二步,參數估計险污,獲得
  • 如何得到矩陣的相關系數矩陣痹愚? cor()按列處理,輸出矩陣
  • 如何得到特征值與特征向量蛔糯? eigen(),輸出list拯腮, ev values, ev vectors
  • 如何進行平行分析? parallel(subject =, var = , rep =, cent =)
  • 如何畫圖確定因子數量? 首先nSree(x = x values, aparallel = y eigen $ qevpea),其次plotnSree()
  • 如何進行因子分析/參數估計蚁飒? factanal(x = ,factor = ,scores = "regression")
  • 如何畫因子載荷圖动壤? 先得到loadings矩陣,其次創(chuàng)建畫框不畫圖淮逻,將對應變量文本添加到圖上
  • 如何計算因子的權重琼懊? 得到原相關系數矩陣的特征值前幾個,然后標準化得到權重
  • 如何得到因子得分爬早? 載荷矩陣與權重向量的矩陣乘法
  • 如何得到總評價并且對原對象排序哼丈? 將原對象序號與總評價對應然后排序

二元選擇模型

  • 傳統(tǒng)的線性模型為何不能用于離散選擇? 一:難以保證p的預測值始終落在[0,1]之間 二:具有異方差現象
  • 線性概率模型的問題是什么筛严?改進的要求有哪些醉旦? 對響應變量發(fā)生概率兩端約束過強; 變換方法要求:1.使得解釋變量的預測值都落在(0,1)之間2.對所有的X桨啃,隨X增加時车胡,Y單調增加或單調減小
  • 變換概率模型如何得到的?與LPM模型相比的區(qū)別是什么优幸?
  • 二元選擇模型的常用分布有哪幾種吨拍? Probit, Logit, Extreme模型各自的函數
  • 如何獲得正態(tài)分布褪猛,logistic分布和極值分布的累積概率网杆? pnorm(q=,mean=,sd=);
  • plogis(q=,location=,scale=);pextreme <- function(x) 1-exp(exp(-x))
  • 怎么找到極值分布概率為0.5時對應的x的值? 首先創(chuàng)立新函數 pextreme(x)-0.5,利用uniroot函數得到零點伊滋,然后畫點或畫線 注意:uniroot輸出的是list

廣義線性模型

  • 廣義線性模型GLM的三個構成要素: 隨機成分碳却,用于描述響應變量及其概率分布特征;系統(tǒng)成分笑旺,用于設定線性解釋函數中解釋變量昼浦;連接函數,用于建立響應變量均值函數與系統(tǒng)成分之間的關系
  • 說明高斯多元線性回歸模型筒主、二元選擇logit模型和計數數據的Possion模型都是GLM模型的特例关噪。

分位數回歸

  • d

金融數據整理與預處理

  • 向量互動輸入方法: scan()

  • 如何讀取excel/csv文件鸟蟹?四種方法? read.delim("clipboard")/ read.table(".txt")/ read.csv(".csv")/ read.xlsx(".xlsx",sheetIndex/sheetName)

  • 如何在線讀取股票數據? 運用quantmod包使兔,getSymbols函數建钥,getSymbols('',from,to,auto.assgin = TRUE) 注意: 輸出的是xts類型的數據

  • 運用quantmod包讀取數據時,如果是深市數據虐沥,滬市數據熊经,指數數據,需要注意什么欲险? .ss,.sz,^

  • 導入quantmod包前需要的其他包? xts,zoo,TTR

  • 如何查看股票數據的前幾行镐依,后幾行,中間任意幾行天试,開始日期槐壳,結束日期,以及維數喜每? head,tail,some,start,end,dim

  • 如何進行對不同股票數據合并宏粤?也就是對兩個xts類型數據進行合并?NA值是否包括灼卢? merge.xts(,,all)

  • 股票數據的子集如何選擇绍哎? 分為變量選取和樣本選取:變量選取既可使用變量名鞋真,也可使用索引值崇堰;樣本選取可以使用時間和索引,也可以使用專門的subset函數涩咖。 subset(x,條件)

  • 如何隨機抽樣海诲?抽樣前需要做什么處理? 抽樣前要將xts類型的數據轉為ts類型(as.timeSeries/ as.timeSeries.xts)檩互,然后使用sample函數(需加載timeSeries包)特幔,最后用sort函數將時間從前到后排列

  • 如何補齊時間序列對象的缺失日子? align() by = '1d', method = 'before', include.weekends 頻率,方法闸昨,是否包括周末

  • 如何補齊時間序列對象的缺失值? na.approx()(插值取代NA值)

  • 如何進行頻率轉換蚯斯?將高頻轉換為低頻? to.monthly()/ to.weekly()/to.quarterly()/ to.yearly()/ to.daily() 必須針對單只股票的xts數據

  • 如何將數據框數據轉換成時間序列格式饵较? 需要設定時間索引拍嵌,因此要將日期那列轉換為Date類型向量,然后將原數據框轉換為xts循诉, as.Date() xts(data, order.by = Date)

  • 如何將數據寫入excel文件? write.xlsx(data, file = ,sheetName =)

  • 截面數據預處理

  • 如何計算一個字符串或這字符串向量每個字符串的字符數横辆? nchar() 輸出數值向量

  • 如何從一個字符串中取出其中一段小字符串? substr(x, start = , stop = )

  • 如何檢查NA值茄猫? 用is.na()狈蚤,輸出每個元素是否為NA值的邏輯值向量

  • 運算符的作用: x %in% y 檢查x的各元素是否是y中的元素困肩,輸出邏輯向量

  • 如何合并數據框? merge(x,y, by = c('變量名')) 通過變量名來進行合并脆侮,每次只能合并兩個

  • 如何刪除對象中的NA值? na.omit()

金融資產收益計算

  • 計算股票收盤價日收益率的三種方法: 1.使用公式直接計算 2.用log與diff函數 3.用returns函數 注:1.對兩個zoo對象處理僻弹,生成zoo對象;對向量處理生成向量 2.對zoo對象處理他嚷,生成zoo對象 3.用zoo對象處理蹋绽,生成的是矩陣,但是保留了第一行NA
  • 如何生成zoo類型的數據筋蓖? zoo(x =, order.by =)
  • 如何獲得滯后一期的數據卸耘? lag(x, k = ) 針對一般時間序列數據,k=1代表滯后一期粘咖;對于zoo型時間序列蚣抗,k=-1代表滯后一期
  • 如何利用returns函數? returns(x, method = , percentage = )
  • 如何對第三種方法求得的結果計算平均收益瓮下? mean(x,na.rm = TRUE)/ mean(na.omit(x))
  • 如何計算幾何平均收益翰铡? (prod(re/100+1)^(1/length(re)) -1) * 100
  • 讀取txt文件,如果希望數據類型都為字符型讽坏,如何寫锭魔? read.table(..., colClasses = 'character')
  • 如何將年月數據轉化成相應的類型? as.yearmon()
  • 如何合并兩個zoo類型? merge(x,y)
  • 如何巧妙計算出一個序列NA值的總數? sum(is.na(x))
  • 如何獲得一個均勻分布的樣本路呜? runif(length, from, to)
  • 如何將一組非負數標準化使它們和為1迷捧,便于作為權重? w/sum(w)
  • 如何將個股收益率轉換成組合收益率? 矩陣乘法: %*%
  • 如何計算債券類資產的內部收益率胀葱,到期收益率漠秋? 首先設置損失函數,輸入收益率抵屿,價格和現金流庆锦,輸出現值損失,其次運用uniroot函數得到的零根即是內部收益率
  • 損失函數如何設置轧葛?
  • 如何求得零根搂抒? uniroot(f,c(min,max),...) ...需輸入其他參數的值如,p=p,Cs=Cs

GARCH模型族

ARCH模型
  • 如何模擬生成ARCH(q)序列 使用fGarch包 garchSpec(model = list(omega =, alpha = , beta =)), garchSim(spec, n = , extended = )
  • ARCH效應檢驗使用的是拉格朗日乘數法朝群,原假設是不存在ARCH效應燕耿,檢驗方法: library(FinTS) ArchTest(x =, lags = )
GARCH模型
  • GARCH(p,q)的方程;GARCH的特點姜胖,不僅能夠表現出波動聚集性,還可以表現厚尾特征
  • GARCH模型如何定階淀散? 第一步根據eps平方的PACF確定q右莱;第二步根據AIC/BIC準則確定p
  • 如何將str中的一部分字符換成另一種字符蚜锨? gsub('','',str)
  • 如何做自相關圖,偏自相關圖慢蜓? acf(data,lag.max=) pacf(data,lag.max=)
  • GARCH建模 garchFit(~garch(p,q),data =,trace = FALSE, cond.dist ='std'/'sstd'/'ged'/'sged')
  • 獲取GARCH模型波動率信息 fBasics::volatility(model)
  • 獲取標準化殘差η residuals(model, standardize = TRUE)
  • 模型預測 predict(model, n.ahead = ,trace = FALSE, mse = 'cond', plot = FALSE)
擴展的GARCH模型
  • GARCH-M模型:考慮了收益與風險的關系亚再,風險溢價參數γ
  • IGARCH模型:單整GARCH模型,用于描述條件方差的持續(xù)性質
  • EGARCH模型:反映金融市場波動的非對稱性
  • TGARCH模型:反映金融市場波動的非對稱性
  • APARCH模型:更廣泛
  • 如何生成模型晨抡? library(rugarch) ugarchspec(variance.model = list(model = 'fGARCH', garchOrder = c(p,q),submodel='TGARCH'/'GARCH'),mean.model = list()) ugarchfit(model,data = )
  • 生成APGARCH模型 garchFit(~1+aparch(p,q),data = ,trace = FALSE, delta = )

自我練習

  • 如何得到某一個文件夾下的全部文件名稱氛悬? list.files()
  • 如何創(chuàng)建一個某類型的空值向量? vector(mode="",length=0)
  • 如何取得時間序列數據的時間耘柱? index()
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
  • 序言:七十年代末如捅,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子调煎,更是在濱河造成了極大的恐慌镜遣,老刑警劉巖,帶你破解...
    沈念sama閱讀 206,126評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件士袄,死亡現場離奇詭異悲关,居然都是意外死亡,警方通過查閱死者的電腦和手機娄柳,發(fā)現死者居然都...
    沈念sama閱讀 88,254評論 2 382
  • 文/潘曉璐 我一進店門寓辱,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人赤拒,你說我怎么就攤上這事讶舰。” “怎么了需了?”我有些...
    開封第一講書人閱讀 152,445評論 0 341
  • 文/不壞的土叔 我叫張陵跳昼,是天一觀的道長。 經常有香客問我肋乍,道長鹅颊,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 55,185評論 1 278
  • 正文 為了忘掉前任墓造,我火速辦了婚禮堪伍,結果婚禮上,老公的妹妹穿的比我還像新娘觅闽。我一直安慰自己帝雇,他們只是感情好,可當我...
    茶點故事閱讀 64,178評論 5 371
  • 文/花漫 我一把揭開白布蛉拙。 她就那樣靜靜地躺著尸闸,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上吮廉,一...
    開封第一講書人閱讀 48,970評論 1 284
  • 那天苞尝,我揣著相機與錄音,去河邊找鬼宦芦。 笑死宙址,一個胖子當著我的面吹牛,可吹牛的內容都是我干的调卑。 我是一名探鬼主播抡砂,決...
    沈念sama閱讀 38,276評論 3 399
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼恬涧!你這毒婦竟也來了注益?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 36,927評論 0 259
  • 序言:老撾萬榮一對情侶失蹤气破,失蹤者是張志新(化名)和其女友劉穎聊浅,沒想到半個月后,有當地人在樹林里發(fā)現了一具尸體现使,經...
    沈念sama閱讀 43,400評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡低匙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 35,883評論 2 323
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現自己被綠了碳锈。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片顽冶。...
    茶點故事閱讀 37,997評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖售碳,靈堂內的尸體忽然破棺而出强重,到底是詐尸還是另有隱情,我是刑警寧澤贸人,帶...
    沈念sama閱讀 33,646評論 4 322
  • 正文 年R本政府宣布间景,位于F島的核電站,受9級特大地震影響艺智,放射性物質發(fā)生泄漏倘要。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,213評論 3 307
  • 文/蒙蒙 一十拣、第九天 我趴在偏房一處隱蔽的房頂上張望宋梧。 院中可真熱鬧惫皱,春花似錦娄昆、人聲如沸晃痴。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,204評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽捧杉。三九已至陕见,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間糠溜,已是汗流浹背淳玩。 一陣腳步聲響...
    開封第一講書人閱讀 31,423評論 1 260
  • 我被黑心中介騙來泰國打工直撤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留非竿,地道東北人。 一個月前我還...
    沈念sama閱讀 45,423評論 2 352
  • 正文 我出身青樓谋竖,卻偏偏與公主長得像红柱,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蓖乘,可洞房花燭夜當晚...
    茶點故事閱讀 42,722評論 2 345