|このページについて|
''概要'':このページでは、統計言語Rを使う上で有益なプログラムを蓄積します。主に[[SUGIYAMA Shunsuke]]が作ったプログラムを公開します。ご使用は自己責任で。
''概要'':このページでは、統計言語Rを使う上で有益なプログラムを蓄積します。ご使用は自己責任で。

(今後、随時updateしていく予定)



''親ページ'':このページの親ページは[[R]]です。

//Topページのサイトマップの適切な位置に、このページへのリンクを貼ってください。

//出来れば、あなたの名前(ハンドルネーム歓迎)、ページをつくった日、更新履歴などをかいてください。

|目次|

#contents
----

*基本統計量 [#p459e2e2]


**収益率 [#y4f84dd8]

xに株価系列を入れると対数階差で近似した収益率を返してくれる。
 diff(log(x))

以下でも同じ結果を返す。

 #収益率
 #yの増加率diff(log(y))で近似可能。 
 profitrate <- function(x)
 {
 z <- log(x[-1])-log(x[-length(x)])
 z
 }


**歪度 [#g5de44c9]

 #歪度
 skew <- function(x){
 z1 <- mean(z(x)^3)
 z1
 }
 

**尖度 [#u022aea6]

 #尖度
 kurt <- function(x){
 z2 <- mean(z(x)^4)
 z2
 }
 

**異常値の数 [#rd2e9957]

 #異常値の数(標準偏差の±2 倍、± 3 倍、± 4 倍を超えた標本数))
 abnormal.number2 <- function(x){
 z <- length(x[x>2*sd(x) | x< -2*sd(x)])
 z
 }
 
 abnormal.number3 <- function(x){
 z <- length(x[x>3*sd(x) | x< -3*sd(x)])
 z
 }
 
 abnormal.number4 <- function(x){
 z <- length(x[x>4*sd(x) | x< -4*sd(x)])
 z
 }

上記を一般化すれば、以下となる。

 #異常値の数(標準偏差の±k 倍を超えた標本数)
 abnormal.number <- function(x,k){
 z <- length(x[x>k*sd(x) | x< -k*sd(x)])
 z
 }



**標本分散,標本共分散 [#w22b8751]


 #標本分散
 sample.variance<-function(a) var(a)*(length(a)-1)/length(a) 
   #以下でも同じ。 
   #sample2.variance<-function(x) mean(x^2)-(mean(x))^2 
 
 #標本共分散
 sample.covariance<-function(x,y) mean(x*y)-mean(x)*mean(y) 


**相関係数 [#lb51a792]
 
 #相関係数 cor(x,y)という組み込み関数があるが、一応練習も兼ねて作成。 
 sugi.soukan<-function(x,y){
 sample.covariance<-mean(x*y)-mean(x)*mean(y)          #標本共分散を定義
 variance1<-function(a) var(a)*(length(a)-1)/length(a) #標本分散を定義
 #xの標準偏差を求める
 x1<-variance1(x)
 sdx<-sqrt(x1)
 #yの標準偏差を求める
 y1<-variance1(y)
 sdy<-sqrt(y1)
 #最後の相関係数を計算
 soukan<-sample.covariance/(sdx*sdy)
 soukan
 }




**基本統計量を一式まとめて求める [#adb8d57f]


 ######################################################
 #               基本統計量 
 ######################################################
 
 #xに1変量株価データ(つまりベクトル)を入れると収益率の基本統計量を返してくれるプログラム。 
 sugi.basic<-function(x){
 x1<-diff(log(x))                                        #まずは対数階差をとって収益率データに変換
 variance1<-function(a) var(a)*(length(a)-1)/length(a)   #標本分散を定義
 sdx<-sqrt(variance1(x1))                                #標本標準偏差を定義
 #異常値の数を返すプログラムを定義
 abnormal.number <- function(p,k){
 z <- length(p[p>k*sd(p) | p< -k*sd(p)])
 z
 } 
 T<-length(x1)
 R<-mean(x1)
 x2<-(x1-R)/sdx        #x2を標準化
 s<-mean(x2^3)         #歪度 
 k<-mean(x2^4)         #尖度 
 max<-max(x1)
 min<-min(x1)
 a2<-abnormal.number(x1,2)
 a3<-abnormal.number(x1,3)
 a4<-abnormal.number(x1,4)
 
 #ここまで計算した基本統計量をまとめて返す。
 return(list  ("T"=T,"R"=R,"SD"=sdx,"skew"=s,"kurt"=k,"max"=max,"min"=min,"a2"=a2,"a3"=a3,"a4" =a4))
 }



*Reference [#a63b2258]


**書籍 [#h8a36313]
-[[The R Tips―データ解析環境Rの基本技・グラフィックス活用集:http://www.amazon.co.jp/gp/product/486167039X/ref=pd_bxgy_img_b/249-0823452-2558734?ie=UTF8]]


**リンク [#f4df0207]

-[[Econometrics in R:http://cran.r-project.org/doc/contrib/Farnsworth-EconometricsInR.pdf]]


-[[CRAN Task View: Computational Econometrics:http://cran.md.tsukuba.ac.jp/src/contrib/Views/Econometrics.html]]


-[[パッケージ一覧:http://cran.md.tsukuba.ac.jp/src/contrib/PACKAGES.html]]

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS