R統計解析パーフェクトマスター(R4完全対応)[統計&機械学習第2版]

書籍情報

発売日 : 2022年09月27日

著者/編集 : 金城俊哉

出版社 : 秀和システム

発行形態 : 単行本

書籍説明

内容紹介

統計や機械学習の数式が無理なく組める!統計解析やってみるなら、Rが断然オススメ!言語仕様と分析手法が同時に学べる!

目次

Chapter 1 Rと統計学
 1.1 データマイニングの時代だ
  1.1.1 データマイニングをすると何がトクなの?
   データマイニングで成功をつかむ
   データマイニングと統計学
  1.1.2 データマイニングのためのツール
   Rって言語? それともツール?
   Rのイイところ
   Rにはプログラミングするからこそのよさがあります
 1.2 RとRStudioをインストールしよう
  Memo Rのインストール(Macの場合)
  1.2.1 Rをインストールし、続けてRStudioをインストールする
   Rのダウンロードとインストール
   Rを起動してみる
   RStudioのダウンロードとインストール
  Memo Macでのインストール手順
  1.2.2 RStudioの起動と終了
   RStudioの起動
   RStudioの終了
  1.2.3 RStudioの設定
   ホームディレクトリの設定
   作業ディレクトリの設定

Chapter 2 Rの基本(RStudioの操作と基本プログラミング)
 2.1 RStudioでプログラムを実行する2つの方法(コンソールとソースファイル)
  2.1.1 RStudioを関数電卓みたいに使う(コンソールを利用したプログラムの実行)
   計算を行うソースコードを入力してその場で結果(答え)を見る
   ソースコードは1文単位で実行
   処理結果は1行に収まらなければ複数の行にまたがって表示される
  2.1.2 ソースファイルにコードを書いて実行する
  Memo [History]ビュー
   ソースファイルの保存
   ソースファイルを開く
  2.1.3 プロジェクトの作成
   プロジェクトを作成する
   プロジェクトを開く
 2.2 Rの基本(データ操作)
  2.2.1 Rでデータを扱うときは「変数(オブジェクト)」が基本
   とっておきたい値には名前を付けよう
   別の値に同じオブジェクト名を付ける
  2.2.2 データのかたち(データ型)
   Rのデータ型は大きく分けて2つ
  2.2.3 データ操作のキホン、ベクトルを使いこなそう
   ベクトルの作成
   ベクトル要素の取り出しと置き換え
   ベクトルの結合と挿入
   ベクトルの要素に名前を付ける
   ベクトル同士の演算
  Memo 規則性のあるベクトルの作成
  Hint データ型が何かを調べる
  2.2.4 データ型の変換
   関数を使ってデータ型を変換する
  2.2.5 リスト
   リストの要素を取り出す
   リスト要素のベクトルの要素を取り出す
   リスト要素を「名前=値」のペアで管理する
  2.2.6 行列(マトリックス)
   行列は(行,列)の集計表
  Hint 配列
  2.2.7 データフレーム
   データフレームの作成
  Memo コメントについて
   データフレームから列や行のデータを取り出す
   外部ファイルのデータをデータフレームに取り込む
   タブ区切りのテキストファイルをデータフレームに読み込んでみよう
  Tips Excelのデータをクリップボード経由で読み込む
 2.3 プログラムの制御と関数(制御構造と関数)
  2.3.1 「もしも」で処理を分ける(ifステートメント)
   ifステートメントの書き方
   「そうでなければ」を実行するelse if/else
  2.3.2 同じ処理を繰り返す(forステートメント)
   指定した回数だけ処理を繰り返す
  2.3.3 決まった処理に名前を付けて呼び出せるようにしよう(関数の作成)
   処理だけを行う関数
   引数を受け取る関数
   戻り値を返す関数
   作成した関数を他のソースファイルから実行できるようにしよう
  Memo RStudio

