發表文章

單變量GARCH

圖片
再1 個月,我將在CRAN上更新R套件JFE 1.4,我這次將新增單變量 GARCH 的綜合處理。有興趣的公測的同好,可以這樣 1. 下載 JFE.zip: http://web.ntnu.edu.tw/~tsungwu/EconometricDataScience/JFE.zip 2. 解壓縮後,會有幾個檔案,除了資料檔,開啟關鍵 _main.R,設定工作目錄,再執行一行指令 source("JFE.src") 即可 3. 載入的 資料必須是 .RData,xts 時間序列格式,原始數據是DJ 30個股收盤價,我們從Transform Price Data選擇目錄和資料,可將之轉換成報酬率。 4. 點選最下方的GARCH,就會出現 如下 GARCH pane,上面應該包含所有rugarch套件內所有的選項。 5. 上方左框是mean Eq.的一筆資料,我們選DJ 指數,中間是mean Eq.的其他變數,最右邊是variance Eq.的其他變數。 圖1. GARCH pane 資料選完後,點選您需要執行的模式,如model, distribution 和 garch order。按OK估計完後,會自動產生兩個物件: 1. 12張圖,如下 圖2. 12 張圖 2. 估計結果將自動儲存在工作目錄內,如 圖1.   主控台的小框框。用 load("apARCH_ged_21.RData") 重新載入後,內存物件名稱都是myFit, 可以重複取出所有需要的資訊。 JFE 1.4 即將納入這項功能,JFE 1.5 將再納入multivariate GARCH 的多項功能。歡迎指教

pdR 1.6

     pdR 1.6 is updated and is on CRAN now (install.packages("pdR") works).  In the previous version, pdR contains several econometric routines, for example, panel threshold model and panel unit root (seasonal). Version 1.6 includes the "Hansen B. E. (2000) Sample Splitting and Threshold Estimation. Econometrica, 68, 575-603."  Hansen (2000) is an econometric version of regression tree, but has solid econometric foundation.         This version has added three functions:           SMPLSplit_het() tests the statistical significance of thresholds(sample splitting) by LM statistic and bootstrap p-value and           SMPLSplit_est() estimates the model. Finally,           SMPLSplit_example() offers a learning example.      I modified Hansen's original code and gives a learning function to use Sample Splitting model. SMPLSplit_example() is a function containing learning codes, which executes Hansen's example of Durlauf-Johnson growth data, but has a det

如何將統計結果表(Output table)和數據圖合併?一個融資限制的R實做案例

圖片
在數據分析時,往往會遇到如何將「統計結果的表格」和「數據圖」合併的問題。例如,做完迴歸時的殘差診斷圖,能否把結果表和圖放在一起。有不少的統計分析圖會有一大塊空白,此時如果能把估計輸出表格嵌入就好了。這篇文的重心在如何將結果表視覺化,以及如何「圖&表」合併。 我們用一個財經融資限制問題 (Financing Constraint) 當範例,做一個含Tobin Q的迴歸分析。 步驟一:載入資料,我們載入套件pdR內建的panel data,再用time average轉成cross-section data。如下: library(pdR) data(invest)   # 讀入Tobin Q 數據,美國565家上市公司 15年數據 整理資料。Tobin Q除100是scaling      myData=data.frame(invest[,c(1,3,4)],Q=invest[,2]/100) 計算投資比率橫斷面平均      inv=apply(matrix(myData[,1], 565, , byrow=TRUE),1,mean)  計算現金流量比率橫斷面平均      cash=apply(matrix(myData[,2], 565, , byrow=TRUE),1,mean) 計算短期債務比率橫斷面平均      debt=apply(matrix(myData[,3], 565, , byrow=TRUE),1,mean) 計算Tobin Q橫斷面平均      Q=apply(matrix(myData[,4], 565, ,byrow = TRUE),1,mean)  產生新的資料集      myData=data.frame(inv,cash,debt,Q) 接下來執行線性迴歸      output1=lm(inv~cash+debt+Q,data=myData) 問題一。係數表 Output table 顯示的幾個方法 方法1:由 coef(summary(output1)) 呈現,如Figure 1最上方的顯示 Figure 1      由 Figure 1 可知Tobin Q對廠商投資率的平均影響,統計上不顯著。 方法2:利用套件papeR,如下     pape

R 的視覺化之二:3D入門

