東京に棲む日々

データ分析、統計、ITを勉強中。未だ世に出ず。

R

Stackingに関して(2)

前回の続き。 highschoolstudent.hatenablog.com サンプルデータの作成。あまり細かいことは考えず適当なパラメータ設定で適当に作成。 library(MASS) # 乱数の作成(多変量正規分布) library(glmnet) # Ridge回帰 library(lme4) # 混合モデル library(latt…

モデル評価基準 追加 - リフトチャートに関して2 - R{ROCR}

highschoolstudent.hatenablog.com highschoolstudent.hatenablog.com 上2つの記事に関連した追加。 そもそもリフトチャートと呼ばれるものは定義があいまいなようで、人によって使っているものが細かく違ったりする。 基本的に似たようなものであるのだが、…

Gradient Boosting Treeを使ってみる - R{gbm} (Part.2)

前回に続き、いくつかの変数変換を試してみる。 <a href="http://highschoolstudent.hatenablog.com/entry/2015/06/27/144141" data-mce-href="http://highschoolstudent.hatenablog.com/entry/2015/06/27/144141">Gradient Boosting Treeを使ってみる - R{gbm} (Part.1) - 東京に棲む日々</a>highschoolstudent.hatenablog.com Partial Dependence Plotで気づいたこと…

Gradient Boosting Treeを使ってみる - R{gbm} (Part.1)

予測モデリングのコンペで良く使われるらしいGBMを業務で使うことになったので、その使い方メモ。 Rのbgmを使う。 理論的なことは↓をじっくりといつか振り返ることにして、とりあえず使ってみる。Ridgeway(2012), Generalized Boosted Models: A guide to th…

モデル評価基準 追加 - リフトチャートに関して1 - R{ROCR}

前回の「モデル評価基準 - ROCに関して - R{ROCR}」に関する追加。 モデル評価基準 - ROCに関して - R{ROCR} - 東京に棲む日々highschoolstudent.hatenablog.com リフトチャート/Lift Chartを描いてみる。 今回書く形式のリフトチャートは、累積反応曲線/Cum…

モデル評価基準 - ROCに関して - R{ROCR}