Chapter 3 データの全体像を解析する(代表値)
 3.1 データをならして出てくる代表値(平均)
  3.1.1 平均を求める
   平均値を求める式
 3.2 データの分布を棒グラフで見やすくしよう(ヒストグラム)
  3.2.1 度数分布表筐。ヒストグラムの作成こそが統計の第一歩
   ヒストグラムは「階級の幅」を決めて「階級」を作る
 3.3 階級幅を独自に指定したヒストグラムを作る
  3.3.1 階級幅や棒グラフの色を指定してヒストグラムを作成する
   最小値と最大値を調べてヒストグラムの下限値と上限値を決定する(手順①~②)
   ヒストグラムの作成(手順③)
   コードを入力してヒストグラムを作成してみる
  Memo 階級の幅
   ヒストグラムの山は1つか2つ以上か
 3.4 度数分布表から相対度数分布表を作る
  3.4.1 相対度数分布表を作る
   度数分布表を作成し、これをもとに相対度数分布表を作成する
   相対度数を棒グラフにしてみる
   相対度数分布表を作成する関数を定義する
 3.5 平均の足を引っ張るデータを除外する(トリム平均)
  3.5.1 平均は真ん中くらいの値ではなかった
   mean()関数のオプションを使って「トリム平均」を求める
 3.6 しっくりこないならど真ん中の値を見付けよう(中央値)
  3.6.1 平均とは違う、データの「ど真ん中」の値
   散らばったデータのど真ん中を指す中央値
   summary()関数で最大、最小、平均、中央値をまとめて調べる

Chapter 4 データのバラツキ具合を知る(偏差、分散、標準偏差)
 4.1 データのバラツキ具合を数字で表す(偏差、分散)
  Memo 分散と不偏分散
  4.1.1 個々のデータの平均との差を調べて全体の散らばり具合を知る
   平均からどのくらい離れているのかを表すのが「偏差」
   偏差を求める
  4.1.2 偏差を2乗した「偏差平均」を平均して「分散」を求める
   偏差平方の平均が「分散」
  Hint データに手を加えると平均、分散はどうなる?
 4.2 そのデータは「優秀」なのかそれとも「普通」?(標準偏差)
  Memo 平均や分散、標準偏差の記号について
  4.2.1 新規オープン店の売上数は突出しているのか
   分散をデータの単位に戻して比較できるようにする
  4.2.2 データの特殊性を「標準化」した数値で表す
   商品Aと商品Bの販売数をすべて標準化する
  Memo 平方根について
 4.3 来客数が平均より多いのは「繁盛」しているといえるか
  4.3.1 標準偏差を「尺度」にする
   来客数の標準偏差と標準化係数を求める
  4.3.2 データの偏差が標準偏差の±1個ぶんの範囲内であれば平凡なデータだと判断できる
   標準化係数でデータの特殊性を知る
   標準化した値の平均は0で標準偏差は1
 4.4 来店者の数が上位5%に入る日を調べる
  4.4.1 正規分布のグラフの形は平均と標準偏差で決まる
   標準正規分布のグラフ
   確率密度関数
  4.4.2 標準正規分布のグラフ中の区切られた領域がデータの出現率を表す
   標準正規分布の数表をRで作成してみる
   Rで標準正規分布の数表を作成する
   標準正規分布の数表の見方
  4.4.3 上位5%に入る来店者数を見付けよう
   標準正規分布の数表を使って上位5%の区間面積に対するxの値を求めよう

