Rでダミー変数を作る(fastDummies)

そもそもlm()(とglm())には「data.frameの列がfactorである場合、自動的にダミー変数を作って、回帰してくれる」という機能がある(manにきちんと書かれてないので知らない人が多いかも)。

stats.idre.ucla.edu

が、lmやglmの「自動でダミー変数を作る機能」だと思うようなダミー変数にならない場合もあるので、パッケージでダミー変数を作ることを考える。

 

いくつかパッケージがあるが、それなりに使いやすいパッケージとしてfastDummiesがあるため、その中のdummy_cols()を使ってダミー変数を作る方法を以下に記す。

  


require(fastDummies)
require(tidyverse)
when <- data.frame(time = c("afternoon", "night", "afternoon", "morning", "morning", "morning", "morning", "afternoon", "afternoon"), day = c("Mon", "Mon", "Mon", "Wed", "Wed", "Fri", "Sat", "Sat", "Fri"))
when[3, "day"] <- NA
when %>% head()
dummy_cols(when)
    

# 自分用のメモ:現時のバージョンのfastDummiesではNAはNAのままで各列に入力される(以前は違ったようだが)。

 

参考(4つのパッケージの比較)

fuminorikawami.hatenablog.com

 

openxlsxの使い方(自分が使うところだけ)

require(openxlsx)

 

tmpdat<- read.xlsx("./data.xlsx", sheet = 2, startRow = 9, detectDates=TRUE)
head(tmpdat)

 

wb <- createWorkbook()
addWorksheet(wb, 'Sheet1')
addWorksheet(wb, 'Sheet2')
writeData(wb, sheet = 'Sheet1', x = lm.res1, withFilter=F)
writeData(wb, sheet = 'Sheet2', x = lm.res2, withFilter=F)
saveWorkbook(wb, "lm.res.xlsx", overwrite = T)

 

CRAN - Package openxlsx

成長率の計算

以下に改訂版の既述あり。

成長率の計算(改訂版) - ハリ・セルダンになりたくて(はてダから移行中)

 

Rを使って成長率(%表示)を計算する方法についての備忘録。

前提:tsDataをベクトルもしくはtsオブジェクトとする。 

その1:対数差分

    diff(log(tsData))*100

メリット:成長率の近似であるが、プログラムが簡単

デメリット:tsDataの要素が正である必要がある(たとえばGDPならOK、在庫変動は[負になることがあるため]ダメ)

 

その2:定義通りに成長率を計算する

一行で書くと:

numSize <- length(tsData); tsGrowth <- (diff(tsData)/tsData[-numSize]) * 100

関数にするなら以下:

growthRate <- function(tsData)
{
    numSize <- length(tsData)
    tsGrowth <- (diff(tsData)/tsData[-numSize]) * 100

    return(tsGrowth)
}

使い方はこんな感じ。

source("growthRate.R")
tmpTs <- seq(1,10,by=0.3)
growthRate(tmpTs)

 

RでX-13ARIMA-SEATSを使う(2019年6月版)

自分用の覚書
CRANにあるx13binaryが使えるようになったので、自分でX-13ARIMA-SEATSをコンパイルする必要がなくなり、MacとWinの違いもなくなりました。

 

[インストール]GNU Rで二つのパッケージをインストール

  1. install.packages("seasonal")

注:seasonalをインストールするとx13binaryも一緒にインストールされる。

 

[GNU Rのパッケージseasonalからx13asを実行する]

  1. パッケージの読み込み
    library(seasonal)
  2. checkX13()を実行して、"Congratulations! 'seasonal' should work fine!"と表示されれば問題なし
  3. m <- seas(AirPassengers)
  4. plot(m)
  5. 季節調整済み系列(s11)の取り出し
    m$series$s11
  6. プロットの一例
  • plot(AirPassengers) #元のデータ
  • lines(m$series$s11, col="red") #季節調整値
  • lines(m$series$s12, col="blue") #トレンド

seasonalの使い方についてvignettesを参照されたい

https://cran.ism.ac.jp/web/packages/seasonal/vignettes/seas.pdf

 

[注意すべき点]

  1. X-13ARIMA-SEATSから季節調整済み系列はs11となった模様(X-12-ARIMAのd11。プログラムする人はお気をつけ下さい)

    https://www2.census.gov/software/x-13arima-seats/x13as/unix-linux/documentation/docx13ashtml.pdf

[s10等のまとめ]

s10: 季節成分(seasonal component

s11: 季節調整値(seasonal adjustment component

s12:トレンド成分(trend component

s13:不規則成分(irregular component

詳しくは以下のTable 7.31を参照

 

https://www2.census.gov/software/x-13arima-seats/x13as/unix-linux/documentation/docx13ashtml.pdf

[Predefined regression variables]

外れ値やレベルシフトの調整にはregression.variablesを使う。使い方は以下のTable 7.28を参照

https://www.census.gov/ts/x13as/docX13AS.pdf

 

 

 

GNU R (Windows10)にR Interface to 'Keras'をインストールする

GNU R (実際の作業はRstudio)でKerasをインストールしたときの覚書。基本的には(1)Anacondaインストール、(2)Anacondaでtensorflowインストール、(3)R上でdevtoolsインストール、(4)devtoolsでkerasインストール、(5)Windows上でRtoolsインストールと言う手順になる。

 

[Anacondaとtensorflowのインストール]

最初にAnaconda(Python 3.*)をインストールし、Anaconda Navigatorを起動してtensorflowをインストールする。以下のURLを参照。

miyabi-lab.space

 

[keras: R Interface to 'Keras'のインストール]

Rstudioでの導入は以下の通り。

  1. Rstudioを管理者として実行する
  2. install.packages('devtools')(devtoolsをインストールする)
  3. コンソールに devtools::install_github("rstudio/keras") と入力
  4. インストール中に"Please download and install Rtools *.*"とRtoolsをインストールするように言われるので、指定されたバージョンのRtoolsをインストールする

[R Interface to 'Keras']

R Interface to 'Keras'の使い方は以下のURL等を参照。

cran.ism.ac.jp

Rstudio (Windows10)でRのでパッケージをインストールする

Rstudio (Windows10)でRのでパッケージ(devtoolsなど)をインストールするとき、パスに日本語がある場合、Rstudioが認識できない(日本語パスの部分が????になる)。

 

libpathsでパスを指定する方法もあるが、一番簡単なのはRstudioを管理者権限で起動してインストールする方法かもしれない(もっと簡単な方法があれば誰か教えてください)。

 

  1. Win10のスタートメニューでrstudioを入力し、Rstudioが表示されたら、右クリックして「管理者として実行」を選択
  2. Rstudioが起動したらコンソールでinstall.packages('devtools')を実行する

 

matlab 警告: 名前が存在しないか、ディレクトリではありません

Windows10でDynareをインストールしたあとに「matlab 警告: 名前が存在しないか、ディレクトリではありません」という警告がでる問題の解決方法。

cd C:\dynare\4.5.7\contrib\ms-sbvar\TZcode\MatlabFiles\

edit startup.m

 

ms-sbvarを使わない場合は、以下の2つの行をコメントアウトすればよい。

path(path,'/Users/tzha/ZhaData/Git/TZcode/MatlabFiles')
path(path,'/Users/tzha/ZhaData/Git/TZcode/MatlabFiles/MSV')