Rで統計をするための備忘録

More than 1 year has passed since last update.

※メモしたいことが増え次第追記


桁数を指定

# 桁数指定

> format(0.3456789, digits = 2)
[1] "0.35"

# 百分率表記
> sprintf("%1.2f", 0.123456 * 100)
[1] "12.35"


列の入替え

> df

A C B
1 1 3 2

> df[,c(1,3,2)]
A B C
1 1 2 3

R:データフレームの列を入れ替える・削除する。


plotされる図で日本語が文字化け回避

# フォントをHirakakuProN-W3に設定

> par(family = "HiraKakuProN-W3")


描画関連


誤差バーを追加

# (x, y)の点に対してyに標準偏差をプロット

arrows(x, y - stddev, x, y + stddev, code = 3, length = 0.02, angle = 90)


y = xの線をプロット

abline(0, 1, lty = 2)


凡例を追加

legend("topleft", lty = rep(1, 6), legend=labels, col = palette()[-1])


乱数の生成

# 5つの乱数生成

> runif(5) # デフォルトでは0~1
[1] 0.7698414 0.4976992 0.7176185 0.9919061 0.3800352

# 0~10の間で乱数生成
> runif(5, min = 0, max = 10)
[1] 7.774452 9.347052 2.121425 6.516738 1.255551

# シードの固定(同じ乱数を出力する)
> set.seed(1); runif(5)
[1] 0.2655087 0.3721239 0.5728534 0.9082078 0.2016819


分布関数から値の取得


確率分布と乱数に関する使い方

用途
関数名
説明

確率密度(pdf: probably density function)
dxxx(q)
qは確率点を表す

累積分布(cdf: cumulative distribution function)
pxxx(q)

確率点(qauntile)
qxxx(p)

乱数(random)
rxxx(p)


Rに用意されてる主要な確率分布

分布名
コード名
パラメータ

ベータ分布
beta

二項分布
binom
n: 事象が起きる回数, size:試行回数, prob:事象が起きる確率

コーシー分布
cauchy

χ二乗分布
chisq

指数分布
exp

F分布
f

ガンマ分布
gamma

幾何分布
geom

超幾何分布
hyper

対数正規分布
lnorm

ロジスティック分布
logis

多項分布
multinom

負の2項分布
nbinom

正規分布
norm

ポアソン分布
pois

t分布
t

一様分布
unif
min:最小値, max:最大値

参考:確率分布と乱数


離散値から累積密度関数と累積確率の算出

累積分布関数$F$は「確率変数$X$がある値$x$以下($X \le x$)の値となる確率」を表す関数

$$

F(x) = P(X \le x)

$$

# 正規分布からサンプリング

> sample <- rnorm(100)

# 確率密度でヒストグラムを描画
> hist(sample, freq = F)

# 確率密度の曲線描画
> lines(density(sample))

# 累積確率関数の生成
> ecdf.sample <- ecdf(sample)

# 1.5以下の累積確率
> ecdf.sample(1.5)
[1] 0.93

# 累積確率の閾値描画

Rplot01.png