Chapter 5 正規分布するデータを解析する
 5.1 売上の平均が38万円のとき45万円以上売上げる確率は?
  Hint 数学定数の「ネイピア数」
  5.1.1 標準正規分布ではないふつうの分布は「一般正規分布」
   正規分布をσ=1、μ=0に換算して標準正規分布にする
   正規分布のxを求める確率密度関数f(x)
   Onepoint ××万円以上○○万円以下の売上が発生する確率は?
  5.1.2 売上が40万円以上になる確率を求めてみよう
   30万~60万円を5万円刻みにして、それぞれの累積確率を求める
 5.2 偏差値の仕組み
  5.2.1 標準化した値を10倍にして50を足すのは何のためか
   偏差値を求めてみる
  5.2.2 標準偏差を用いた合格判定の仕組み
   平均と標準偏差、あとはデータの数で合否を推測する
 5.3 バラバラに分布するデータを正規分布に近似する(大数の法則)
  5.3.1 1000人ぶんのサンプルで10万人ぶんの相対度数分布グラフが描かれる
   10万人の中から1人ずつ選んで1000回計測したらどうなる?(復元抽出)
   非復元抽出と復元抽出
  Hint 相対度数分布グラフはなぜ曲線の山の形をしている?
 5.4 正規分布の再生性
  5.4.1 正規分布は2つを重ねても分布の形が保存される
   正規分布の再生性
  Memo 「大数の法則」でサンプルの相対度数分布が母集団のデータとぴったり一致!
  Memo 中心極限定理
 5.5 ピンポイントでズバリ当てる(点推定)
  5.5.1 母集団と標本
   全数調査と標本調査
   無作為抽出(ランダムサンプリング)
  5.5.2 ピンポイントで推定する
   最尤法による推定
   不偏推定量による推定
   点推定の結果を見る
 5.6 サイコロを振ると1の目が出る確率は?
  5.6.1 確率変数とその定義
   偶数の目が出る確率は
  Hint 離散と連続の違いは?
   確率の定義
   離散型一様分布の確率質量関数
   サイコロを振ると本当に6分の1の確率で各目が出るのか
 5.7 「標本平均の平均」をとると母平均にかなり近くなる
  5.7.1 母集団から5個のサンプルをランダムに抽出する
   sample()関数によるランダムサンプリング
   母集団の平均と標本の平均
   標本分布で推定するときのポイント2つ
  5.7.2 標本分布が母集団の本当の値を中心として分布しているか
   標本平均の数が大きくなると標本分布が正規分布に近くなっていく
   標本平均の分散と標準誤差を確認する
  5.7.3 サンプルサイズを大きくすると標準誤差は本当に小さくなるのか
   サンプルサイズを5から20にする
 5.8 データ全体の散らばりと標本平均の散らばり
  5.8.1 標本平均の分散を調べる
   標本平均の分散と母分散の関係を調べる
 5.9 標本分散の平均
  5.9.1 標本分散の代わりに不偏分散を推定値として使う
   標本分散と不偏分散のそれぞれの平均を母分散と比較する
   母集団と標本の関係のまとめ

Chapter 6 手持ちのデータで全体を知る(標本と母集団)
 6.1 大標本を使って全体の平均を予測する(z値を用いた区間推定)
  6.1.1 降水確率に見る区間推定の考え方
   区間推定の考え方
   信頼区間と信頼度
  Memo 信頼度95%の区間推定
  6.1.2 信頼度95%で母平均を区間推定する
   大標本(サンプルサイズ30以上)の信頼区間
   母平均の信頼区間の関係式を導く
   サンプルサイズ50で母平均を区間推定する
 6.2 小標本を使って全体の平均を予測する(t値を用いた区間推定)
  6.2.1 小標本による平均値の推定
   小標本の平均と分散を用いて母平均の信頼区間を求める
   Onepoint 自由度
  6.2.2 信頼度95%で母平均を区間推定する
   小標本による区間推定の結果
 6.3 母集団のデータの比率を区間推定する
  6.3.1 二項分布の確率理論を用いて母集団の割合を推定する
   離散型の代表的かつ重要な確率分布である「二項分布」
   二項分布の試行回数を無限大にすると正規分布になる
  Memo 順序を考慮する場合の数は「順列」
  6.3.2 母集団の「比率」を区間推定する
   母比率を95%の信頼度で区間推定する
   支持率45%と47%に「差はある」のか
  Hint 自由度が30を超えると標準正規分布とほぼ同じになる
  Memo 階乗

