Hatena::ブログ(Diary)

arupaka-_-arupakaの日記

2016-12-05

Rでカテゴリ変数の相関を調べる。質的変数とクラメール相関係数の計算

Rでカテゴリ変数の相関を調べる。質的変数とクラメール相関係数の計算。

基本は、(1)分割表を作る、(2)相関係数を調べるの流れ。

library("vcd)
##サンプルデータの作成
#x<-rbinom(1000,size=1,prob=0.5)
#y<-rbinom(1000,size=1,prob=0.5+0.3*x)
#x<-factor(x)
#y<-factor(y)

d<-data.frame(x,y)
assocstats(xtables(~y+x,d,drop.unused.levels=TRUE))

assocstats:クラメール相関係数を計算(vcd パッケージ)

xtabls: 連関表を作れる関数

出力

X^2 df P(> X^2)

Likelihood Ratio 103.81 1 0

Pearson 101.56 1 0

Phi-Coefficient : 0.319

Contingency Coeff.: 0.304

Cramer's V : 0.319

参考:

Rのカテゴリカルデータの操作と統計

https://www1.doshisha.ac.jp/~mjin/R/45/45.html

2016-11-21

ggplotでグラフの形(shape)を変える。

ggplotでグラフの形を変える。

scale_shape_manualを用いる

ggplot(smp, aes(x = year, y = value, group = country)) + geom_line(aes(color = country)) +

geom_point(aes(color = country, shape = country)) + scale_shape_manual(values = 0:length(unique(smp$country)))

http://rstudio-pubs-static.s3.amazonaws.com/796_a9237a230236427b8e71aeb72810cf4d.html より

色の場合も

scale_shape_manual(values =topo.colours(length(unique(smp$country))))

みたいなことができる。

topo.colorsは以下を参照

http://cse.naro.affrc.go.jp/takezawa/r-tips/r/53.html

2016-11-02

Rでエントロピーの概算

Rでエントロピーの概算:

x<-rnorm(10^5)
v<-hist(x,32)
sum(log(v$density)*v$density*mean(diff(v$mid)),na.rm=T)
非連続なら
entropy.empirical(table(x))

entropyパッケージ

2016-09-20

Rである値のある行だけ抽出

"name1","name2","name3"の行だけをとりだす。

g<-c("name1","name2","name2","name3","name6","name4","name6")
x<-c(3,4,5,2,1,4,5)
y<-3*x+rnorm(length(x))
r1<-data.frame(x,y,g)
list1<-c("name1","name2","name3")
r1b<-dplyr::filter(r2,r2$g %in% list) 

ついでにグラフをかく。

ggplot(r1b)+geom_line(aes(x=x,y=y,group=g,colour=g))

2016-09-01

Rでカテゴリカルデータの相関、連関解析

Rでカテゴリカルデータの相関、連関解析

https://www1.doshisha.ac.jp/~mjin/R/45/45.html

http://monge.tec.fukuoka-u.ac.jp/r_analysis/data_crosstable00.html

assocstats(xtabs(~y+SAIKOU,data=data,drop.unused.levels=TRUE))

コレスポンディング分析

http://monge.tec.fukuoka-u.ac.jp/r_analysis/analysis_corresp02.html

binning

http://schngtm.hatenablog.com/entry/2014/12/03/003622

cut(v,seq(min(v),max(v),length.out=10))

droplevelsで存在しない階級値をのぞける

mca(na.omit(data.frame(droplevels(x),droplevels(y)),nf=2))

http://www.okadajp.org/RWiki/?%E5%9B%A0%E5%AD%90Tips%E5%A4%A7%E5%85%A8