平均・分散から始める一般化線形モデル入門:サポートページ

最終更新:2017年7月18日

2015年7月15日に、本サイトの管理人が著しました『平均・分散から始める一般化線形モデル入門』という本が発売されます。
統計学基礎から一般化線形モデル(GLM)までを、データ解析環境「R」を併用して説明した入門書となります。
ここではその書籍の情報を記載します。

2017年7月1日:重版しました New

購入される場合は、出版社さんに直接依頼するのが最も確実です
プレアデス出版
出版社さんに教えていただいたのですが、このサイトから申し込みをすると、翌日にはゆうメール便(送料サービス、代金後払い)で発送されるため、一番早くお届けできるということでした。

下記Amazonリンクからも購入が可能です(ただしAmazonさんは在庫が少なめです)。



平均・分散から始める一般化線形モデル入門


本文の第1部はこちらから読めます。

 

たとえAmazonに在庫がなくても、出版社にはまだ在庫が残っておりますので、書店で取り寄せていただくと確実にお手元に届くかと思います。
お手数をおかけして申し訳ありません。

以下のネット書店も併せてご利用ください。









 

★重要なお知らせ★
本第1部3章「Rの簡単な使い方」において載っていましたCRAN筑波大学ミラーサイトが6月で閉鎖されてしまいました。
Rは統計数理研究所のミラーサイトhttp://cran.ism.ac.jp/からダウンロードしてください。
お手数をおかけして申し訳ありません。

 

 基本情報

・出版社  : プレアデス出版
・著者   : 馬場真哉(このサイト、Logics of Blueの管理人です)
・タイトル : 平均・分散から始める一般化線形モデル入門
・ISBN番号 : 978-4-903814-74-2

発売は2015年7月15日を予定しています。
(一部では14日午後から書店に並びます)

 

書籍の内容

初学者を対象とした統計学の入門書です。
「統計学」の入門書ではありますが、現代において「統計モデル」という考えを用いずに解析を行うことは困難です。
そのため、一般化線形モデルの理解をひとまずのゴールと定めた入門書を執筆しました。

本書の第1部(統計学の基礎と検定の考え方)に関しては、ウェブ上に全文を公開しています。
こちらから閲覧可能です。
プレアデス出版、麻畑様のご厚意に感謝いたします。

詳細な目次のPDFファイルはこちらからダウンロードできます。
逆引きR関数、及び索引はこちらからダウンロードできます。

節を除いた簡易版の目次を以下に記します。

目次
まえがき i
本書の構成 ii
第1部 統計学の基礎と検定の考え方 1
‐1章 t検定(数式なし) 2
‐2章 t検定(数式あり) 13
‐3章 Rの簡単な使い方 24
第2部 統計モデル基礎:正規線形モデル 36
‐1章 分散分析(ANOVA) 37
‐2章 統計モデルから見た分散分析 53
‐3章 回帰分析 68
‐4章 正規線形モデル 91
第3部 正規線形モデルによるデータ解析 107
‐1章 Type II ANOVAとモデル選択 108
‐2章 Type II ANOVAの応用 118
第4部 確率と統計データ 137
‐1章 確率変数 138
‐2章 データが得られるプロセス 144
‐3章 データを解析するプロセス 150
第5部 確率分布と統計モデル 154
‐1章 確率密度関数 155
‐2章 正規分布 160
‐3章 統計モデルと確率分布 180
‐4章 パラメトリックブートストラップ検定 186
‐5章 正規分布から派生した確率分布 204
第6部 一般化線形モデル 216
‐1章 一般化線形モデルの長所
‐2章 尤度と最尤法 218
‐3章 一般化線形モデルの推定 227
‐4章 Devianceと尤度比検定 243
第7部 一般化線形モデルによるデータ解析 258
‐1章 ロジスティック回帰 259
‐2章 交互作用 277
‐3章 分割表に対するGLM(対数線形モデル) 285
‐4章 ゼロ切断モデル 297
第8部 情報理論と統計学 307
‐1章 AICの考え方 308
‐2章 AICを用いたデータ解析 310
‐3章 AICと相対エントロピー 320
目次をみればわかるように、平均や分散といった統計基礎から順を追って、一般化線形モデル(GLM)まで解説をします。

あくまでも初学者むきに書かれた入門書ですので、厳密性よりも分かりやすさを優先している点は、ご容赦ください。

 

