Rにおける代表的な一般化線形モデル(GLM)の実装ライブラリまとめ

一般化線形モデル(GLM)は統計解析のフレームワークとしてとにかく便利。Rでもビルトインの関数から拡張までさまざまなライブラリから提供されている機能だが、さまざまなライブラリがありすぎてどれを使えばいいのかわかりにくいのと、さらに一般化線形モデル(GLM)自体にもいろいろな亜種があるため、どの手法をどのライブラリの関数で実装すればいいかわからなくなる。 そこでRに実装されている代表的なGLM系の関数と特徴についてまとめてみた。 一般化線形モデルのおさらい 一般化線形モデルとは $$ y = g^{-1}(\alpha + \beta_1 x_1 + \beta_2 x_2 + … …

続きを読む →

Google ColaboratoryでRを使う

無料でPythonの実行環境を使わせてもらえるGoogle Colaboratory。しかもGPUと12GBのメモリ、350GBのディスクまで使える環境であり、手元のPCよりハイスペックな人も多いだろう。 RユーザにとってはPythonだけでなくRでも使えたらいいのにと思うところである。そこで、この記事ではこの環境でRを使う方法を解説する。 Rを使う4つの方法 実はGoogle ColaboratoryのインスタンスにはRの環境(RのバイナリとJupyter Kernel)がインストールされており、わずかな手順で使えるようになるのである。 参考までにインストールされているKernelの一覧はマ…

続きを読む →

Rのdata.tableパッケージの使える関数一覧

Rのdata.tableはデータフレームを高速に扱えるように改良した形式だが、この機能を提供するdata.tableパッケージには添え字を使ったdata.tableの処理機能だけでなく、さまざまな関数が実装されている。 中にはdata.table以外の形式にも使える関数もあり、 dt[,col1:=関数()] の形式で使えるdata.table用の関数にも一般的に知られていない便利なものが数多くある。 特に高速化を意識しているものが多く、知っていると処理時間を短縮できる。 data.tableはdplyrとセットで使われることも多いが、dplyr自体はdata.tableの高速仕様にのっとった…

続きを読む →

Rのおすすめパッケージ2019年版

Rのおすすめパッケージをアップデートしてまとめた。定番の分析手法をはじめ、可視化やデータ処理に便利なものなど、幅広く紹介した。中にはマストというものもあるし、意外と知られていないがインストールしておくと便利なものまで、使い方の例も挙げて説明している。 ミドルウェア的なレイヤーのライブラリ(must) curl ファイルをwebからダウンロードするときに使う。 データファイルやパッケージのダウンロードが発生する処理で内部的に使われるライブラリで、他のパッケージのインストールの際に同時にインストールされることが多く、意識されることは少ないパッケージ。たまに依存関係の問題でも解決されずに未インストー…

続きを読む →

Rを使ったXGBoostの高度なパラメータチューニングと細かいノウハウ

XGBoostは機械学習手法として 比較的簡単に扱える 目的変数や損失関数の自由度が高い(欠損値を扱える) 高精度の予測をできることが多い ドキュメントが豊富(日本語の記事も多い) ということで大変便利。 ただチューニングとアウトプットの解釈については解説が少ないので、このあたりについて説明する。 XGBoostとは? 勾配ブースティングのとある実装ライブラリ(C++で書かれた)。イメージ的にはランダムフォレストを賢くした(誤答への学習を重視する)アルゴリズム。RとPythonでライブラリがあるが、ここではRライブラリとしてのXGBoostについて説明する。 XGBoostのアルゴリズム自体の…

続きを読む →

Rで時系列分析の簡単なまとめ

時系列のアプローチ 単系列 ざっと見る 定常性の確認 ARIMA/SARIMAモデルをあてはめる 複数系列の関係→VAR(ベクトル自己回帰)モデル その他の変数がある(時系列+回帰)→状態空間モデル (単なるラグ変数回帰→目的変数自体の時系列性が反映されない) ライブラリ{forecast}を使う 以下、データはy.tsとする 時系列のデータ形式 時系列データにはいくつかの形式がある。 ts: Rの基本の時系列オブジェクト。ほとんどの時系列ライブラリはこの形式の時系列データを扱う xts: データフレームとtsの間に位置づけられる、時系列データを便利に扱えるようにした形式 zoo: データフレ…

続きを読む →

RとExcel(ファイルの読み書き、データフレームをExcelで編集)

RでExcelファイル(.xlsx)を読み書きするライブラリはいくつかあるが、openxlsxが多機能でかつ使いやすい。Javaも不要なのでインストールや動作も軽い。古いファイル(.xls)には非対応だが、現行のファイル(.xlsx)のみ対応でよければこれがおすすめ。 Excelファイルの読み込み read.xlsx()関数を使う。 たとえばファイルC:/Users/fukuyama/Documents/master.xlsxのシート「ユーザ」を読み込む場合 m_user.df <- read.xlsx(‘C:/Users/fukuyama/Documents/master.xlsx’,…

続きを読む →

Rでデータセットの抽出(行の抽出、並べ替え、サンプリング、分割)

前のページではデータフレーム、data.tableの列(変数)の処理について解説したが、今度は行の抽出、並べ替え、サンプリング、分割といった行の処理についてまとめる。 行の削除(抽出) データフレーム adlog <- adlog[adlog$imp>1000 & adlog$click<10, , drop=F] adlog <- with(adlog, adlog[imp>1000 & click<10, , drop=F]) 上下は同じ。with()関数はバッチの中でも使えるので便利。 データフレームの抽出・絞り込みでは第3添字にdro…

続きを読む →

Rでデータクリーニング、変数の生成

このあたりから処理がアドホック寄りになるので、data.tableを使う場合でもパイプ(dplyr)を使って一度に実行するのではなく添字記法を使って1ステップずつ進めていくといい(1行ずつ実行する場合は添字記法を使った方がコード量が少なくて済む)。 行の削除(抽出) 行の抽出 行の並べ替え(ソート) 行の並べ替え 変数の加工(データフレーム/data.frame共通) 標準化(scale) 指定した変数を標準化(平均=0、分散=1のスケールに圧縮/拡大)する。 scale()関数を使う。 # データフレーム x.dt$purchase_amount <- scale(x.dt$purch…

続きを読む →

Rでデータの整形(列のデータ型確認、列の抽出、列名の変更、列の型変換)

ローデータから分析対象とする変数のみ抽出し(個人情報など、保持すべきでない変数を削除するなど)、情報を失わない範囲で分析するためのデータセットを作る。分析プロジェクトにおけるローデータと同じ量の情報を持つ、整形された(扱いやすい)データセットを作るのである。 この後のデータクレンジング以降で、データの加工方法を変更するなどで手戻りが発生することもある。その際ローデータの読み込みまで戻るのは大変なので、ローデータを同じ情報を持つ、整形された状態のデータを作っておくのが重要である。データクレンジングで手戻りが発生しても、ここで整形したデータセットまで戻ればいい。 カテゴリ変数の型となるfactor…

続きを読む →