
時系列のアプローチ 単系列 ざっと見る 定常性の確認 ARIMA/SARIMAモデルをあてはめる 複数系列の関係→VAR(ベクトル自己回帰)モデル その他の変数がある(時系列+回帰)→状態空間モデル (単なるラグ変数回帰→目的変数自体の時系列性が反映されない) ライブラリ{forecast}を使う 以下、データはy.tsとする 時系列のデータ形式 時系列データにはいくつかの形式がある。 ts: Rの基本の時系列オブジェクト。ほとんどの時系列ライブラリはこの形式の時系列データを扱う xts: データフレームとtsの間に位置づけられる、時系列データを便利に扱えるようにした形式 zoo: データフレームとxtsの間の形式 われわれが一般的 …
続きを読む
ツールを問わずやりたいのはアクセス解析 Googleアナリティクスは無料でアクセス解析、ウェブ解析ができるツールで、手軽に使えるような環境からよく「Googleアナリティクスの使いかたを学びたい」という声が出てくる。 有料なので使う人はあまり多くはないが、アクセス解析ツールといえばAdobe Analyticsも同じ仲間であり、やることは同じである。 重要なのは「Googleアナリティクス」という固有のツールの使い方を知ることではなく、アクセス解析/ウェブ解析の目的とプロセスを学ぶことである。ツールの違いは方言みたいなもので、使うときに知識として学べばいい。そうしておけばGA、AAだけでなく、どんなツールにも対応できるし、ログ解析に …
続きを読む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', na.strings = '', sheet …
続きを読む前のページではデータフレーム、data.tableの列(変数)の処理について解説したが、今度は行の抽出、並べ替え、サンプリング、分割といった行の処理についてまとめる。 行の削除(抽出) データフレーム ad_log <- ad_log[ad_log$imp>1000 & ad_log$click<10, , drop=F] ad_log <- with(ad_log, ad_log[imp>1000 & click<10, , drop=F]) 上下は同じ。with()関数はバッチの中でも使えるので便利。 データフレームの抽出・絞り込みでは第3添字にdrop=FALSEを付けること! 行列の添え字にdrop=FALSEを付けないと1 …
続きを読むこのあたりから処理がアドホック寄りになるので、data.tableを使う場合でもパイプ(dplyr)を使って一度に実行するのではなく添字記法を使って1ステップずつ進めていくといい(1行ずつ実行する場合は添字記法を使った方がコード量が少なくて済む)。 行の削除(抽出) 行の抽出 行の並べ替え(ソート) 行の並べ替え 変数の加工(データフレーム/data.frame共通) 標準化(scale) 指定した変数を標準化(平均=0、分散=1のスケールに圧縮/拡大)する。 scale()関数を使う。
データフレーム x.df$purchase_amount <- scale(x.df$purchase_amount) # …
続きを読む
ローデータから分析対象とする変数のみ抽出し(個人情報など、保持すべきでない変数を削除するなど)、情報を失わない範囲で分析するためのデータセットを作る。分析プロジェクトにおけるローデータと同じ量の情報を持つ、整形された(扱いやすい)データセットを作るのである。 この後のデータクレンジング以降で、データの加工方法を変更するなどで手戻りが発生することもある。その際ローデータの読み込みまで戻るのは大変なので、ローデータを同じ情報を持つ、整形された状態のデータを作っておくのが重要である。データクレンジングで手戻りが発生しても、ここで整形したデータセットまで戻ればいい。 dtplyrについて 本記事ではdata.table(例:fread()で …
続きを読む
Rを使ったデータ前処理の方法を解説する。 データフレーム形式だけでなく、大きなデータを扱うのに高速なdata.tableを使ったデータの前処理の方法も解説する。 まず一般的にデータの前処理の手順は以下のようなものである。 ローデータの読み込み データの整形(分析用データセットの生成。データの持つ情報は保持) データの型確認 必要な(分析対象とする)列の抽出 列名の変更 データ変換 データの型変換 日時データの生成 因子データの生成(ordered) データクリーニング(正しく分析できるように必要に応じて情報を一部削る) 行の削除(抽出) 行の並べ替え(ソート) 標準化(scale) 欠損値処理 外れ値処理 結合 変数の追加と削除 変 …
続きを読む独立した記事にはならないが、それぞれ便利かつ重要な小さなRのTipsを紹介。 チートシート ggplot2 qplot() 基本 qplot(x=Sepal.Width, y=Sepal.Length, data=iris, geom="point", color=Species) # 散布図 qplot(x=date, y=unemploy, data=economics, geom="line") # 折れ線グラフ qplot(x=feed, data=chickwts, geom="bar") # 棒グラフ qplot(x=Sepal.Width, data=iris, binwidth=0.3, …
続きを読む
クラスター分析は 距離行列の生成(類似度行列ではない!) クラスタリングの実行 という流れになる。 それぞれのステップで、採用する 距離の種類 クラスタリングの方法 がチューニング変数となる。 この順に手順を見ていく。 行数、列数の多いビッグデータ向きのデータ形式であるMatrixパッケージに対応した距離行列についても説明する。 距離行列を生成する 類似度行列ではなく距離行列を作る。similarityではなくdistanceを作る。 直感的にはデータから距離の指標(どれだけ離れているか)ではなく類似度(どれだけ近いか)の指標を抽出し、そこからクラスタリングしたいケースが多いのだが、あくまで類似度指標に基づいた距離行列を生成するので …
続きを読む
URLと向き合う必要性 URLはインターネット上でページのありかを特定する文字列。サイト制作、コンテンツ管理の観点のみならず、webマーケターにとってもさまざまな集客施策で直面するものである。 リマーケティング広告を配信する際、訪問したURL別にリストを作る アクセス解析においてページビューはURL単位で計測する SEO上はURLの正規化など、特に重要 意外と技術的に込み入ったところがある。 URLの基本は1URL=1コンテンツであり、1URLで複数のコンテンツが対応する(そのURLでアクセスしたときに表示されるコンテンツが時によって異なる)のでもよくないし、複数のURLで同一のコンテンツが対応するのも問題となる。こちらはSEOでは …
続きを読む