Hatena::ブログ(Diary)

arupaka-_-arupakaの日記

2016-08-26

Rのggplotで2点鎖線 dashed-double-dotted line

Rで2点鎖線 dashed-double-dotted line

p=p+geom_vline(xintercept=3,colour=4,lwd=1,linetype="531313")

linetype を文字表示でできる

  • 531313

5の長さの線引く、3開ける、1の長さの線引く、3開ける、1の長さの線引く、3開ける

  • 1F

1線をひく16進数のF(15)あける

2016-07-27

質的データのまとめ(カテゴリカルデータ)

  • 用語
    • 目的変数のグループのことを「群」という
    • 目的変数1つ2群数量化二類
    • 目的変数多数:多群数量化二類
      • 3群->2軸で表示、クラスタ中心からの距離等で分類
      • カテゴリスコア(回帰係数)は軸ごとにでる、その要因がどの程度各軸っぽいかを表す。たとえば、新規性信長とほかのをわけるのに役立つ的な。解釈はコーディングに依存する。
        • (1,0),(0,1),(0,0)、
        • 軸の意味はコーディングに依存:例:家康|その他軸, 信長|その他軸
        • 軸は相関比の最大化でつくる(主成分成分的なの)?
        • 説明変数から1軸のどの位置にあるか?2軸にどの位置にあるかを予測
          • 1要因に2軸つかうと、
            • y1=a11*x1+a12*x2,
            • y2=a21*x1+a22*x2 -> y1=-y2のため、a11=-a21 になって無駄.
          • 2要因に3軸使うと,,
            • y1=a11*x1+a12*x2+a13*x3
            • y2=a21*x1+a22*x2+a23*x3
            • y3=a31*x1+a32*x2+a33*x3
              • y1=0,y2=0->y3=1
    • 要因がカテゴリと量的が混ざる
      • 拡張型数量化2類
  • 数量化2類は基本は,教師データと要因から作ったサンプルスコア(上えいうyの値、予測値)の相関比が最大になる係数を選ぶ手法
  • データ表示:

群別クロス集計

全体10

群1 個体数4

群2 個体数6


もしくは、

    群1  群2 全体

立地 良い  2 7 9

   普通 3 2 5

   悪い 4 8 12

値段 高い 5 5 10

   安い 4 12 16

など

  • 判別分析: 判別的中点
  • 相関

ラメール連関係数:相関がない場合からのずれのカイ二乗値で評価

→x^2=Σ(実測-クロス表に関連がない場合の期待度数)^2/期待度数

→sqrt(x^2/n*(k-1)) で0~1の相関係数となる。

イメージ: 0.5以上非常に強い、0.25~0.5 関連性あり, 0.1~0.25 弱い関連性, 0.1未満 関連性なし

    • 質×量: 相関比 
      • カテゴリで群にわけ、分散分析し、全体変動のうち群間変動がしめる割合を計算する
      • η^2=B/T^2 B:群間変動, T:全体変動

(1)AIC

(2)CAIC

(3)マローズのC_p基準

(4)修正CpのMC_p 基準

(5)Pe基準(Predction error)


  • 回帰:
    • (1)回帰係数:カテゴリスコア
      • (a)グラフにして表示 (カテゴリスコアグラフ:
        • 横軸:係数(+に優良店、 -側に不良点 とラベル名を書く) 
        • 縦軸項目、カテゴリごとに、立地:良い、悪い、価格:安い、悪い、普通、など)
        • 量的変数の場合は 係数×距離区分にして、質的っぽく表示するとわかりやすい。
      • (b)多変量の場合
    • 変数選択
    • 追加情報検定を利用した逐次選択
      • 追加情報検定:F検定、(自由度等を考慮したモデル相関比-追加情報を考慮したモデルの相関比)/元の相関比 的な量で検定
      • 変数で相関比最大ものを選ぶ, 次に、それをあたらに変数を加え1変数と比べて有意に相関比があがったものを採択,次に,それを加えるを繰り返す。有意でなくなれば終了
      • 最後に、選択で出来たモデルから、各要因を除いて有意かを確認し、とりこんだ要因がすべて効いてるかを確認する。

