Take Your Time

仕事や研究、コンピューターとの付き合い方

R

AERが入らない

AERパッケージを入れようとしたら入らなかった。 エラーメッセージを読めばわかることだが、libcurl4-openssl-devがないため、AERと依存関係のあるcurlパッケージが入らないのが理由だった。 ターミナルでこれでおk。 sudo apt-get install libcurl4-openss…

雑感2

グローバル変数が危険すぎる。 特にRStudioだと雑になりがちなので、実行前に必ずクリーンアップする。 3時間程度溶かしてしまった。。

R 図の一部を拡大して表示する coord_cartesian

R

ggplot(aes(x, y)) + geom_bar() + coord_cartesian(xlim=c(0,30), ylim = c(0, 0.02)) みたいな感じでつけるだけ。geom_smooth()使うときフィットのデータは全体使いたいけど見せるのは一部みたいなことがあり重宝する

新しいggmapの使い方

Rのggmapには2種類ある。 Rstudioでインストールすると入ってくるCRANのggmapとdkahle氏の新しいggmapだ。googleのstatic maps APIが仕様変更*1をしていることもあり、google mapsをバックエンドに使うのであればdkahle氏版の方を使うのが必須である。insta…

hiraginoでR Markdown

R Mac

R Markdownでhtml出力するときは簡単なのだが、pdf出力が結構大変。普通にyamlに以下のように書いても日本語部分が自動で折返されなかったりしてうまくいかない。 title: "Test" author: "hogehoge" date: "2018/7/17" output: pdf_document: latex_engine: …

AWS上でRStudioを動かす

R AWS

環境 Ubuntu 16.04.4 LTS (GNU/Linux 4.4.0-1061-aws x86_64) Rのインストール 普通にapt-getすると古いやつが入る。Rの公式 The Comprehensive R Archive Network に書いている通り/etc/apt/sources.listにdeb https://cloud.r-project.org/bin/linux/ubunt…

RPostgres

R

RPostgresを使って見た。 非常に簡単。 注意点としては、そのままxgboostに読ませるためにはデータ型を変換する必要がある場合がある。postgresからInteger64とかで入ってきたデータで推計するとNaNになる。as.numericしてあげれば問題ない。

xgb.plot.treeが描けない

R

今日はR。 xgboostパッケージのxgb.trainで学習させた後は、xgb.plot.treeで決定木/回帰木を描いて見るのが有用であるが、現行のパッケージだと変なふうになってしまう。 R version 3.4.2 (2017-09-28) -- "Short Summer" rstudio Version 1.1.419 具体的に…

極力loopを使わない方法、kroneckerと条件式をつかったリファクタリング

R R

例えば、労働者のある時点の給与w_tをもとにその労働者の給与の履歴{w_s}s=0,..,t-1を計算したいとする。履歴は、観察可能な給与にある定数をかけるとでてくるとする。 w_s = w_t*r[s] しかしながらこのrが労働者の教育に依存するとすると、場合分けが必要と…

条件に当てはまる観測を数える

Rの場合 nrow(subset(x, 条件))STATAの場合 sum if 条件; scalar a = r(N) STATAはちょっとめんどくさい

Hausman検定

R R

パッケージはplm。 phtest(formula, data, model = c("within"), "random") でOK. 結果をオブジェクトに格納すればカイ二乗統計量とPバリューが得られる。

基本統計量

R

経済学のペーパーでは回帰分析等の前に基本統計量(Summary Statistics, Descriptive Statistics)の表を乗っけるのがお約束。 Stataだとsumで一発だが、Rのsummaryは使えない。 library{psych}の{describe}が使える。 これをデータフレームに流し込んで好き…

VGAMとAERの干渉について

R

パッケージVGAMを使った後にAERを使うとエラーが出る。 例えば、vglm{VGAM}をやった後にtobit{AER}を走らせると変なエラー(unused arguments)が出る。 どちらも同じような機能があるだけにあまり問題はないかとは思うが。

Goodness-of-fitの取り出し方

R

lmの場合、summary(fit)$r.sqで決定係数、summary(fit)$adj.rで修正済み決定係数。観察数はnobs(fit)。 glmの場合、summary(fit)["null.deviance"]でNull Deviance、summary(fit)["deviance"]でResidual Deviance これとcreateTexregを合わせると相当自由に…

