本文是作者在學(xué)習(xí)許啟發(fā)、蔣翠俠撰寫并由清華大學(xué)出版社出版的《R軟件及其在金融定量分析中的應(yīng)用》時寫下的review questions.內(nèi)容涵蓋書中第1、2、4、5、6章,分別為R軟件基礎(chǔ)、基于R軟件的傳統(tǒng)計算、金融數(shù)據(jù)整理與預(yù)處理、金融資產(chǎn)收益計算金融波動模型部分。可以作為R軟件初學(xué)者的Guide,檢驗學(xué)習(xí)成果。
數(shù)據(jù)操作
如何顯示工作空間中的所有對象,如何清除工作空間中的某個對象或全部對象? ls()/objects()輸出的類別是什么?
對象命名規(guī)則有哪三個要點?
對象創(chuàng)建四種方法,哪一種很少用,哪一種不推薦使用?
有哪四種基本數(shù)據(jù)類型?這些類型最基本的屬性是哪兩個,這兩個屬性如何獲得?
字符型定義時使用單引號和雙引號的區(qū)別在于?
在基本數(shù)據(jù)類型基礎(chǔ)上,R語言創(chuàng)造出了哪些對象?(7個)
什么是向量? 同一基本類型元素構(gòu)成的序列,相當(dāng)于一維數(shù)組
向量如何生成? c()、m:n、seq()、rep()
什么是數(shù)組? 帶有多個下標(biāo)同一類型的元素集合
數(shù)組最重要的屬性是什么?它代表什么含義? 維數(shù)向量dim,向量長度代表?
數(shù)組如何創(chuàng)建? array() data,dim,dimnames
數(shù)組內(nèi)的元素如何訪問? []
什么是矩陣? 二維數(shù)組
矩陣的創(chuàng)建: matrix() data,nrow,ncol,byrow,dimnames
矩陣的訪問,與數(shù)組相同; 如何將訪問結(jié)果保留矩陣類型而不是變成向量類型? drop
如何刪除矩陣中的某些行或列? 負值
diag()是泛型函數(shù),當(dāng)輸入是整數(shù)、向量、矩陣時,分別有什么作用?
如何將矩陣轉(zhuǎn)化為上三角或下三角矩陣? lower.tri/upper.tri
列表如何創(chuàng)建? list() name=object
列表的四種訪問方式? [[]] [] [''] $
上面四種訪問方式中,第一種的缺點是什么(每次只能訪問一個元素),第一種和第二種輸出結(jié)果的類型是否相同?第三種方法使用時要注意什么,相比于第四種?(帶引號)
如何獲取一個列表內(nèi)的元素名? names
如何增加列表元素?如何改變列表元素?如何刪除列表元素?
unlist()函數(shù)對列表的作用是什么?輸出的類型是什么? 帶有名字的字符串向量
數(shù)據(jù)框有哪些特點?四個 1.特殊的列表對象2.以矩陣形式存放數(shù)據(jù)3.變量必須有相同的長度/行數(shù)4.非數(shù)值型向量會被強制轉(zhuǎn)化成因子
數(shù)據(jù)框的創(chuàng)建: data.frame() name = data
數(shù)據(jù)框的引用: 矩陣引用方法,列表引用方法
因子是用來干什么的? 存儲分類/離散數(shù)據(jù),并存儲該數(shù)據(jù)的不同水平
因子如何創(chuàng)建? factor() levels,labels,exclude
如何統(tǒng)計各類水平的頻數(shù)? table()
如何創(chuàng)建表達式類型? expression()
如何對表達式求值? eval()
如何對表達式求偏導(dǎo)? D() 注: 結(jié)果是'call'類型
如何獲得對象的類型? 如何判斷對象的類型? 如何轉(zhuǎn)化對象的類型? is|as
獲得對象類型的三種函數(shù)的區(qū)別是什么? class(),mode(),typeof()
將數(shù)值型因子轉(zhuǎn)換為數(shù)值型向量時,要注意什么?
通過對字符型因子轉(zhuǎn)化為數(shù)值型向量,我們的發(fā)現(xiàn)是什么? 因子會將變量按照levels順序以數(shù)值編碼的方式存儲
如何獲知更多的類型判別函數(shù)和轉(zhuǎn)換函數(shù)? methods()
數(shù)學(xué)運算中, %% 和 %/% 的含義是?
數(shù)學(xué)運算中如果出現(xiàn)了邏輯型變量會如何參與運算?
矩陣的三種乘法?如何實現(xiàn)?運算要求?
如何比較兩個對象整體是否相等? identical(), all.equal()
這兩個函數(shù)的區(qū)別是什么? 返回結(jié)果的差異/是否判斷近似相等
異或用哪個函數(shù)實現(xiàn)?異或是什么意思?
&、|和 && || 的區(qū)別是 作用于第一個元素
向量運算中,當(dāng)兩個向量長度不同是會發(fā)生什么? 短的將被循環(huán)使用
如何對向量添加元素? append() after
對向量求和、求均值、中位數(shù)、標(biāo)準差、方差、最大最小值、極差、連乘積、判斷所有、判斷部分、升序排列、降序排列、升序排列原下標(biāo)、最大值最小值的下標(biāo) 注: sort(a) ≡ a[order(a)]
矩陣轉(zhuǎn)置的兩種方法?不同? t() aprem()
矩陣維數(shù)獲得三種函數(shù)? nrow()/ ncol()/ dim()
矩陣合并?按行合并,按列合并
矩陣求特征值和特征向量、求逆、奇異值分解、qr分解、行列式。哪些函數(shù)需要輸入的是方陣?
apply函數(shù)作用: 對矩陣或數(shù)組的某一維進行某種運算的實現(xiàn)
apply函數(shù)用法: apply() MARGIN,FUN
tapply函數(shù)的作用:進行分組統(tǒng)計,即用因子、向量和調(diào)用的函數(shù)來計算
tapply函數(shù)用法: tapply() X,INDEX,FUN simplify的作用是?默認為TRUE
常用命令
- 如何查看當(dāng)前工作目錄?如何設(shè)置工作目錄?
- 設(shè)置工作目錄時,要注意什么? 使用“/”或“\” 而電腦內(nèi)部使用的是“\”
- 如何查看內(nèi)存大???查看已使用內(nèi)存大小?已分配內(nèi)存大小? memory.size(NA) memory.size(FALSE) memory.size(TRUE)
- 如何查看內(nèi)存限制?如何增大內(nèi)存?如何清除內(nèi)存垃圾? memory.limit() memory.size(x) gc()
- 如何加載包?如何查看當(dāng)前已經(jīng)存在的包? library() search()
- 自己編寫的函數(shù)如何加載? source(file = '')
- 如何保存當(dāng)前工作空間的所有對象?下次啟動后如何加載? save(,file = ) load(file = )
- 查看數(shù)據(jù)的前幾行、后幾行、任意幾行? head\tail\some
- 顯示對象全部內(nèi)容的三種方式?
- 如何設(shè)置顯示位數(shù)?兩種方式的不同點在哪些方面? 是否改變數(shù)據(jù)/是否全局改變/digits表示的意義
- 顯示數(shù)據(jù)框和列表時,如何將變量名鏈接到內(nèi)存中,之后又如何取消這種掛接?如何取消加載包的掛接? attach() detach()
圖形制作
高級繪圖函數(shù)和低級繪圖函數(shù)的區(qū)別:高級繪圖函數(shù)能夠創(chuàng)建一個新的圖形,可以通過其參數(shù)選項來設(shè)置圖形的坐標(biāo)軸,標(biāo)題,標(biāo)簽,字體等,而低級繪圖函數(shù)自身無法生成圖形界面,只能在已有的圖形上增加新的圖形,如點、線、標(biāo)簽等
plot()函數(shù)是泛型函數(shù),當(dāng)輸入的分別為向量、時序、矩陣、兩個向量、因子、因子與它對應(yīng)的向量時,輸出分別是什么?
如何畫出因子的頻率圖?
如何從一個向量中無放回或有放回的抽取n個數(shù)組成新的向量? sample() replace = FALSE
pairs()和coplot()函數(shù)的主要區(qū)別? pairs函數(shù)只顯示雙向關(guān)系,coplot函數(shù)能夠說明多變量關(guān)系 coplot(y~x|z+t) z,t需要是因子或者向量來分類
如何畫直方圖? hist() freq = F, xaxt = 'n'表示x軸設(shè)置但不顯示
如何畫出概率密度圖? 對density()進行plot
如何畫樣本的QQ圖,并畫出相應(yīng)正態(tài)分布的QQ線? qqnorm()、qqline()
低級繪圖函數(shù):如何給圖上加點,如何在圖上加線,如何在圖上加標(biāo)題(主標(biāo)題副標(biāo)題),如何在圖上加文本,如何在圖外加文本,如何添加圖例? points() lines() abline() title() text() mtext() legend()
text(x,y,labels='') mtext('',side =)
legend() 參數(shù): 位置參數(shù)'' legend = c() 字符串向量 lty 線形向量 lwd 線寬度向量
如何添加多邊形?如何繪制矩形?如何設(shè)置坐標(biāo)軸? polygon() col,border 填充顏色與邊框顏色 rect() axis() side,at,label,las
繪圖參數(shù)的更改方式有哪兩種?兩者區(qū)別在于? 一種是直接在繪圖函數(shù)中設(shè)置參數(shù)選項,一種通過par()函數(shù)設(shè)置,前者影響當(dāng)前繪圖函數(shù),后者影響當(dāng)前所有繪圖函數(shù)的輸出
高級繪圖參數(shù)有哪些?各代表什么意思? add, axes, type, xlim,ylim, xlab, ylab, main, sub
type中的值 'p','l','b','o','h','s','n' (點圖,線,線不過點,線過點,垂直線,階梯形曲線,不畫內(nèi)容)
par繪圖參數(shù)有哪些? lty, mar, mfrow, mfcol, pch, las, cex 各代表什么含義,怎么用? linetype,margin,按行繪制,按列繪制,points character, labelspecification
線型 1實 2虛 3點
實例:
有一個包可以相較于傳統(tǒng)方法可以更快地讀取excel文件,是哪個包?怎么使用? 通過RODBC包,函數(shù):odbcConnectExcel2007(),sqlFetch() odbcConnectExcel是文件流,sqlFetch從文件流中讀取數(shù)據(jù),使用完文件流后用close()關(guān)閉
如何在得到某一個值對應(yīng)的下標(biāo)? which()
如何得到ts類型的數(shù)據(jù)? ts() data, start,end,frequency frequency=1,年度數(shù)據(jù);4,季度數(shù)據(jù);12,月度數(shù)據(jù);
如何畫自相關(guān)函數(shù)圖?偏自相關(guān)函數(shù)圖?如何改進使得圖的窄帶變寬? acf(),pacf(),改變ylim
累積分布函數(shù)是什么?怎么畫一個樣本的累計分布圖? ecdf(),plot(ecdf())
knots函數(shù)????
如何去掉向量中重復(fù)的元素? unique()函數(shù)
如何得到正態(tài)分布的累積概率? pnorm(x,mean,sd)
如何對函數(shù)進行繪圖? curve(function) from,to,lty,add
如何利用axis函數(shù)將坐標(biāo)軸刻度放縮? axis(side = 1, at = axTicks(1), labels = as.integer(axTicks(1)/100) axTicks(m) m為side,返回的是數(shù)值向量
編程計算
- 函數(shù)定義的兩種方式?
- 函數(shù)定義的一般格式 函數(shù)名 <- function(參數(shù)列表){表達式}
- 函數(shù)中,如何寫入判斷,并在判斷為FALSE的情況下停止運行 stop
- 函數(shù)通過哪三種方法向外界輸出運算結(jié)果? 打印輸出,圖形輸出,返回結(jié)果
實踐
1.
- 從某向量x中有放回取出num個數(shù) 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中,其他類型數(shù)據(jù)都在value中
- class\typeof\mode: mode模式是R存儲對象的模式;class類的概念是沿襲面向?qū)ο缶幊痰母拍疃鴣?,是一個抽象的概念;typeof和mode相似,但比mode分得更精細;常見的mode有“numeric”“character”“l(fā)ogical”“complex”“raw”“l(fā)ist”“expression”“name”“symbol”“function”
- 如何得到任意一個R對象的簡要結(jié)構(gòu)? str(x)
- 獲得一個R對象的一些屬性? attributes(x)
3.
- 連接函數(shù)c(),將數(shù)據(jù)包括向量組合成一個向量
- 如何粘接字符串? paste(x,y,z,...)
- NA表示缺失值
- 用邏輯向量作索引輸出特定位置的元素,注意:如果邏輯向量長度小于原向量,則將邏輯向量循環(huán)使用;若邏輯向量長度大于原向量,則超出部分輸出NA
- 如何對向量進行差分?如何多階差分? diff(x, lag = )
4.
- 如何求標(biāo)準差? sd()/ sqrt(var())
- 如何進行五數(shù)匯總?(基于中位數(shù)的五分位點) fivenum()
- 四分位數(shù)?指定分位百分點? quantile(x, c(0,0.33,0.66,1))
- 絕對中位差: median absolute deviation (數(shù)據(jù)點到中位數(shù)的絕對偏差的中位數(shù)) mad()
- 四舍五入: round()
- 向下取整: floor()
- 升序排列,降序排列 order()/order(,decreasing = TRUE)
- 如何求向量的累積和,累積最大值,累積最小值,累積積 cumsum(),cummax(),cummin(),cumprod()
- 如何求兩向量相關(guān)系數(shù)? cor(x,y)
5.
- letters, LETTERS分別是小大寫英文字母向量
- 注意: 無法給因子水平賦值,以為其僅為數(shù)值標(biāo)識,強行賦值后會得到警告,并且被賦值的地方變成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,"")
- 掃描文件數(shù)據(jù)到某變量y y <- scan("")???
11.
- 如何逐行判斷是否無NA值? complete.cases(),輸出邏輯向量,TRUE代表無NA值,F(xiàn)ALSE代表有NA值
- 向量也可以進行按行列合并 例子: rbind(1:5,rnorm(5)) cbind(1:5,rnorm(5))
- 如何對向量的元素和矩陣的行或數(shù)據(jù)框的行查重? duplicated() 返回是否重復(fù)過的邏輯向量
- 輸出矩陣不同行,組成新矩陣: unique()
12.
- 輸出數(shù)據(jù),保留有效數(shù)字n位 print(,digits = n)
- 向量與矩陣之間的運算 sweep(x,1,1:5,"*")
- 假設(shè) x = matrix(1:20, 5, 4) ;則x1:5;x1:4 的輸出結(jié)果是? x+1:5; x+1:4的輸出結(jié)果是?(加法會按照維度自動匹配,乘法只按照行來乘)
- 如何將矩陣標(biāo)準化? scale() center, scale 按列標(biāo)準化,是否減均值,是否除以標(biāo)準差?
- 獲得因子各水平值的頻數(shù)? table() 輸出的是table類型,用integer存
- 依據(jù)兩個因子分類,交叉制表? table(x,y)
- 公式法表達兩個因子分類,交叉制表? xtabs(~x+y,Data)
- 消除對象的類? unclass()
- 如何依據(jù)多個分類因子求均值? tapply(Data,list(factor1,factor2),mean)
13.
- 如何對向量存儲的分類變量畫條形圖?比例圖? barplot(table(x)) barplot(table(x)/length(x))
- 條形圖和直方圖的區(qū)別? 條形圖畫的是離散型數(shù)據(jù)的頻數(shù)分布,直方圖畫的是連續(xù)型數(shù)據(jù)的頻數(shù)分布
- 對直方圖坐標(biāo)軸下加上實際點的分布? rug(x)
- 如何畫莖葉圖? stem()
- 如何在回歸的散點圖中增加回歸線? abline(lm(y~x))
- 畫圖時,畫點、線結(jié)合但不通過的圖 和畫點、線結(jié)合且線通過點的圖分別怎么畫? type = 'b' /'o'
- 確定文本與符號縮放比例的參數(shù),默認為1 cex
- 如何在圖中添加文本,具體? text(x,y,labels = texts,...)
19.
- 如何計算執(zhí)行某一語句所用時間? system.time()
- 如何對一個函數(shù)進行修改? fix()
20.
- 如何創(chuàng)造一個復(fù)向量? complex(real =, imaginary =)
- 如何求一個復(fù)向量的實部虛部模和輻角? Re(),Im(),Mod(),Arg()
- 如何求組合數(shù)? choose(x,y) x個中任取y個的種類數(shù)
- 如何求階乘? factorial(n)
- 如何求函數(shù)的極值? optimize(function,c(min,max)) 輸出列表有 minimum和objective
- 如何求函數(shù)的零根? uniroot(function,c(min,max)) 輸出列表有root,f.root,iter等
21.
- 如何將連續(xù)變量切分成區(qū)間分類變量?切分點為四分位點? cut(x, breaks = quantile(x), include.lowest = TRUE) 輸出的是因子,表現(xiàn)為區(qū)間
- 如何獲得數(shù)據(jù)框的子框? cars[n] 與cars[,n]相似,不過cars[n]輸出的是子數(shù)據(jù)框,cars[,n]輸出的是原變量數(shù)據(jù)類型
傳統(tǒng)計算
多元回歸
- 多元線性回歸的步驟有哪些? 模型表示,參數(shù)估計,擬合優(yōu)度,顯著性檢驗,模型診斷,模型預(yù)測
- 模型診斷分為哪幾個過程,分別用到什么方法? 殘差分析,影響分析(Cook距離,DFFITS準則),多重共線性分析(方差膨脹因子,條件數(shù))
- 如何讀取xlsx文件?(不用RODBC包) ,需要哪些包? read.xlsx(file = , sheetIndex = / sheetName = ) rJava,xlsxjars,xlsx
- 如何建立線性回歸模型?參數(shù)設(shè)置?.和~表示的含義? 注意:lm()中data必須是數(shù)據(jù)框類型
- 建立模型后如何查看? print和summary各自輸出結(jié)果是什么? print輸出模型結(jié)構(gòu)和系數(shù);summary輸出模型結(jié)構(gòu),殘差概述,回歸系數(shù)及其檢驗,方程整體效果檢驗(RSE,擬合優(yōu)度,F檢驗)
- 如何檢驗多重共線性? kappa條件數(shù),利用kappa(data),輸出條件數(shù),判斷標(biāo)準是100,1000; 計算方差膨脹因子,DAAG:vif(lm),輸出帶變量名的向量,判斷標(biāo)準最好為1,不大于10
- 如何進行殘差分析?輸出的各圖分別代表什么含義? plot(lm) 第一張圖殘差與擬合值,第二張圖是殘差的QQ圖,第三張是標(biāo)準化殘差的平方根與擬合值,第四張圖是cook距離圖,給出幾個對模型影響較大的點
- 如何單獨獲得模型系數(shù)的向量,兩種方法? coef(lm)/ lm $ coefficients
- 如何獲得擬合值向量,兩種方法? predict(lm)/ lm $ fitted.values
- 如何獲得殘差,兩種方法? resid(lm)/ lm $ residuals
- 如何獲得擬合優(yōu)度和標(biāo)準差? summary(lm)
adj.r.squared/ summary(lm) $ sigma
- 如何進行預(yù)測? predict。lm(lm,newdata = ,interval = ) 注意:newdata需要是數(shù)據(jù)框,點預(yù)測的輸出是向量,區(qū)間預(yù)測的輸出是矩陣
- 如何對矩陣的列進行繪圖? matplot()
逐步回歸
- 逐步回歸有哪三種變量選擇準則? 選擇F檢驗,選擇調(diào)整后的擬合優(yōu)度,選擇AIC準則(望小準則)
- 如何改變數(shù)據(jù)框變量名稱? names() <-
- 如何輸出x1~x7這樣的字符串向量? paste(,,sep=) 向量,向量,sep是兩者間的間隔
- 如何進行逐步回歸?R語言逐步回歸的準則是什么? step(),AIC最小值準則
聚類分析
- 聚類大概分哪兩種?區(qū)別是什么? R型和Q型 (變量,樣本)
- Q型聚類的四種距離定義? 絕對值距離,歐幾里得距離,閔可夫斯基距離,切比雪夫距離
- R型聚類的兩種距離定義? 夾角余弦,相關(guān)系數(shù)
- 數(shù)據(jù)標(biāo)準化的目的是什么?數(shù)據(jù)標(biāo)準化的要求有哪三點? 消除量綱的影響;同一指標(biāo)內(nèi)部數(shù)據(jù)之間距離相對不變原則,不同指標(biāo)之間相對距離不變原則,極大值不變原則
- 常見的數(shù)據(jù)標(biāo)準化方式有哪三種? 中心化變換,標(biāo)準化變換,極差標(biāo)準化變換
- 三種典型的系統(tǒng)聚類法? 最短距離法,最長距離法,重心法
- 如何對類矩陣的數(shù)據(jù)進行標(biāo)準化處理(按列標(biāo)準化) scale() 輸出矩陣
- 對矩陣計算距離矩陣?(行之間的距離) dist() method =, 注意: 輸出的是下三角矩陣,dist類型
- 如何進行聚類? hclust(d,method = '') d必須是dist類型, 'complete'是完全距離法(最長距離法),'average'是類平均法(距離平方的平均),'ward'是離差平方和法(類內(nèi)距離總平方和增加最小),'centroid'是重心法,輸出是hclust類,以list方式存儲
- 如何畫圖展示結(jié)果? plot(hclust,hang = ) 如果想要底下標(biāo)簽對齊,hang的值需要為負數(shù)
- 如何在圖中加上結(jié)果的矩陣? rect.hclust(hclust, k = ,border = '') k表示需要的類數(shù),border指矩陣邊框顏色
因子分析
- 進行因子分析的步驟: 第一步,確定最優(yōu)因子數(shù)目 第二步,參數(shù)估計,獲得
- 如何得到矩陣的相關(guān)系數(shù)矩陣? cor()按列處理,輸出矩陣
- 如何得到特征值與特征向量? eigen(),輸出list, ev
vectors
- 如何進行平行分析? parallel(subject =, var = , rep =, cent =)
- 如何畫圖確定因子數(shù)量? 首先nSree(x = x
eigen $ qevpea),其次plotnSree()
- 如何進行因子分析/參數(shù)估計? factanal(x = ,factor = ,scores = "regression")
- 如何畫因子載荷圖? 先得到loadings矩陣,其次創(chuàng)建畫框不畫圖,將對應(yīng)變量文本添加到圖上
- 如何計算因子的權(quán)重? 得到原相關(guān)系數(shù)矩陣的特征值前幾個,然后標(biāo)準化得到權(quán)重
- 如何得到因子得分? 載荷矩陣與權(quán)重向量的矩陣乘法
- 如何得到總評價并且對原對象排序? 將原對象序號與總評價對應(yīng)然后排序
二元選擇模型
- 傳統(tǒng)的線性模型為何不能用于離散選擇? 一:難以保證p的預(yù)測值始終落在[0,1]之間 二:具有異方差現(xiàn)象
- 線性概率模型的問題是什么?改進的要求有哪些? 對響應(yīng)變量發(fā)生概率兩端約束過強; 變換方法要求:1.使得解釋變量的預(yù)測值都落在(0,1)之間2.對所有的X,隨X增加時,Y單調(diào)增加或單調(diào)減小
- 變換概率模型如何得到的?與LPM模型相比的區(qū)別是什么?
- 二元選擇模型的常用分布有哪幾種? Probit, Logit, Extreme模型各自的函數(shù)
- 如何獲得正態(tài)分布,logistic分布和極值分布的累積概率? pnorm(q=,mean=,sd=);
- plogis(q=,location=,scale=);pextreme <- function(x) 1-exp(exp(-x))
- 怎么找到極值分布概率為0.5時對應(yīng)的x的值? 首先創(chuàng)立新函數(shù) pextreme(x)-0.5,利用uniroot函數(shù)得到零點,然后畫點或畫線 注意:uniroot輸出的是list
廣義線性模型
- 廣義線性模型GLM的三個構(gòu)成要素: 隨機成分,用于描述響應(yīng)變量及其概率分布特征;系統(tǒng)成分,用于設(shè)定線性解釋函數(shù)中解釋變量;連接函數(shù),用于建立響應(yīng)變量均值函數(shù)與系統(tǒng)成分之間的關(guān)系
- 說明高斯多元線性回歸模型、二元選擇logit模型和計數(shù)數(shù)據(jù)的Possion模型都是GLM模型的特例。
分位數(shù)回歸
- d
金融數(shù)據(jù)整理與預(yù)處理
向量互動輸入方法: scan()
如何讀取excel/csv文件?四種方法? read.delim("clipboard")/ read.table(".txt")/ read.csv(".csv")/ read.xlsx(".xlsx",sheetIndex/sheetName)
如何在線讀取股票數(shù)據(jù)? 運用quantmod包,getSymbols函數(shù),getSymbols('',from,to,auto.assgin = TRUE) 注意: 輸出的是xts類型的數(shù)據(jù)
運用quantmod包讀取數(shù)據(jù)時,如果是深市數(shù)據(jù),滬市數(shù)據(jù),指數(shù)數(shù)據(jù),需要注意什么? .ss,.sz,^
導(dǎo)入quantmod包前需要的其他包? xts,zoo,TTR
如何查看股票數(shù)據(jù)的前幾行,后幾行,中間任意幾行,開始日期,結(jié)束日期,以及維數(shù)? head,tail,some,start,end,dim
如何進行對不同股票數(shù)據(jù)合并?也就是對兩個xts類型數(shù)據(jù)進行合并?NA值是否包括? merge.xts(,,all)
股票數(shù)據(jù)的子集如何選擇? 分為變量選取和樣本選?。鹤兞窟x取既可使用變量名,也可使用索引值;樣本選取可以使用時間和索引,也可以使用專門的subset函數(shù)。 subset(x,條件)
如何隨機抽樣?抽樣前需要做什么處理? 抽樣前要將xts類型的數(shù)據(jù)轉(zhuǎn)為ts類型(as.timeSeries/ as.timeSeries.xts),然后使用sample函數(shù)(需加載timeSeries包),最后用sort函數(shù)將時間從前到后排列
如何補齊時間序列對象的缺失日子? align() by = '1d', method = 'before', include.weekends 頻率,方法,是否包括周末
如何補齊時間序列對象的缺失值? na.approx()(插值取代NA值)
如何進行頻率轉(zhuǎn)換?將高頻轉(zhuǎn)換為低頻? to.monthly()/ to.weekly()/to.quarterly()/ to.yearly()/ to.daily() 必須針對單只股票的xts數(shù)據(jù)
如何將數(shù)據(jù)框數(shù)據(jù)轉(zhuǎn)換成時間序列格式? 需要設(shè)定時間索引,因此要將日期那列轉(zhuǎn)換為Date類型向量,然后將原數(shù)據(jù)框轉(zhuǎn)換為xts, as.Date() xts(data, order.by = Date)
如何將數(shù)據(jù)寫入excel文件? write.xlsx(data, file = ,sheetName =)
截面數(shù)據(jù)預(yù)處理
如何計算一個字符串或這字符串向量每個字符串的字符數(shù)? nchar() 輸出數(shù)值向量
如何從一個字符串中取出其中一段小字符串? substr(x, start = , stop = )
如何檢查NA值? 用is.na(),輸出每個元素是否為NA值的邏輯值向量
運算符的作用: x %in% y 檢查x的各元素是否是y中的元素,輸出邏輯向量
如何合并數(shù)據(jù)框? merge(x,y, by = c('變量名')) 通過變量名來進行合并,每次只能合并兩個
如何刪除對象中的NA值? na.omit()
金融資產(chǎn)收益計算
- 計算股票收盤價日收益率的三種方法: 1.使用公式直接計算 2.用log與diff函數(shù) 3.用returns函數(shù) 注:1.對兩個zoo對象處理,生成zoo對象;對向量處理生成向量 2.對zoo對象處理,生成zoo對象 3.用zoo對象處理,生成的是矩陣,但是保留了第一行NA
- 如何生成zoo類型的數(shù)據(jù)? zoo(x =, order.by =)
- 如何獲得滯后一期的數(shù)據(jù)? lag(x, k = ) 針對一般時間序列數(shù)據(jù),k=1代表滯后一期;對于zoo型時間序列,k=-1代表滯后一期
- 如何利用returns函數(shù)? returns(x, method = , percentage = )
- 如何對第三種方法求得的結(jié)果計算平均收益? mean(x,na.rm = TRUE)/ mean(na.omit(x))
- 如何計算幾何平均收益? (prod(re/100+1)^(1/length(re)) -1) * 100
- 讀取txt文件,如果希望數(shù)據(jù)類型都為字符型,如何寫? read.table(..., colClasses = 'character')
- 如何將年月數(shù)據(jù)轉(zhuǎn)化成相應(yīng)的類型? as.yearmon()
- 如何合并兩個zoo類型? merge(x,y)
- 如何巧妙計算出一個序列NA值的總數(shù)? sum(is.na(x))
- 如何獲得一個均勻分布的樣本? runif(length, from, to)
- 如何將一組非負數(shù)標(biāo)準化使它們和為1,便于作為權(quán)重? w/sum(w)
- 如何將個股收益率轉(zhuǎn)換成組合收益率? 矩陣乘法: %*%
- 如何計算債券類資產(chǎn)的內(nèi)部收益率,到期收益率? 首先設(shè)置損失函數(shù),輸入收益率,價格和現(xiàn)金流,輸出現(xiàn)值損失,其次運用uniroot函數(shù)得到的零根即是內(nèi)部收益率
- 損失函數(shù)如何設(shè)置?
- 如何求得零根? uniroot(f,c(min,max),...) ...需輸入其他參數(shù)的值如,p=p,Cs=Cs
GARCH模型族
ARCH模型
- 如何模擬生成ARCH(q)序列 使用fGarch包 garchSpec(model = list(omega =, alpha = , beta =)), garchSim(spec, n = , extended = )
- ARCH效應(yīng)檢驗使用的是拉格朗日乘數(shù)法,原假設(shè)是不存在ARCH效應(yīng),檢驗方法: library(FinTS) ArchTest(x =, lags = )
GARCH模型
- GARCH(p,q)的方程;GARCH的特點,不僅能夠表現(xiàn)出波動聚集性,還可以表現(xiàn)厚尾特征
- GARCH模型如何定階? 第一步根據(jù)eps平方的PACF確定q;第二步根據(jù)AIC/BIC準則確定p
- 如何將str中的一部分字符換成另一種字符? gsub('','',str)
- 如何做自相關(guān)圖,偏自相關(guān)圖? 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)
- 獲取標(biāo)準化殘差η residuals(model, standardize = TRUE)
- 模型預(yù)測 predict(model, n.ahead = ,trace = FALSE, mse = 'cond', plot = FALSE)
擴展的GARCH模型
- GARCH-M模型:考慮了收益與風(fēng)險的關(guān)系,風(fēng)險溢價參數(shù)γ
- IGARCH模型:單整GARCH模型,用于描述條件方差的持續(xù)性質(zhì)
- 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 = )
自我練習(xí)
- 如何得到某一個文件夾下的全部文件名稱? list.files()
- 如何創(chuàng)建一個某類型的空值向量? vector(mode="",length=0)
- 如何取得時間序列數(shù)據(jù)的時間? index()