---
# System prepended metadata

title: CPA/GCA in R の Prerequisite

---

---
breaks: false
---

# CPA/GCA in R の Prerequisite

[Cluster-based Permutation Analysis in R](https://hackmd.io/@CarlosLuisRivera/S1-XfoWIL/edit) を含め、チュートリアルには色々と前提知識が必要なのでまとめます。そもそも Permutation Analysis ってなんですか、という話とRの関数の話を残しておきます。

## Permutation Analysis

Permutation Analysis は
統計的な仮説検証の手法であるので、
結局は「null仮説が真である確率」を求める手法です。
ただ、線形モデルとは全く違う考え方です。
すごく人任せなのですが、
下の動画が分かりやすいです。

{%youtube FkHkB-IadxY %}

補足すると、Permutationというからには
並び替えが必要で(4:10ごろからの説明)、
要因Aと要因Bで条件付けられた
データがあるとする。
なお、要因Aと要因Bの差を求めておく。

ここで要因間の差が意味のあるものかを知るために、
まずは効果がないというnull仮説をたててみる。
要因に意味はない、というのは
すでにあるデータの要因をごちゃまぜにすることと
同じだと仮定する(6:00ごろ)。
そうすると、意味のない場合の差の分布が得られる。

さて、その分布の上でもともとの差が得られる
確率はどれくらいだろうか。
もしその確率が有意水準以下なら、
要因に意味はないという仮説が棄却される...
というロジック（らしい）

## Rのデフォルト関数

```r=
# options(scipen = 999)は小数点の表示を変更
> 0.1**10
[1] 1e-10
> options(scipen = 0)
> 0.1**10
[1] 1e-10
> options(scipen = 999)
> 0.1**10
[1] 0.0000000001

# require は読み込んだあとにbooleanを返す
> require(tidyverse)==TRUE
[1] TRUE
> library(tidyverse)==TRUE
 [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
[13] FALSE FALSE FALSE FALSE

# as 関数: 中身の型を変える
> as.character(c(1,2))
[1] "1" "2"
> as.factor(c(1,2))
[1] 1 2
Levels: 1 2

# Run Length Encoding: 何がどのくらいの長さか
> rle(c(1,1,0,0,1))
Run Length Encoding
  lengths: int [1:3] 2 2 1
  values : num [1:3] 1 0 1
  
# Trueになるindexを返す
> which(c(0,1,1,0,1)!=0)
[1] 2 3 5

```

## Tidyverse関連の関数