という感じになる。

各軸のサンプルスコアの郡内変動/全変動を各軸の相関比が得られる.

        • 分類かいらない
      • 軍間の行列式が全体のサンプルスコア
      • 群間行列: 対角軸;その要因と全体平均のずれ、非対角:ある要因が中心からずれたとき、もう一つの要因がずれるかななどの相関。
      • 使えそう。。サンプルスコアの中心からのブレ具合を相対的に表現
      • 多変量正規分布でイメージすればよさげ。
  • 分散分析は軸の概念ないから、かってに相関比の高い軸をえらぶのがポイント

参考:

質的データの判別分析: 数量化2類 菅民郎 ほか

2016-07-22

Rで2つのカテゴリカルデータ(質的データ)の比較

Rで2つのカテゴリカルデータ(質的データ)の比較

カイ2乗検定の例

> v1<-table((qba$PET)[qba$y==0])

> v2<-table((qba$PET)[qba$y==1])

> chisq.test(cbind(v1,v2))

Pearson's Chi-squared test

data: cbind(v1, v2)

X-squared = 18.232, df = 2, p-value = 0.0001099

> v2<-table((qbb$PET)[qbb$y==1])

> v1<-table((qbb$PET)[qbb$y==0])

> chisq.test(cbind(v1,v2))

Pearson's Chi-squared test

data: cbind(v1, v2)

X-squared = 5.8369, df = 2, p-value = 0.05402

2016-07-17

Rでコンボリューション(畳み込み)

基本は、convolve関数。線形畳み込み(普通の畳み込み)にするためには、type="o"とする。

デフォルトは循環畳み込み.

q1<-dpois(0:100,lambda=1)

q2<-dpois(0:100,lambda=1)

q3<-convolve(q2, rev(q1),type="open")

たくさん畳み込みをするときは、fft関数を利用.

0をデータの後ろにたくさん作ると循環畳み込みが線形畳み込みと同値となる。

##DFT test

q1<-dpois(0:300,lambda=1)

q1b<-c(q1,rep(0,2*length(q1)))

f=fft(fft(q1b)^365,inv=TRUE)

q3b<-Re(f)/length(f)

plot(q3b)

curve(dnorm(x,mean=365,sd=365^0.5),add=T)

線形および循環たたみこみ

http://jp.mathworks.com/help/signal/ug/linear-and-circular-convolution.html?requestedDomain=jp.mathworks.com

高速畳み込み

http://www.is.titech.ac.jp/~mase/mase/html.jp/temp/convolve.jp.html

2016-07-15

Rで偏相関

Rで偏相関

library("psych")

qb_learn<-qba

qb_test<-qbb

qb_learn<-qb_learn %>% dplyr::select(y,TIKUNENSUU,TINRYOU)

qb_test<-qb_test %>% dplyr::select(y,TIKUNENSUU,TINRYOU)

> cor(qb_learn$TINRYOU,qb_learn$y)

[1] 0.1614954

> cor(qb_learn$TINRYOU,qb_learn$TIKUNENSUU)

[1] -0.3352435

> cor(qb_learn$TIKUNENSUU,qb_learn$y)

[1] -0.2804512

> partial.r(qb_learn,c(1,2),3)

partial correlations

y TIKUNENSUU

y 1.00 -0.24

TIKUNENSUU -0.24 1.00

> partial.r(qb_learn,c(1,3),2)

partial correlations

y TINRYOU

y 1.00 0.07

TINRYOU 0.07 1.00

> partial.r(qb_learn,c(2,3),1)

partial correlations

TIKUNENSUU TINRYOU

TIKUNENSUU 1.00 -0.31

TINRYOU -0.31 1.00

> partial.r(qb_learn)