交差検定

R

英:Cross-validation パッケージcvToolsが使える。 線形モデルの場合、 library("cvTools") fit cv y = fit$model["y"], cost = mspe, K = nrow(fit$model)) これでone-leave-out cross-validationができる。 Kに他の数字を入れるとk-fold cross-validation…

R+EXCEL

R

データビューワーが貧弱なRの補完はエクセルが一番じゃないだろうか。 いちいち面倒だが、write.csvでデータを書き出して眺めるといろいろ捗る。

merge関数とうまく付き合う

R

merge関数は、2つのデータセットをくっつけるという頻発する作業に使えるので重宝するが、結構怖い関数でもある。 というのも、何も考えずにデータx,yをmerge(x,y)で統合しようとすると暴走してPCが止まったりする。 これを防ぐには、きちんと引数by=""を指…

factorをifelseで扱う

R

factorはifelseが使えない。 as.numeric関数を使うと、factorがnumericになってifelseが使えるようになる。

STATAの長所

Rに比べると柔軟性に欠け、ユーザの数も少ないためネット上のレファレンスが少ないSTATAだが、唯一素晴らしいと思えるのが、データビューワーだ。Rのデータビューワー(View)ははっきり行ってゴミである。1000☓1000しか表示できないし、(エクセル…

pglmの推定値、誤差

R

resultに推定結果を返す result summary(result)$est[,1] 推定値 summary(result)$est[,2] 誤差

文字色をかえる

\alert{文字}

大きな表をビーマーに突っ込む

でかい表をプレゼンで使うのは禁じ手だが、どうしても一枚にしたいときは、\resizeboxを使う。 必要な環境は、\usepackage{graphix} tabularを挟む \resizebox{3.5cm}{!}{ \begin{tabular} ... \end{tabular} } って感じ。{3.5cm}の部分を大きくしたり小さく…

2SLS

R

AERパッケージのivregとsemパッケージのtslsで簡単にできる。texregが使える分AERが上か。

RstudioとRの導入

非常に簡単。 使っているOS:Ubuntu 12.04.2 LTS マシン:レノボX230 ターミナルに sudo gedit /etc/apt/sources.list を打ち込むとURLを書いたメモ帳みたいなのが出てくるので、そこから deb http://us.archive.ubuntu.com/ubuntu/ precise を選んで…

プロっぽいplot

R

ただのplotは簡単だが、あまり美しくない。しかしちょっとしたテクニックで大分かっこよくなる。 至極簡単な例をみよう。 ある店舗の車のセールスをグラフ化するとする。 cars cars2 plot(cars, type = "b", pch = 1, ylim = c(0,10), lty = 1, xlab = "", y…

attr

R

単純な回帰分析ならlm()とかglm()で処理して、texreg()で一発で論文に載せられるテフコードが出来るんだけど、texregが使えないVGAMとかは厳しい。今はboot()で標準誤差を出しているので余計ややこしい。 attr()はformulaクラスから変数とかいろいろ返してく…

tobit by vglm

R

vglmの結果をsummaryで返した時でてくるintercept1と2。1が普通の定数項で2は対数化した標準誤差(log(sigma))。

Hot deck法によるimputation

R

Rでのimputationはいろいろ方法がある。今一番流行ってるのは恐らく機会学習とやらをつかったrandomForest系のパッケージだろう。ただ、正直ベイジアンと聞いただけで身の毛のよだつ自分には厳しいので一番簡単そうなものを使った。パッケージ"StatMatch"で…

multinomial logit

R

多項ロジットは使い勝手がいいので職業選択など序列化できない選択モデルにおいてよく使われる。Rにおけるパッケージは僕の知る限りふたつあって、ひとつはたぶんフランスの経済学者のYves Croissantの"mlogit"と、たぶんNZの生物学者のThomas Yeeの"VGAM"が…

プロットの横軸の名前を変える。

R

xaxt = "n"を使うと消える。 axisで任意の名前をつける。(例)plot(seq(1,5),nurs.table[4,2:6],type = "b", col="black",ylim=c(0,.25), xlab = "", ylab="",pch = 1,xaxt = "n") par(new = T) plot(seq(1,5),nurs.table.f[4,2:6],type = "b", lty = 1,col…