【統計学】R言語まとめ2

2024/04/21に公開

背景

自分がどうしてもやりたいと思っているAIの現場に参画するために、一つずつ基礎を積み上げていく必要に迫られています。

様々な使い方

# 相関関係の出し方
集合1 <- c(...)
集合2 <- c(...)
# 相関関係の表示(散布図)
plot(集合1, 集合2)

散布図

※正の相関あり

※相関関係なし

# 共分散
sum((集合1-mean(集合1))*(集合2-mean(集合2)))/length(集合1)

# 共分散をすぐ求められる関数もある
cov(集合1, 集合2)
# ただし不偏分散により元々の値とは異なる
# 相関係数
cov(集合1, 集合2)/(sd(集合1)*sd(集合2))
# 直接相関係数も求められる
cor(集合1, 集合2)

相関の評価
-0.2 〜 0.2・・・相関関係が見られない
-0.4 〜 -0.2 or 0.2 〜 -0.4 ・・・若干相関あり
-0.7 〜 -0.4 or 0.4 〜 -0.7 ・・・まぁまぁ相関あり
-1.0 〜 -0.7 or 0.7 〜 -1.0 ・・・めっちゃ相関あり

# クロス集計の出し方
たけのこの里 <- c("好き", "嫌い", "嫌い", "嫌い","好き")
きのこの山 <- c("好き", "嫌い", "好き", "嫌い","好き")
# クロス集計表
table(たけのこの里, きのこの山)

# 先ほどの2値で好き嫌いを表していたが、それを0と1で変換するためのもの
たけのこの里の2値 <- ifelse(たけのこの里=="好き", 1, 0)

きのこの山の2値 <- ifelse(きのこの山=="好き", 1, 0)
# 2値でも相関関係は確認できる
# ファイ係数を求める
cor(たけのこの里の2値, きのこの山の2値)
# 0.6666667

まぁまぁの正の相関あり

母集団から標本を抜き出して、調査する意味
→全ての集団の全員のアンケートや調査を行ってしまうと、それだけ人件費と時間が発生してしまう。そのため、正確性を落としたとしても、少ないコストで母集団を知ろうとするために標本とみなして調査する。

# 点推定の確認
集合 <- c(...)
mean(集合)

母集団にどれだけ近しいような標本を取れるのかどうかがとても重要とのこと。またどれくらい信頼できるのかも同様。

標本を取る上で、無作為にデータを取得しているというのが、とても重要とのこと。そのため性別を分けたり、条件を指定したりしているのは良くはないとのこと。

サイコロのように確率変数で取られたデータであること。単純無作為抽出はそれを満たしているとのこと。

# サイコロの確率の確認
サイコロ <- ceiling(runif(n=6, min=0, max=6))
table(サイコロ)
# ceiling・・・小数点切り上げ
# runif・・・nは個数、minは最小の値、maxは最大の値
# 棒グラフ
# 料理教室での男女の割合
barplot(c(4/5, 1/5), names.arg=c("女性", "男性"))

curve・・・(関数の式,横軸の最小値,横軸の最大値)

dnorm()・・・・・(確率変数の値, 平均, 標準偏差)・正規分布の確率密度関数

# 無作為抽出
rnorm(n=5, mean=50, sd=10)
# 格納先を用意
格納先 <- numeric(length=100000)

# for文でループ
for(i in 1:100000) {
  標本 <- rnorm(n=10, mean=50, sd=10)
  格納先[i] <- mean(標本)
}
hist(格納先)
hist(格納先, breaks=seq(0, 500, 10))
# breaks=seq(0, 500, 10)・・・ヒストグラムの横軸を0から500まで10間隔で刻む

Discussion