書籍の特徴

●本書で学べる内容

1.平均値や分散といった「統計基礎」から「一般化線形モデル(GLM)」という応用までを体形的に学ぶことができる
2.目次が非常に細かいため、GLMへ至る流れを俯瞰しやすい
3.逆引きR関数を合わせて載せている。GLMだけでなく、Rの基礎も合わせて学ぶことができる

 

●本書に記述がないこと

1.一般化線形混合モデルや状態空間モデルといった複雑なモデルの解説
2.サンプリング理論
3.ベイズ統計

R言語に関しては、あくまでも初学者が読むことを想定して、ggplotなど比較的高度と思われる内容に関しては割愛しています。
初学者が知っておくべき必要最低限のみを伝えることを優先しました。
逆に、つまずきやすいp値や確率分布の解説には相当の紙数を割いています。

 

書籍で使用されたデータ

下記CSVファイルを保存してください(右クリック~名前を付けてリンク先を保存)。
data0_linearModel.csv
data1_typeII_anova.csv
data2_logistic.csv

Rのコードとサンプルデータをまとめたzipファイルは、下記リンクからダウンロードできます。
Rコードとデータ

 

平均・分散から始める一般化線形モデル入門:サポートページ” に対して11件のコメントがあります。

  1. 駒澤一朗 より:

    「平均・分散から始める一般化線形モデル入門」を購入させていただき、勉強させていただいております。早速ですが、274ページの焼きそばの材料費について質問があります。
    焼きそばの利益を求めるコードの「cost」の部分は容器30円と100gから300gまで1gずつ焼きそばの量を変化させた場合の「cost」だと思います。
    次に「rieki200」の部分で、売れる確率「pred200yen」に売れた時の値段200円をかけ、この値から「cost」を引いて利益を求めています。
    この部分で、「pred200yen」は「amount」を1gずつ変化させた売れる確率だと思いますが、「pred200yen」の「amount」と「cost」の「amount」がどうしてこの「rieki200」のコードで一致した値となるのか分かりません。
    長くなり、またつたない文章で恐縮ですが、教えていただけると助かります。
    よろしくお願いします。

    1. 馬場真哉 より:

      駒澤様

      コメントありがとうございます。
      また、拙著をお読みいただきありがとうございます。
      管理人の馬場です。
      返信が遅れてしまい、失礼いたしました。

      > 「pred200yen」の「amount」と「cost」の「amount」がどうしてこの「rieki200」のコードで一致した値となるのか分かりません。
      ポイントは、p272の1-10節の1つ目の囲みコードです。
      こちらで「pred200yen」を計算しています。
      このとき、「predData200yen」として、「amount」を100から300まで変化させています。
      「predData200yen」を説明変数として予測したのが「pred200yen」です。
      すなわち「pred200yen」は、「amount」を100から300まで変化させたときの予測値となっています。
      「cost」の「amount」もやはり100から300まで変化させているので、
      結果として両者の「amount」は一致します。

      参考になれば幸いです。

  2. 駒澤一朗 より:

    馬場様。
    とても丁寧にご教授いただき、ありがとうございました。
    おかげさまで理解することができました。
    取り急ぎ、お礼申し上げます。

  3. 濱崎翔吾 より:

    Logics of Blueさま

    こんにちは!
    度々のご連絡失礼いたします。
    大学理系科目をオンラインで学べる東大発サービス「Univmath」でマーケ責任者をしている濱崎と申します。

    大学数学についてブログや書籍で情報発信をされているLogics of Blueさまにぜひお話を聞いていただきたく、再度ご連絡させていただきまし
    2.3点ほど状況が変わった点がございますので、もし3分ほどお時間があればお目通しいただけると幸いです。

    【サービス概要】
    繰り返しになり大変申し訳ありませんが、
    私たちは、大学理系科目の学習ツールの少なさに悩む理系大学生向けに、オンラインで手を動かしながら学習できるサービスを構築しています。
    以前ご連絡した際より開発が進み、こちらもまだ荒削りですがデモサイトを公開いたしました。
    2~3分でご覧になれますので、お手すきの際にご確認いただけると幸いです。

    http://univmath-demo.herokuapp.com/

    【ご提案】
    Logics of Blueさまの非常にわかりやすい説明力と、高い数学力を私たちにお貸しいただけないでしょうか。
    具体的には、「線形代数」「統計」分野で、1章分のコンテンツ作成にご協力いただきたいです。
    もちろんLogics of Blueさまが得意で、ある程度メジャーな単元でお作りいただければと思います。

    【さしあたってのお願い】
    つきましては、ぜひ、ZoomでLogics of Blueさまとお話させていただきたいのですが、
    15分ほどお時間をいただけますでしょうか。
    当日は、サービス内容の詳細や謝礼金、コンテンツのご依頼の具体的な進め方についてお話できればと考えております。
    (コンテンツ作成の都合上、Logics of BlueさんがTeXというソフトを使える場合、大変助かります。
    もし使えるようであればそちらも伝えていただけると幸いですが、使っていない場合でも差し支えないです!)

    【謝礼金】
    1章あたり1000円を手付金として、最初にお支払いします。
    サービス開始後、利益が出始めた段階で1章あたり5000~10000円でコンテンツをご買取させていただければと考えております。
    この点については、お電話にて詳しく話し合えればと思います。

    Logics of Blueさまがもし少しでも興味をもっていただけたら、ご返信いただけますと幸いです!
    お忙しいことと思いますので、「よろしくお願いします」の一言でも構いません!

    ——————————————————————————————————————————
    代表:加藤
    https://twitter.com/Univmath_kato
    マーケ責任者:濱崎
    https://twitter.com/Univmath2

    1. 馬場真哉 より:

      濱崎様

      コメントありがとうございます。
      管理人の馬場です。

      > 再度ご連絡
      コメントは、7月27日が初めてのようです。
      もしかすると、前回のコメント入力に何か支障があったのかもしれません。
      ご容赦くださいませ。

      当ブログや書籍に興味を持っていただき、ありがとうございます。
      また、具体的なご提案をいただき、ありがとうございます。

      現在は他の業務で手が離せない状況でして、
      お引き受けするのが難しくなっております。
      このようなお返事となってしまい、申し訳ございません。
      せっかくのご提案ですが、ご理解のほどお願い申し上げます。

      末筆ながら、濱崎様のさらなるご活躍を、心よりお祈り申し上げます。

  4. マリスカル より:

    「平均・分散から始める一般化線形モデル入門」を購入し、勉強させて頂いております。私は初心者ですが理解しやすく、またとても面白く、楽しく勉強させていただいております。ありがとうございます。
    早速ですが、関数に関しておひとつ質問があります。御回答頂けましたら幸いです。
    Rstudio(最新版)でプログラミング実行の勉強をさしているのですが、pairs関数がエラーになってしまいます。
    pairsへ数値でない引数が与えられましたと返されてしまいます。馬場様のサイトより取得したコードでもって実行しても同じような結果です。
    RGui(64-bit)(最新版)でしてもエラーで返されてしまいます。理由がお分かりでしたら、お手隙の際御回答頂けましたら嬉しいです。

    マリスカル

    1. 馬場真哉 より:

      マリスカル様

      コメントありがとうございます。
      管理人の馬場です。

      当方でも現象を確認できました。
      関数の仕様が変わったものと思います。
      こちらは「pairs」を「plot」に変更すると、書籍と同じグラフを再現できるはずです。
      関数名を変更して実行するようお願いします。

      1. マリスカル より:

        早速のご回答、ありがとうございます。
        plotに変換して実行するとできました。ありがとうございます。
        大変申し訳ないのですが、あと2点、同じような仕様変更?で動作しない部分があります。どちらも同じ章です。
        # ボックスプロットの部分

        # ボックスプロット
        > par(mfrow=c(1,2))
        > plot(sell ~ sex, data=d5)
        plot.window(…) でエラー: 有限な ‘xlim’ の値が必要です
        追加情報: 警告メッセージ:
        1: xy.coords(x, y, xlabel, ylabel, log) で:
        強制変換により NA が生成されました
        2: min(x) で: min の引数に有限な値がありません: Inf を返します
        3: max(x) で: max の引数に有限な値がありません: -Inf を返します
        > plot(sell ~ time, data=d5)
        plot.window(…) でエラー: 有限な ‘xlim’ の値が必要です
        追加情報: 警告メッセージ:
        1: xy.coords(x, y, xlabel, ylabel, log) で:
        強制変換により NA が生成されました
        2: min(x) で: min の引数に有限な値がありません: Inf を返します
        3: max(x) で: max の引数に有限な値がありません: -Inf を返します
        > par(mfrow=c(1,1))
        >
        と返されてしまいます。
        もう一つは# 説明変数の関係性 のグラフの部分です。
        # 説明変数の関係性のグラフ
        > par(mfrow=c(1,2))
        > plot(n.sheets ~ experience, data=d5)
        > plot(sex ~ time, data=d5)
        plot.window(…) でエラー: 有限な ‘xlim’ の値が必要です
        追加情報: 警告メッセージ:
        1: xy.coords(x, y, xlabel, ylabel, log) で:
        強制変換により NA が生成されました
        2: xy.coords(x, y, xlabel, ylabel, log) で:
        強制変換により NA が生成されました
        3: min(x) で: min の引数に有限な値がありません: Inf を返します
        4: max(x) で: max の引数に有限な値がありません: -Inf を返します
        5: min(x) で: min の引数に有限な値がありません: Inf を返します
        6: max(x) で: max の引数に有限な値がありません: -Inf を返します
        > par(mfrow=c(1,1))
        >
        この様に返され、実行すると、なぜか左側のグラフしか表示されません。

        度々お尋しお手数をおかけして申し訳ございません。お手すきの際、ご回答頂けましたら幸いです。

        1. マリスカル より:

          度々申し訳ございません。もう一つあるのを失念していました。
          これは正規線形モデルの最後の部分のものになります。

          # 予測値の図示
          > lines(predMedicineYes ~ newfood, lwd = 2, lty=1)
          > lines(predMedicineNo ~ newfood, lwd = 2, lty=2)
          >
          > # 凡例
          > legend(
          + “topleft”,
          + legend = c(“薬あり”, “薬なし”),
          + pch = c(16, 1),
          + lty = c(1,2),
          + )
          > plot(
          + length ~ food,
          + data = d4,
          + pch = c(1,16)[medicine],
          + ylab = “length”,
          + xlab = “food”,
          + main = “薬の有無別、体長と餌の量の関係”,
          + cex.main = 1.5,
          + font.lab = 2
          + )
          >
          > # 予測値の図示
          > lines(predMedicineYes ~ newfood, lwd = 2, lty=1)
          > lines(predMedicineNo ~ newfood, lwd = 2, lty=2)
          >
          > # 凡例
          > legend(
          + “topleft”,
          + legend = c(“薬あり”, “薬なし”),
          + pch = c(16, 1),
          + lty = c(1,2),
          + )

          問題なく動作はするのですが、本来あるはずの薬有無別のデータが表示されず、線だけがひかれたものを表示されます。pchの部分を削除し実行すると白丸の点で表示することは出来るので、pchの部分に問題があるのかもしれません。

          図々しくいくつもご質問してしまい申し訳ありません。こちらのものと、さきほどの2点を合わせた計3点、ご回答いただけますと幸甚に存じます。

          マリスカル

        2. 馬場真哉 より:

          マリスカル様

          コメントありがとうございます。
          管理人の馬場です。
          返信が遅れてしまい、大変失礼いたしました。

          ボックスプロットは下記の通り修正してください。

          # ボックスプロット
          par(mfrow=c(1,2))
          boxplot(sell ~ sex, data=d5)
          boxplot(sell ~ time, data=d5)
          par(mfrow=c(1,1))

          説明変数同士の相関は、下記の通り修正してください。

          # 説明変数の関係性のグラフ
          par(mfrow=c(1,2))
          plot(n.sheets ~ experience, data=d5)
          mosaicplot(time ~ sex, data=d5, color=TRUE)
          par(mfrow=c(1,1))

        3. 馬場真哉 より:

          マリスカル様

          コメントありがとうございます。
          管理人の馬場です。
          返信が遅れてしまい、大変失礼いたしました。

          plot関数の引数を下記の通り修正してください。

          # 図示
          # ちょっと複雑なプロット
          plot(
          length ~ food,
          data = d4,
          pch = c(1,16)[as.factor(d4$medicine)],
          ylab = "length",
          xlab = "food",
          main = "薬の有無別、体長と餌の量の関係",
          cex.main = 1.5,
          font.lab = 2
          )

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください