いい加減時代の潮流に乗ろうということで機械学習を学びたいと思う。またRはともかくとしてPythonは未経験であるため、丁度良い書籍として
を用いることにする。
1. 線形回帰
1.5 の分布
1.5.2 決定係数
にを代入したものの分布を導くことにする。
その前にの性質を考える。
である。更にとおくとき、
である。
( であるから、
が成り立つ。
またについても同様に
次にであるから、の各列がの像の基底を成し、の固有値の固有ベクトルである。の像の次元がであるから、その核の次元はである。
更に任意のについておよび
が成り立つため、とで固有値の固有空間が入れ替わる。 )
1.5.3 RSSの分布(続き)
について
と実対称行列である。したがってある直交行列が存在しそれを用いて対角行列
を構築できる。その固有値のうち個がでそれ以外の個がであるから、対角成分の最初の個をにすることができる。またとすると、であるから、とおけば
が成り立つ。またの最初の個の成分のみからなるベクトルをとおけば、
である。またを対角成分の最初の個が、残り個がであるような対角行列として
であるから、である。
したがって
が成り立つ。
1.5.4 カイ二乗分布の確率密度
1.6 の仮説検定
の仮説検定、すなわち
を考える。
およびが固定されているとして
が得られる。
#################### ### 推定のテスト ### #################### library("ggplot2") # テスト回数の設定 num_test <- 1000 # テスト結果を格納 df_results <- data.frame(matrix(NA, nrow = num_test, ncol = 2)) colnames(df_results) <- c("beta_0","beta_1") # テストの試行 for(i in 1:num_test){ # 乱数シードの設定 set.seed(i) # 標本数の設定 num_samples <- 1000 # 観測値の生成 vc_x_obs <- rnorm(num_samples, mean = 2, sd = 1) vc_res <- rnorm(num_samples, mean = 0, sd = 1) # 母数の真の値 num_beta_0 <- 1 num_beta_1 <- 1 # y = 1 + x + e というモデルを考える vc_y <- num_beta_0 + num_beta_0 * vc_x_obs + vc_res # モデルの指定 frml_model <- formula(vc_y~vc_x_obs) # 推定 lst_lm <- lm(formula = frml_model,data = data.frame(vc_x_obs,vc_y)) df_results[i,] <- lst_lm$coefficients } # g <- ggplot(data = df_results,aes(x = beta_0, y = beta_1)) + geom_point() g <- g + theme_bw(base_family = "") + labs(x = expression(beta[0]),y = expression(beta[1]),color = "") g <- g + theme(plot.title = element_text(hjust = 0.5),legend.position = "none", legend.title=element_text(size = 7), legend.text=element_text(size = 6)) g <- g + xlim(num_beta_0*c(0.7,1.3)) + ylim(num_beta_1*c(0.7,1.3)) g
のプロット(*上記の実行結果)