Chapter 7 独立性の検定と2つの平均の比較(χ2検定、t検定)
 7.1 2つのデータの独立性の検定(カイ二乗検定)
  7.1.1 データの分布を検証するカイ二乗検定
   サイコロを投げて1から6までの目が出る確率
   サイコロ投げの結果をカイ二乗検定で調べる
   検定に使用する検定統計量を求める式
   自由度
   サイコロ投げ12回の試行結果をχ2検定する
   χ2検定を行う手順
  Memo 対立仮説と帰無仮説
  Memo 有意水準
  7.1.2 A店とB店のデータ分布は同じかどうかを判断する
   「差はない」という帰無仮説を立ててχ2検定を実施
   A店とB店の売上に差はあるのか
 7.2 独立した2群の差のt検定①
   (分散が等質と仮定できる場合のt検定)
  7.2.1 独立した2群における3つのt検定
   独立した2群のt検定
  7.2.2 スチューデントのt検定で母平均を検定する
   検定に使用する検定統計量tの求め方
  Hint σ2を求める式について
  7.2.3 検定統計量と有意水準5%のt値を求める
   ライバル店の平均点との差はあるのか
   p値を求めてt検定を行う
   t.test()関数で検定統計量tを求める
 7.3 独立した2群の差のt検定②
   (分散が等しいと仮定できない場合のウェルチのt検定)
  7.3.1 ウェルチのt検定で、母分散が等しくない2群の平均を検定する
   独立した2群の分散が等しいことを前提にしないウェルチのt検定
  7.3.2 ウェルチのt検定を実施する
  Hint t検定のデフォルトはウェルチのt検定
 7.4 対応のある2群の差のt検定
  7.4.1 対応のある2群の差のt検定は変化量(変量の差)の平均値の検定になる
   検定統計量tの式
  7.4.2 検定を実施して平均に差があるのかを判定する
   検定統計量の実現値を求める
   平均体重の変化に統計的な差は認められるのか
   p値を求めてt検定を行う
   t.test()関数で検定統計量tの実現値を求める
  Memo RStudioの[Packages]ビュー

Chapter 8 3つの平均値が同じ土俵で比較できるか調べる(t検定が使えない場合の分散分析)
 8.1 1要因の分散分析①(対応なし)
  8.1.1 t検定は3つ以上の平均の差の検定には使えない
   t検定が3つ以上の平均の差の検定に使えない理由
  8.1.2 3つの平均に差があるかを分散分析で調べる
   分散分析に使用する検定統計量
  Memo 分散分析
  Tips 分子の自由度6、分母の自由度18のF分布をグラフにする
  8.1.3 1要因の分散分析(対応なし)を実施する
   分散分析のためのデータを用意する
   oneway.test()関数で検定統計量とp値を求める
   aov()関数で検定統計量の実現値とp値を求める
   anova()関数で検定統計量の実現値とp値を求める
  8.1.4 分散分析を理解する
   「群間のズレ」と「群内のズレ」
   標本平均間のズレと標本内部のデータのズレを見る
  8.1.5 多重比較(Tukeyの方法)
   RのTukeyHSD()関数で多重比較を行ってみる
 8.2 1要因の分散分析②(対応あり)
  8.2.1 対応がある1要因の分散分析の実施
   分散分析の実施
  8.2.2 対応ありとなしで違いが出たのはなぜ?
   対応なしと対応ありによる違いを見る
   平方和を分解して自由度を計算してみよう
 8.3 2要因の分散分析①(2要因とも対応なし)
  8.3.1 主効果と交互に作用する効果
   主効果と交互作用効果について
  8.3.2 2要因の分散分析(対応なし)を実施する
   2要因の分散分析(対応なし)の実施
   帰無仮説の棄却/採択の決定
   交互作用効果を確認する
 8.4 2要因の分散分析②(2要因とも対応あり)
  8.4.1 2要因の分散分析(対応あり)を実施する
   2要因の分散分析(対応あり)の実施
   Onepoint 2要因の分散分析(対応あり)を行ったあとは
 8.5 2要因の分散分析③(1要因のみ対応あり)
  8.5.1 2要因の分散分析(1要因のみ対応あり)を実施する
   2要因の分散分析(1要因のみ対応あり)の実施
   帰無仮説の棄却/採択の決定
  Hint 帰無仮説と対立仮説

