まずは蝋の翼から。

学んだことを書きながら確認・整理するためのメモブログ。こういうことなのかな?といったことをふわっと書いたりしていますが、理解が浅いゆえに的はずれなことも多々あると思うのでツッコミ歓迎

使い方メモ(ライブラリ)

tidyverseとNSE

tidyverse系で変数を使いたいときめんどくさいなぁという話。 はじめに要点をざっくりまとめると、tidyverse系でdplyrでdata$列名ではなく列名と直接書けるのはNSE表現になっているので、そういう場所はNSEに合わせた書き方しようね。変数はSEなのでそのまま…

機械学習による予測確率は真の確率とは異なる

以下の記事では傾向スコアをロジスティク回帰で求めてその傾向スコアをもとにATEなどを求めた。 knknkn.hatenablog.com 機械学習で出した確率は、予測確率が0.5未満ならラベル0、0.5以上ならラベル1にする、といったような分類器として使う場合は(おおむね…

傾向スコアによるマッチングを試す

傾向スコアによるマッチングを試す。内容は岩波DS3を、コードは以下を参考。 統計的因果推論(2): 傾向スコア(Propensity Score)の初歩をRで実践してみる - 渋谷駅前で働くデータサイエンティストのブログ 岩波データサイエンス Vol.3発売日: 2016/06/10メデ…

差分の差分法(DID)を試す

差分の差分法(DID)の勉強のために以下の記事を参考にする。 https://fisproject.jp/2016/05/difference-in-differences-using-r/ 使用するデータは 、A-Gまでの7ヶ国についてy, y_bin, x1, x2, x3, opinion を1990年から10年間に渡り記録したパネルデータと…

各モデルで使われる変数重要度についてまとめる

はじめに 機械学習タスクにおいて、ブラックボックス性を減らし解釈性を上げるためにどの特徴量がどれくらい効いたかを示す必要性が増えている。また、特徴量選択やフィーチャーエンジニアリングの際にも参考になる。そのため、機械学習タスクをやるにあたっ…

SHAP valueを使ってみる

SHAP valueを実際に試してみる。コードは以下の記事のものを拝借。 Shapを用いた機械学習モデルの解釈説明 - Qiita なお、データはkaggleのHouse Pricingコンペデータをテキトーに加工して作っている。SalePrice(対数化済)を目的変数として、簡易化のため変…

複数のモデルを管理する

purrrとbroomの使い方をマスターするために。以下の記事をトレースする。 内容自体は引用元記事の方がちゃんとしているのでそちらを読んでもらいたい。本記事は、読むにあたって理解が薄い人(=自分)用の補足メモを書きながらのトレースとなる。そのため、本…

themeを作ってggplotの出力コードをコピペで何回も繰り返さない

はじめに ggplotを使っていて、結構何回も同じこと書いていることが多いなーと感じたので改めて省略できる部分を省略することを考える。 そもそもプログラマーのための原則として、DRY原則というものもある。 DRY原則 | プログラマが知るべき97のこと また、…

glue::glue()による動的なファイル名/クエリの生成

Rのglue::glue()を使うと、{}で囲った変数名に応じた変数で補完した文字列が生成される。 library(glue) for (i in 1:3){ print(glue('hoge{i}')) } # => # hoge1 # hoge2 # hoge3 glueを利用して、動的にファイルを作成する。以下では、irisをspecies毎に分…

lfe::felmで固定効果モデルを試す

固定効果モデル(Fixed Effect)を考える。 固定効果モデルとは 固定効果モデルとは、ざっくり書くと、パネルデータに対するOLSの際にパネルデータ内の個人毎に異なる「個人差」のような部分を除去してOLS推定ができるようになるモデル。 固定効果モデルイメー…

tsの週次データについてと、ついでにtsibbleについて

Rのtsクラスの振る舞いがよくわからなかったのでメモ。ついでにtibble形式のtsであるtsibbleについても。 基本 tsクラスは時系列(Time Series)情報をindexとして持ったデータ型。 時系列ってなんやねんと思うが、要するに「ある単位においてどういう粒度が…

forecastのtrain/test期間の結果をggplot2で描画できるようにする

やりたいこと ARIMAなどをする際に予測をするためにforecast関数を用いる。 その際、forecast関数によって作成されたオブジェクトはautoplot関数でそのまま描画できる。 キレイでリッチなグラフ描画をおこないたいので、ggplotを使って描画をしたい。 問題点…

ARIMAXで複数のモデルを一気に試す

ARIMAXモデルにおいて、X(外部要因)に何を入れるか考える際にいちいち1つ1つ試していくのは手間がかかる。そのため、loop処理で一気に計算をおこない結果を比較したい。 データ テキトーに以下のデータで考える。 > df # A tibble: 7 x 5 date value x1 x2_1…

ggplot2覚書⑨ 回帰線

引き続き「Rグラフィッククックブック」。 Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集作者:Winston Chang発売日: 2013/11/30メディア: 大型本 今回がとりあえずラスト。 過去分 ggplot2覚書① 棒グラフ - まずは蝋の翼から。 ggplot2覚…

ggplotで別々のデータを使った2軸グラフを使いたい

ggplot2で異なるグラフを重ねて、yの値が左右で異なるグラフを2軸グラフという。 イメージ的には、下記の2グラフ(平均価格をpoint、平均カラット数を棒グラフ)を1画面に収めるイメージ(※棒グラフの数値テキストは、以降での値を確かめる用なので除く)。 ~ …

週単位にまとめた時系列データで軸目盛を週初め日付ベースにしたい

事象 表題通り。 データとして、週初めの日付が入っているデータがある。その日付単位でplotをすると軸がdateゆえに目盛が週初め刻みではなく、通常通りの1日刻みとなる。そのため、下記グラフのように欲しい部分(週初め日付)とは別の日付が目盛に表示され…

ggplot2覚書⑧ theme詳細 color

引き続き「Rグラフィッククックブック」。 Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集作者:Winston Chang発売日: 2013/11/30メディア: 大型本 過去記事は以下。 ggplot2覚書① 棒グラフ - まずは蝋の翼から。 ggplot2覚書② 散布図 - ま…

ggplot2覚書⑦ theme詳細 facet

引き続き「Rグラフィッククックブック」。 Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集作者:Winston Chang発売日: 2013/11/30メディア: 大型本 過去記事は以下。 ggplot2覚書① 棒グラフ - まずは蝋の翼から。 ggplot2覚書② 散布図 - ま…

ggplot2覚書⑥ theme詳細 凡例の設定

引き続き「Rグラフィッククックブック」。 Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集作者:Winston Chang発売日: 2013/11/30メディア: 大型本 過去記事は以下。 ggplot2覚書① 棒グラフ - まずは蝋の翼から。 ggplot2覚書② 散布図 - ま…

ggplot2覚書⑤ 体裁(theme、テキストgeom)に関しての大枠

引き続き「Rグラフィッククックブック」。 Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集作者:Winston Chang発売日: 2013/11/30メディア: 大型本 過去記事は以下。 ggplot2覚書① 棒グラフ - まずは蝋の翼から。 ggplot2覚書② 散布図 - ま…

ggplot2覚書④ 軸について

引き続き「Rグラフィッククックブック」。 Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集作者:Winston Chang発売日: 2013/11/30メディア: 大型本 過去記事は以下。 ggplot2覚書① 棒グラフ - まずは蝋の翼から。 ggplot2覚書② 散布図 - ま…

ggplot2覚書③ 注釈(解釈補助)

引き続き「Rグラフィッククックブック」。 Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集作者:Winston Chang発売日: 2013/11/30メディア: 大型本 過去記事は以下 ggplot2覚書① 棒グラフ - まずは蝋の翼から。 ggplot2覚書② 散布図 - まず…

ggplot2覚書② 散布図

以下をベースに覚え書く。 Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集作者:Winston Chang発売日: 2013/11/30メディア: 大型本 前回のは以下 knknkn.hatenablog.com 散布図 テキストをつける aesでマッピングされた位置にlabelでテキス…

tidylogでミスを減らす

tidylogというライブラリがなかなか良さげ。 簡単に概要を書くと、「tidy系の処理結果のサマリーを実行時に表示してくれる」。 製作者のgit丸写しだけど挙動を以下に示す。 GitHub - elbersb/tidylog: Tidylog provides feedback about basic dplyr operatio…

ifelse関数が挙動不審なのでdplyr::if_else関数を使う

Rでifelse関数を使ったら思った結果が帰ってこなかった。 yes <- as.Date('2018-01-01') no <- '2018-12-31' ifelse(c(TRUE,FALSE), yes, no) # => [1] "17532" "2018-12-31" yes <- as.factor('hoge') no <- as.POSIXct('2018-01-01') ifelse(c(TRUE,FALSE)…

ggplot2覚書① 棒グラフ

今までなんとなくでggplot2を使っていたので「Rグラフィッククックブック」を使って、ちゃんと覚えてなかったりする部分のメモ Rグラフィックスクックブック ―ggplot2によるグラフ作成のレシピ集作者:Winston Chang発売日: 2013/11/30メディア: 大型本 なお…

クラス分類の評価手法あれこれ

評価手法 クラス分類の評価手法について書く。 学習元は引き続き「Pythonではじめる機械学習」。 Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎作者:Andreas C. Muller,Sarah Guido発売日: 2017/05/25メディア: 単行…

交差検証法あれこれ

交差検証 何故モデルの評価に交差検証が必要か書く。 学習元は「Pythonではじめる機械学習」。 Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎作者:Andreas C. Muller,Sarah Guido発売日: 2017/05/25メディア: 単行本…

RのDB操作でハマったので備忘録

RPostgresを使った処理で、割と初歩的なことを2連続でハマったのでメモ。 CollectしたものとしていないものはJOINできない library(RPostgres) library(dbplyr) tbl_A = tbl(con, in_schema("hoge", "tbl_a")) tbl_B = tbl(con, in_schema("hoge", "tbl_b"))…

日付を加工するのに便利なパッケージlubridate

Rのパッケージでlubridateというパッケージが、日付や日時をパースするのに非常に便利だった。 > test_date <- as.Date('2019-02-08') #dateデータの作成 > year(test_date) #年のみパース [1] 2019 > day(test_date) #日のみパース [1] 8 > floor_date(test…