モデル評価をROCを用いて行うと仮定した場合の、考察とメモ。 RのROCRパッケージを使用。 混同行列(Confusion Matrix)の復習。 こんなデータがあったとする。 pred1、pred2はそれぞれ、モデル1、モデル2による予測値。observedは実測値。n=19で、Prob(obse…

GLMMを勉強してみる。 - R glmmML

GLMM(リンク関数=ロジスティック関数、分布=二項分布)を勉強してみる。RのglmmML使用。 久保(2012) の7章を参考。 データ解析のための統計モデリング入門――一般化線形モデル・階層ベイズモデル・MCMC (確率と情報の科学) 作者: 久保拓弥 出版社/メーカー…

多項ロジット(Multinomial Logit), R - mlogit 使用メモ

Rのmlogitパッケージで多項ロジット(Multinomial Logit)を使用する際のメモ。 まず、用語の整理。参考文献(A) p.8より。-------------------------A model with only individual specific variables is sometimes called a multinomial logit (多項ロジッ…

リッジ/Ridge回帰、Lasso回帰、Elastic Net (R - glmnet)

リッジ/Ridge回帰、Lasso回帰、Elastic Net に関して。 まず、モデルの複雑性とオーバーフィッティングに関して復習メモ。 複雑なモデル: バイアス(Bias)が小さく、バリアンス(Variance)が大きいシンプルなモデル: バイアスが大きく、バリアンスが小さい …

状態空間モデル - R dlm (5)

今回は回帰モデルを扱う。これを用いることにより、説明変数を時系列データのモデリングに含めることができるようになる。 x1 <- rnorm(50)x2 <- 0.3*x1 + rnorm(50)y1 <- 10*x1 + 5*x2 + rnorm(50) d1 <- data.frame(time=1:50, x1, x2, y1) par(mfrow = c(…

状態空間モデル - R dlm (4)

ARIMA(p,d,q)モデルを動的線形モデルで表現してみる。 ARIMAモデルの状態空間表現は一意に決定されないらしい、ここでは文献に従った形式を見て行く。 I(d)は差分を表し、通常のモデリングアプローチでは、データがトレンドを持ち非定常な場合は、その差分を…

状態空間モデル - R dlm (3)

今回は季節要素モデル。 例えば、データが四半期(周期=4)だった場合を考える。 Y[t-1] = α1 + v[t-1] Y[t] = α2 + v[t] Y[t+1] = α3 + v[t+1] Y[t+2] = α4 + v[t+2] α1+α2+α3+α4 = w[t], w[t] ~ N(0, w_seas) α1,2,3,4が各四半期成分となり、和が平均0で分…

状態空間モデル - R dlm (2)

前回より続く。 線形成長モデルは以下に定義される。 Y[t] = μ[t] + v[t], v[t]~N(0, V) μ[t] = μ[t-1] + β[t-1] + w1[t], w1[t]~N(0, W1) β[t] = β[t-1] + w2[t], w2[t]~N(0, W2) 動的線形モデルで表現する場合、各要素は以下になる。 t=0, θ[0]~N(m[0]…

状態空間モデル - R dlm (1)

状態空間モデル(正確には、時系列モデルの状態空間表現)の学習メモ。Rのdlmパッケージを使う。 参考書は ”和合 2013”。 Rによるベイジアン動的線形モデル (統計ライブラリー) 作者: G.ペトリス,S.ペトローネ,P.カンパニョーリ,和合肇,萩原淳一郎 出版社/メ…

R 最適化計算 - optimize(), optim()

R

optimize(), optim() の使い方に関するメモ。 (1)optimize()による1パラメータ推定 ベクトルXの平均値を(ややこしく)求めてみる。 X <- c(1, 2, 3, 5, 8)mean(X) # 3.8 optimize()を適用し、パラメータの最適値を求める対象の関数をまず定義する。 find…

R データフレームのFactor型変数の水準順序の入れ替え方法

R

スマートなやり方かどうかは分からないが、データフレームのFactor型変数の水準順序の入れ替え方法に関するメモ。 季節気温の疑似データを作成。Season=c( rep("春",5), rep("夏",3), rep("秋",4), rep("冬",3) )Temp=c( c(20,21,15,15,21), c(32,33,35), c(…

R データ確認(一変量集計)のための関数1

R

一変量集計や分布、度数のプロットが一度にできないとめんどくさいので、それ用の関数をとりあえず作成。 色々なデータではまだ試していません。 dataCheck1 <- function(Data, ngr=3){ print( "データのヘッド部分, head(Data)" ) print( head(Data) ) prin…

気になっている分布をいくつか

変数yがカウントデータ(y = 0, 1, 2, 3, ….)のときの分布に関していくつか。 Poisson分布http://ja.wikipedia.org/wiki/%E3%83%9D%E3%82%A2%E3%82%BD%E3%83%B3%E5%88%86%E5%B8%83 パラメータλのみによって形状が定まる。 平均と分散は等しいE(y) =λVar(y) …

とりあえず決定木モデルを実行のためのメモ

Rでの決定木分析(分類木、回帰木)の実行に関して、こうではないかとのメモを記す。 CARTアルゴリズムによる決定木分析を行うパッケージはrpartとmvpartがある。 mvpartはrpartに機能拡張を加えた上位パッケージとのこと。 2重に読み込んだ場合、以下のメッ…

重回帰と変数選択

重回帰とその変数選択に関するメモ。 RにはF値による検定でのステップワイズ変数選択法はないのでしょうか?AICによる変数選択法である、step() 関数などは見当たるが検定による変数選択は見当たらない。Web検索でもヒットしない。 AICによる変数選択と検定…

ロジット変換に関して

ロジット変換に関して。 割合を目的変数とする厳密な解析では、ロジスティックモデルをあてはめたり、割合の発生率が小さな場合はポアソンモデルをあてはめたりする。目的変数が二項分布やポアソン分布に従うと仮定するからである。 だが、そういった目的変…

とりあえずニューラルネットを使ってみる

今後ニューラルネット(以下、NN)について調べていくが、とりあえず、nnet()関数でモデルを作成してみる。 NNであるが、複雑な非線形モデルと言ってよい。説明変数と目的変数が線形な関係でないとき、線形モデル(重回帰、主成分回帰、PLSなど)ではうまく…

PLSの計算

PLSを手計算し、その後関数での結果と比べてみる。 x1 <- c(0.966,0.207,-0.552,-0.931,0.587,1.55,-0.931,0.587,-1.69,0.207)x2 <- c(0.619,-1.009,-0.358,-0.684,0.944,1.921,0.293,0.293,-1.335,-0.684)x3 <- c(-0.474,-0.474,-1.684,0.735,-0.474,1.849,…

主成分分析をNIPALSアルゴリズムで解いてみる

主成分分析とは、合成変数の分散を(ある制限の元)最大化する問題を解くことである。合成変数とは元のデータの各列を説明変数とする線形結合式で、この合成変数の分散が最大になるときの線形結合式の係数が固有ベクトルであり、そのときの合成変数を主成分…

主成分分析と特異値分解

―― 特異値分解 ―― A (n×p)をランクrの行列とする。 A = ULV’ と分解することができる。 ここで、U(n×r)とV(p×r)はそれぞれ列ベクトルが直行する。U’U = V’V = I、I(r×r)は単位行列。 L(r×r)は、正の値を対角要素に取る対角行列となる。L = diag(ψ1…

主成分分析を計算してみる

主成分分析を計算してみる。 x1 <- c(0.966,0.207,-0.552,-0.931,0.587,1.55,-0.931,0.587,-1.69,0.207)x2 <- c(0.619,-1.009,-0.358,-0.684,0.944,1.921,0.293,0.293,-1.335,-0.684)x3 <- c(-0.474,-0.474,-1.684,0.735,-0.474,1.849,-0.474,0.735,-0.474,0…

R 多変量解析 - 重回帰

R

一変量解析で各変数の分布の確認、二変量解析で体重に身長と性別がどのように影響を及ぼしているか確認してきた。最後に、体重、身長、性別の三変数で多変量解析(重回帰)を実行する。 目的変数:体重、説明変数:身長、性別、身長と性別の交互作用。 交互…

R 二変量解析 (X:カテゴリカル、Y:連続値)

R

二変量解析。Xにカテゴリカル、Yに連続値変数。 男女別に体重の比較を行う。 前回でも作成したが、男女別の体重ベクトルを作成。 FWeight <- BigClass[BigClass$Sex=="F",6]MWeight <- BigClass[BigClass$Sex=="M",6] 男女別の体重分布を確認するため、ヒス…

R 二変量解析 (X:連続値、Y:連続値)

R

二変量解析。X、Y共に連続値変数。データフレームは引き続きBigClass。 Xを身長、Yを体重とし、回帰分析を実行。slr_result <- lm(BigClass$Weight~BigClass$Height)summary(slr_result) Call: lm(formula = BigClass$Weight ~ BigClass$Height) Residuals: …

R 一変量解析

R

単変量解析をざっと。データフレームはBigClass。40人の12歳から17歳までの生徒のデータ。名前、年齢、性別、身長、体重が記録されている。 head(BigClass) ID Name Age Sex Height Weight 1 1 KATIE 12 F 149.86 43.1 2 2 LOUISE 12 F 154.94 55.8 3 3 JANE…

Rへのデータの読み込み、CSVへの書き出し

R

デスクトップ上のcsvファイルを読み込む BigClass <- read.csv("C:/Users/<UserName>/Desktop/BigClass.csv", head=TRUE, stringsAsFactors=FALSE) stringAsFactors=FALSE ⇒ カテゴリカルデータをFactorとして読み込まず、Characterとして読み込む クリップボードにコ</username>…