圖片
R的立體3D繪圖,可分為靜態,互動與動態三種。這篇文章介紹靜態的兩種型態,互動式和動態另文介紹。 3D繪圖在財經數據上相當重要,尤其是期間結構商品,如果在接上時間序列,就會更繁複。我們先從簡單的開始。主要用兩個套件:scatterplot3d和plot3D。plot3D有更多可以表現的風格。資料還是用 reshape 套件內建的 tips I. 使用 scatterplot3d library(scatterplot3d) tips=reshape::tips names(tips)                                      used=tips[,c("total_bill","size","tip")] Case 1. 基本3D繪圖 scatterplot3d(used,main="3D Scatter Plot", xlab="Total bill",ylab="table size",zlab="Tip",pch=16, color="steelblue") Case 2. 分組    我們依照小費高低,用cut函數分成三群:L=Low tip, M=Medium tip, H=High tip。如下 group=cut(tips$tip,3,labels =c("L","M","H"))    再給定形狀,就是pch使用的編號 myshapes=c(16,17,18)    再把編號對應到樣本 myshapes=myshapes[as.numeric(group)]     給定三群對應顏色 mycols=c("green","blue", "red")    再把三個色對應到樣本 mycols=mycols[as.numeric(group)] scatterplot3d(used,main="3D Scatter Plot", xlab=&qu

R 的視覺化之一:風格美學篇

圖片
ggplot2 應該是R社群內最受歡迎的繪圖套件之一。繪圖除了結構清楚, ggplot2 還有就是有很多的風格模版,例如,華爾街日報,經濟學人等等。本文介紹如何使用主題套件 ggthemes 和其他package 套入入風格,程式碼內風格指令 反藍 ,圖形的資料結構 反紅 ,其餘是內建的設定選項。 範例資料檔是 tips.csv ,這是 200 筆紀錄小費金額的數據,餐廳發現每張帳單的小費,差距頗大。因此想知道,有哪些因素影響了小費額度。資料如圖 tip = 小費金額,美金 total_bill = 帳單金額 , 美金 sex = 結帳者性別 smoker = 結帳者是否吸煙 day = 用餐日 time = 用餐時段                          size = 帳單顧客人頭數 (table size) require("ggplot2") tips<-read.csv("tips.csv") .df <- data.frame(y = tips$tip, x = tips$day, z = tips$sex) 第1個圖是ggplot2內建的盒鬚圖。 .plot <- ggplot(data = .df, aes(x = factor(x), y = y, fill = z)) +    stat_boxplot(geom = "errorbar", position = position_dodge(width = 0.9),    width = 0.5) +  geom_boxplot(position = position_dodge(width = 0.9)) +    xlab("day") + ylab("tip") +  labs(fill = "sex") +   theme_bw(base_size = 14, base_family = "sans") print(.plot) ggplot2 內建風格 第2個圖是經濟學人 .plot <- ggpl

mice::md.pattern() 缺值型態解讀

圖片
數據規模龐大時,對於缺值的認識就很重要。R有多個套件檢視缺值狀態,如VIM和mice。VIM將缺值型態視覺化,mice的函數 md.pattern() 可以呈現一個比較清楚的表, md.pattern() 也是GUI rattle 所採用,如下圖解釋如下: 1.       裡面的 0= 缺值, 1= 有值 2.       最右邊的直欄從 0-4 ,則是缺值個數。例如, 0 就是 8 個變數同時都無缺值的型態, 1 就是 8 個變數只缺 1 個的例子。但是,缺哪一個則不詳。 3.       最左邊的直欄,代表上述型態有多少列。例如, 1575 代表有 1575 列的資料是圓滿的, 88 代表雙缺 Occupation 和 Employment 這兩個,有 88 列 (Rows) 。詳細見下面第 4 點括弧。 4.       內列 (row) 的 {0,1} 代表了缺值出現在哪個:例如,第 1 列無缺,故 8 個變數都是 1 。第 2 列代表單缺 Age( 承上,有 39 列 ) ;第 3 列代表單缺 Employment( 承上,有 40 列 ) ;第 9 列代表單缺 Deduction( 承上,有 34 列 ) ;第 11 列代表雙缺 Occupation 和 Employment ( 承上,有 88 列 ) 5.       末列代表行 (Column) 變數總缺值。例如,圈圈 42=Age 這個變數的紀錄中,有 42 個缺值。 6.       右下角 560 代表整體資料的區缺值個數。 VIM的視覺化,則可以呈現對比的比較 更多:  http://rstudio-pubs-static.s3.amazonaws.com/4625_fa990d611f024ea69e7e2b10dd228fe7.html