Chapter 9 回帰分析で未来を知る(単回帰分析と重回帰分析)
 9.1 清涼飲料水の売上と気温の関係(相関関係と線形単回帰分析)
  9.1.1 データ間の相関関係を分析する
   相関分析でデータ同士の関係性を数値化する
  Hint 相関分析のポイントと注意点
  9.1.2 散布図で相関関係を見る(散布図の描画)
   散布図の作成
  9.1.3 2つのデータの関係の強さを求める(相関係数の計算)
   2つのデータの相関係数を求める
  Memo シグマの記号について
  9.1.4 線形回帰分析を実行する
   回帰式における回帰係数と定数項を求める
   回帰係数と共分散の関係を見る
   Im()関数で線形回帰分析を行う
  9.1.5 最高気温が1℃上昇したときの売上数を予測する
   回帰直線を散布図上に表示してみる
   最高気温が30℃、31℃、さらに36℃のときの売上数を予測する
  Memo 回帰分析の手法
  Memo 内挿と外挿
  Tips 分析の元データと予測値、残差を一覧で表示する
 9.2 立地、面積、競合店とアンケート結果から売上を予測する
   (線形重回帰分析)
  9.2.1 重回帰分析で説明変数が複数の場合の分析を行う
   2つ以上の要因を使って予測を行う重回帰分析
   予測値を示す重回帰分析の式とは
   相関係数を確認する
  9.2.2 すべての説明変数を使って重回帰分析する
   データにあるすべての説明変数を重回帰分析にかける
   分析結果の見るべきポイントは3つ
  9.2.3 説明変数を減らしてもう一度分析する
   step()関数で説明変数を1つずつ減らした分析結果を見る
  Hint 多重共線性
   2つの説明変数を減らして重回帰分析を実行する
  9.2.4 説明変数を減らさずに変数の交互作用だけを減らして分析する
   交互作用を考慮した回帰係数を求める
   step()関数でAICが最も低い組み合わせを調べる
 9.3 急激に上昇カーブを描く普及率を予測する(非線形回帰分析)
  9.3.1 ロジスティック関数を使って非線形回帰分析をする
   非線形の回帰分析をロジスティック回帰で行う
  Tips ロジスティック回帰
  9.3.2 データにロジスティック関数を当てはめて非線形回帰分析をする
   nls()関数の関係式にロジスティック関数を指定して分析する
  9.3.3 SSlogis()関数を使って非線形回帰分析をする
   ロジスティック関数SSlogis()で曲線を割り出す
 9.4 日射量、風力、温度の値でオゾンの量を説明する
   (一般化線形モデル)
  9.4.1 一般化線形モデルの回帰分析を行うglm()関数
   一般化線形モデルとglm()関数
   関数glm()
  9.4.2 一般化線形モデルの回帰分析
   今回のケースで線形回帰分析をするとどうなる?
   glm()関数で一般化線形モデルの回帰分析を行う
 9.5 モルモットの実験データから、ビタミンCを何で与えたかを予測する
  9.5.1 ロジット関数を用いた二値分類
   ロジット関数
  9.5.2 ロジット関数で二値分類を行う
  Tips ロジット関数の逆関数はシグモイド関数

