科学の箱

科学・IT・登山の話題

R 機械学習

dataanalysis-002-week4

投稿日:2014年1月6日 更新日:

クラスタリング

SVDと組み合わせることでよりクラスに分かれているクラスタリングを実行できる。

  • 散布図でクラスタリングする変数を探す
  • クラスタリング
  • SVDを実行する
  • SVDの結果をクラスタリングに取り込む
  • k-meansクラスタリングの実施
  • クラスタセンターを確認する
  • 寄与度が大きい変数を見つける

SVD(特異値分解)

主成分分析に使われる。主成分分析は説明変数から新しい数が少なり目的変数をもとめる。因子分析は逆に目的変数の背後にはる説明変数をもとめる。

回帰分析の目的

  • 分布の記述
  • 2変数の関連の記述
  • 分布と関連について推測

Jitterプロットを使ってみる

Inference

  • 回帰分析もinferenceにつかう
  • サンプル集団から回帰分析
  • モデルからランダムに大量集団を作成
  • サンプリングして回帰分析
  • モデルのサンプリング
  • interceptとslopeをヒストグラムにする
  • interceptとslolpeをRで計算し誤差を導く

Standardize

  • わかりやすい
  • 比較できる

信頼空間

モデルを作るとかならずそれは母集団の推測になっているのでエラーを定量化する必要がある。

P-Value 偶然だとして発生する確率は xx%

回帰分析における検定

  • 説明変数と、、変数には関連性がないという仮説

離散変数を使った回帰分析 カテゴラル

テューキーの範囲検定

重回帰分析

  • 説明変数と目的変数を決める
  • 目的変数をパターンによって切り分ける
  • 回帰分析をする ←各パターンについて
  • 残りのデータで検証をしてみる
  • 相関係数を求める
  • 信頼空間を求める
  • 解釈する

リアルな回帰分析

  • confounder
  • skew
  • outlier, not fit trend
  • line is not always the best summary
  • variance change
  • units, absolute or relative
  • overloading
  • correlation and causation

Population of 1million families

newGalton <- data.frame(parent=rep(NA,1e6),child=rep(NA,1e6))
      //   NAを使ってデータフレームの箱を作る
newGalton$parent <- rnorm(1e6,mean=mean(galton$parent),sd=sd(galton$parent))
      //   galtonの親データを1e6個作成する
      //   データはオリジナルデータの平均と標準偏差の正規分布から取得される。
newGalton$child <- lm1$coeff[1] + lm1$coeff[2]*newGalton$parent + rnorm(1e6,sd=sd(lm1$residuals))
   //    galtonの子データを作成する。
     //    データは回帰分析の結果を使う。ただし、residualのノイズを入れ込む。
     ///   ノイズは平均0でresitualsの標準偏差に従う。
smoothScatter(newGalton$parent,newGalton$child)
abline(lm1,col="red",lwd=3)

リストを作成する方法

sampleLm <- vector(100,mode="list")
for(i in 1:100){
  sampleGalton <- newGalton[sample(1:1e6,size=50,replace=F),]
  sampleLm[[i]] <- lm(sampleGalton$child ~ sampleGalton$parent)
}

sampleLmにlistを代入しているが、lmの結果をclass()でみるとlmになる。”list”はdata.frameで用いるらしい。とりあえずややこしい計算の結果はdata.frameで戻されることを覚えておく。data.frameのがらは”list”で作る。

回帰分析におけるt値についての説明

係数および切片はt値をもつ。回帰分析におけるt検定は帰無仮説をこれらの値を0としている。tが小さいほど0に近いことを意味する。よって棄却されるときには0以外となり、係数がついている項目が有効であることがわかる。棄却されなければその項目の係数は0であるから回帰モデルには貢献していないことが予測される。

一般化すると平均0の母集団からとられた係数とサンプルとしてとられた係数の平均についてt検定をしていることになる。

傾きが同じになるグループの回帰分析を実行する

第二パラメータに変数名を “+”でつなげていく

> hunger1.lmBoth <- lm(hunger1$Numeric ~ hunger1$Year + hunger1$Sex)
> hunger1.lmBoth

Call:
lm(formula = hunger1$Numeric ~ hunger1$Year + hunger1$Sex)

Coefficients:
    (Intercept)     hunger1$Year  hunger1$SexMale  
       615.3730          -0.2993           1.9175

coeffi[1]はintercept, coeffi[2]はYearの係数, coeffi[3]はSex=Maleの時の追加interceptとなる。

同じ傾き、異なった傾きで回帰モデルを作成

重回帰モデルで同じ傾きで異なった切片、異なった傾きで異なった切片の直線を計算する方法が出ている。回帰モデルに入力する値を変えるのだが、よくわからなかったので参考になりそうなページを探した。

  • http://wiener.math.csi.cuny.edu/Statistics/R/simpleR/stat015.html
  • https://www.zoology.ubc.ca/~schluter/R/fit-model/
  • http://stackoverflow.com/questions/3017049/in-r-draw-two-lines-with-slopes-double-and-half-the-value-of-the-best-fit-line
  • http://r-eco-evo.blogspot.jp/2011/08/comparing-two-regression-slopes-by.html

交互作用がない変数を追加するためには”+”で変数をつなげていけばよい。交互作用がある場合には”*”を使う。一見すると足し算や掛け算に見えるが、算術計算とは関係なく、変数をパラメータとして追加していくための記述方法だと考えればわかりやすい。

回帰分析を分散分析で検定

  • http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1197781346
  • http://www.ab.auone-net.jp/~biology/regline/regline.htm
  • http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1288680497
  • http://www4.ocn.ne.jp/~murakou/anova.htm
  • http://www.slideshare.net/logics-of-blue/1-4-25564403
  • http://cse.naro.affrc.go.jp/takezawa/r-tips/r/71.html
  • http://homepage2.nifty.com/nandemoarchive/toukei_hosoku/anova_kaiki.htm

メタ情報

inarticle



メタ情報

inarticle



-R, 機械学習
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

dataanalysis-002-week3

exploratory analysis グラフの目的 データのおおよそを理解する パターンを探す モデリングを探す デバッグ コミュニケーション boxplot 値のレンジを確認する 他の値とレンジ …

no image

Core Concept in Data Analysis – Week 5

予測の分析 関連性を分析する モデルを明らかにする。 パラメータを推測する。 テストする。 予測が将来になると難しい→環境が変わってしまうため。 correlation structure (質的尺度 …

no image

findFn{sos}

findFn{sos} findFn(string, maxPages = 20, sortby = NULL, verbose = 1, …) 文字列から関数を探すことができる。パッケー …

no image

Pythonではじめる機械学習 – Chap03

3.1 Types of Unsupervised Learning 教師なし学習の例 次元削減: 重要な特徴量のみを使って元のデータを表現する トピック抽出: データを構成する部品を見つける クラス …

no image

Pythonではじめる機械学習 – 多様体学習

多様体学習 次元削減に利用できる手法として主成分分析がある。これは柔軟であり、すぐに実装可能な次元削減アルゴリズムの一つである。しかし一つだけ問題がある。それは主成分分析に適用できるデータは線形のみで …

2014年1月
« 12月   2月 »
 12345
6789101112
13141516171819
20212223242526
2728293031  

side bar top



アーカイブ

カテゴリー