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

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

Continue reading →

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

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

Continue reading →

Rでローデータの読み込み(データフレーム、data.table、webデータの取得)

Rを使ったデータ前処理の方法を解説する。 データフレーム形式だけでなく、大きなデータを扱うのに高速なdata.tableを使ったデータの前処理の方法も解説する。 まず一般的にデータの前処理の手順は以下のようなものである。 ローデータの読み込み データの整形(分析用データセットの生成。データの持つ情報は保持) データの型確認 必要な(分析対象とする)列の抽出 列名の変更 データ変換 データの型変換 日時データの生成 因子データの生成(ordered) データクリーニング(正しく分析できるように必要に応じて情報を一部削る) 行の削除(抽出) 行の並べ替え(ソート) 標準化(scale) 欠損値処理…

Continue reading →

Rの細かいTipsまとめ(小さいTipsの寄せ集め)

独立した記事にはならないが、それぞれ便利かつ重要な小さなRのTipsを紹介。 RのデータフレームとPandasのデータフレームの間でデータをやり取りする RとPythonの間でのデータをやり取りするとき、CSVファイルではなく変数の型などを内包したデータフレームで直接やりとりできると便利。 これを実現するのがFeatherというライブラリ。 インストール Rで install.packages(‘feather’) Pythonで pip install feather 使う Rで require(feather) write_feather(iris, ‘iris.feather’) # 書…

Continue reading →

Rの関数定義でNSEを使う(表現式を引数にとれるようにする)

NSEとは NSEとはNon-standard evaluationの略。 関数に対して値を与えるのではなく、表現式(expression)を与えて処理させる方法。 言葉にするとわかりにくいので、具体例で。 NSEを使う局面 やりたいこと たとえばデータフレームcustomer.df内の f_purchaseとdurationという列に対して処理をする関数myfun()を作りたい場合 直感的には myfun(customer.df, f_purchase, duration) という引数の与え方をしたい。これがRのもっとも自然なコーディングである。 たとえば glm(f_purchase ~ …

Continue reading →

Rでクラスター分析〜距離行列の生成からクラスタリングまで

クラスター分析は 距離行列の生成(類似度行列ではない!) クラスタリングの実行 という流れになる。 それぞれのステップで、採用する 距離の種類 クラスタリングの方法 がチューニング変数となる。 この順に手順を見ていく。 行数、列数の多いビッグデータ向きのデータ形式であるMatrixパッケージに対応した距離行列についても説明する。 距離行列を生成する 類似度行列ではなく距離行列を作る。similarityではなくdistanceを作る。 直感的にはデータから距離の指標(どれだけ離れているか)ではなく類似度(どれだけ近いか)の指標を抽出し、そこからクラスタリングしたいケースが多いのだが、あくまで類…

Continue reading →

URLの構造~ホスト名、パス、パラメータ、ハッシュの成り立ちとSEO

URLと向き合う必要性 URLはインターネット上でページのありかを特定する文字列。サイト制作、コンテンツ管理の観点のみならず、webマーケターにとってもさまざまな集客施策で直面するものである。 リマーケティング広告を配信する際、訪問したURL別にリストを作る アクセス解析においてページビューはURL単位で計測する SEO上はURLの正規化など、特に重要 意外と技術的に込み入ったところがある。 URLの基本は1URL=1コンテンツであり、1URLで複数のコンテンツが対応する(そのURLでアクセスしたときに表示されるコンテンツが時によって異なる)のでもよくないし、複数のURLで同一のコンテンツが対…

Continue reading →

タグ管理のポイント、タグマネージャーの種類と導入のメリット

昨今Googleタグマネージャ(GTM)やYahoo!タグマネージャー(YTM)など無料で使えるタグマネージャーが現れ、タグマネジメントが一般化してきている。ではそもそもタグマネジメントとは何か。タグマネージャは変われどタグマネジメントの考え方は基本的にどのツールを使っても同じ。その基本を説明するとともに、後半では無料で最もお手軽に使えるGoogleタグマネージャの設定方法の解説をする。 タグマネジメントとは 「タグマネジメント」とはその名の通りwebサイトに設置するタグの一元管理である。 では管理すべきタグにはどんなものがあるのか。 アクセス解析ツールのタグ 広告のタグ コンバージョンタグ …

Continue reading →

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

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

Continue reading →

メディアサイトのアクセス解析と重要な指標、コンテンツ分析の着眼点

旧来からあるニュースメディアなどのサイトに加え、雑誌もwebメディアを持つようになってきている。また最近ではオウンドメディアも乱立しているなど、数多くのメディアサイトがひしめき合っている。 こういったサイトではお問い合わせ、資料請求といった目先のコンバージョンがない。会員登録などはあったとしても、サイト全体のゴールというほどの位置づけではない。 こういった目先のコンバージョンポイントのないメディアサイトのアクセス解析で考慮することを解説する。 メディアサイトの分析で考慮すること メディアサイトのイシュー メディアサイトの運用の主眼はPV数を増やすことに置かれていることが多い。 それ以外ではユー…

Continue reading →