Chapter 10 クラスター分析
 10.1 バラバラに散らばるデータを統計的に整理しよう
   (階層的クラスター分析)
  10.1.1 データを統計的な考え方でグループ分けするのがクラスター分析
   階層的クラスター分析
   階層的クラスター分析のプロセス
   データ行列を作って距離行列を作る(分析のプロセス①~②)
   距離行列からコーフェン行列を作る(分析のプロセス③)
  10.1.2 階層的クラスター分析で他の方法を試してみる
   クラスタリングの過程を見てみる
  Tips 大量のデータを的確にグループ分けする

Chapter 11 Rで機械学習
 11.1 機械学習のワークフロー
   Onepoint カテゴリデータの変換
  11.1.1 機械学習を進める手順
  11.1.2 特徴量エンジニアリング(データの前処理)
  11.1.3 機械学習におけるモデルの評価方法
   MSE(平均二乗誤差)
   RMSE(平均二乗平方根誤差)
   RMSLE(対数平均二乗平方根誤差)
   MAE(平均絶対誤差)
   決定係数(R2)
  11.1.4 機械学習で用いられるアルゴリズム
 11.2 「ボストン住宅価格」の予測
  11.2.1 「Boston Housing」データセット
   Onepoint rsampleのインストール
  11.2.2 線形重回帰で住宅価格を予測する
   データを用意する
   線形重回帰分析で住宅価格を予測する
 11.3 Ridge回帰、Lasso回帰で住宅価格を予測する
  11.3.1 線形回帰の正則化
  11.3.2 リッジ回帰
  11.3.3 データを用意する処理をまとめたソースファイルを作成する
  11.3.4 リッジ回帰で予測する
  11.3.5 バリデーション
   バリデーションの手法
   Onepoint glmnetのインストール
  11.3.6 ラッソ回帰
  11.3.7 ラッソ回帰で住宅価格の中央値を予測する
  11.3.8 エラスティックネット
  11.3.9 エラスティックネットで住宅価格の中央値を予測する
 11.4 線形サポートベクター回帰
  11.4.1 サポートベクター回帰
   線形サポートベクター回帰
  11.4.2 サポートベクター回帰で住宅価格の中央値を予測する
  Memo サポートベクターマシンのカーネル
   Onepoint kernlabのインストール
 11.5 ランダムフォレスト回帰
  11.5.1 決定木とランダムフォレスト回帰
   「決定木」というアルゴリズム
   ランダムフォレスト
  11.5.2 ランダムフォレスト回帰で住宅価格の中央値を予測する
   Onepoint randomForestのインストール
 11.6 「Wine Quality」データセットを利用した分類
  11.6.1 「Wine Quality」データセット
 11.7 サポートベクターマシンによる分類
  11.7.1 サポートベクターマシンによる分類
   マージンとサポートベクターによる分類
  11.7.2 サポートベクターマシンでワインの評価を分類する
 11.8 「決定木」による分類
  11.8.1 「決定木」による分類
  11.8.2 「決定木」でワインの評価を分類する
  Memo 勾配ブースティング
 11.9 ランダムフォレストによる分類
  11.9.1 ランダムフォレストによるワインの分類
 11.10 ニューラルネットワークによる分類
  11.10.1 ニューラルネットワークによる分類
   ニューラルネットワークのニューロン
   学習するということは、重み・バイアスを適切な値に更新するということ
   順方向で出力し、間違いがあれば逆方向に向かって修正して1回の学習を終える
   Onepoint 多クラス分類
   ニューラルネットワークにおける順伝播処理
   勾配降下法によるパラメーターの更新処理
   勾配降下法の考え方
   バックプロパゲーションの処理
   Onepoint NeuralNetToolsのインストール
  11.10.2 ニューラルネットワークでワインの評価を分類する

Appendix 資料
 1 関数リファレンス
  統計分析に関連する関数
  数値の処理を行う関数
  ベクトルの処理を行う関数
  データフレームの処理を行う関数
  グラフ関係の関数
 2 統計用語集
 3 用語索引

著者情報

金城, 俊哉
金城俊哉