2023.11.30作成  2024.2.8更新

これから研究を始める高校生と指導教員のために 第2版
探究活動と課題研究の進め方・論文の書き方・口頭とポスター発表の仕方
(これ研)

副読文書

VIII-5. 一般化線形モデル入門
1種類のデータにおけるデータ分布の偏りの解析
条件の変化の影響を見ない場合
ミドリムシの走光性の解析
  (「これ研」の本文の第3部3.3.3項;p. 96)

私のサイトでの本書紹介文

共立出版の本書紹介サイト ご購入もこちらからどうぞ

 「これから研究を始める高校生と指導教員のために 第2版;探究活動と課題研究の進め方・論文の書き方・口頭とポスター発表の仕方」(これ研)の第3部6.6節「一般化線形モデルの奨め」(p. 133)で紹介している一般化線形モデルを解説します。本章では、1種類のデータを対象に、そのデータ分布に偏りがあるのかどうかの解析の仕方を説明します。ミドリムシの走光性実験で、明るい方と暗い方のどちらに移動するのかの検定を例に用います(「これ研」の本文第3部3.3.3項;p. 96)。「これ研」の第3部第6章「検定に挑戦しよう」(p. 118)を読み、検定とは何かを理解しておいて下さい。

  1. 解析に用いるcsvファイルのRへの読み込み
  2. 一般化線形モデルによる解析
    1. 確率分布は二項分布(binomial)に、連結関数はS字(logit)に
    2. 本解析における説明変数
    3. 一般化線形モデルの実行
  3. 作図

 RStudioを起動して下さい。起動方法の詳しい説明は、RStusioの起動の仕方を参照して下さい。そして、作業ディレクトリを指定します。

作業ディレクトリの指定

setwd("/Users/sakai/Documents/書籍等原稿/これ研2版/課題研究解析")

# あなたの作業ディレクトリの位置を""で囲んで書きます。

# この命令文を実行しておきます。

# 作業ディレクトリの指定

 作図にはtidyverseを用います。tidyverseをインストールしてありますか? まだならば、下記の説明に従ってインストールして下さい。

tidyverseのRへのインストール

install.packages("tidyverse")

# RStudioを起動しこの命令文を実行します。tidyverseを""で囲みます。「作図の準備」も参照して下さい。

インストールしたらtidyverseをRに読み込みます。

tidyverseのRへの読み込み

library(tidyverse)

# RStudioでこの命令文を実行しておきます。tidyverseを""で囲みません。Rstudio起動後、一度だけ実行すればよいです。Rstudioを終了して再び起動したときは再実行する必要があります。

 解析では、データフレームの中の特定のデータ列を指定することを行います。指定の方法です。

データフレームの中の特定のデータ列の指定方法

データフレーム名$データ列名

# データフレーム名を書き、$を挟んで、指定したいデータ列名を書きます。

# 実行例

d$Angle.degree
d$Flying.distance.m

# データフレームdに入っているデータ列Angle.degree, flying.distance.mを指定します。

このページの文頭に戻る

1. 解析に用いるcsvファイルのRへの読み込み

 csvファイル「Light.csv」(画面1)に、ミドリムシの走光性実験の結果が入っています(架空データです)。Experiment.numberが実験番号(10回行った内の何回目か)、Lightが、明るい方に行った個体数、Darkが、暗い方に行った個体数です。このcsvファイルのデータを使って解析と作図を行います。

画面1
このデータのcsvファイルのダウンロード

csvファイルをダウンロードして、あなたの作業ディレクトリに入れて下さい(「作業ディレクトリの指定」を参照)。

 ご自身のデータを用いる場合は、そのデータが入ったcsvファイルを作業ディレクトリに入れて下さい。Excelで作ったファイルをcsvファイルに変換する方法は、Excelで作った解析用ファイルのcsv形式での保存を参照して下さい。

 csvファイルをRに読み込み、データフレームに格納します。

csvファイルのRへの読み込み

d <- read.csv("Light.csv")

# csvファイル「Light.csv」を読み込んでデータフレームdに格納します。ファイル名を""で囲みます。ファイル名の拡張子「.csv」も忘れずに書きます。

# データフレームの名称(この例ではd)はお好みのものでよいです。

# Excelで作った解析用ファイルのRへの読み込み

このページの文頭に戻る

2. 一般化線形モデルによる解析

 一般化線形モデル実行の手順に従って一般化線形モデルを実行します。

2.1. 確率分布は二項分布(binomial)に、連結関数はS字(logit)に

 本解析の場合、確率分布は二項分布(binomial)を、連結関数はS字(logit)を必ず指定します。

 確率分布が二項分布なのは明白です(確率分布とはを参照)。本解析における応答変数yは、明るい方(または暗い方)に移動する確率です。そして、明るい方に移動する確率をyとし、暗い方に移動する確率を1-yとしたときのyの値を解析します。これはまさに二項分布です。

 連結関数がS字なのは、応答変数であるyが確率であるため0以上1以下の値しか取らないからです(説明変数の値と応答変数の平均値の関係性:連結関数を用いた解析を参照)。連結関数がS字の場合、

y = eax + b/(1 + eax + b)

という関係になっています。説明変数であるax + bは、原理的には− ∞から∞の値を取りえます。ax + bが− ∞に近づくほどeax + bは0に近づき、そのためyも0に近づきます。しかし、0を下回ることはありません。かたや、ax + bが無限大に近づくほどyは1に近づきます。こちらも、1を超えることはありません。このようにS字は、応答変数が確率のときにぴったりな連結関数です。

このページの文頭に戻る

2.2. 本解析における説明変数

 本解析における説明変数はちょっと変わっています。データとしてあるのは、ある1つの条件の下でミドリムシの移動方向を実験した結果だけです。条件を変えると移動方向が変わるのかどうかを見ているわけではありません。

 これに対してこれまでの解析では、ペットボトルロケットの発射角度に依存した飛行距離の変化や、メダカにおける、体長の違いに依存した産卵数の違いなどを調べていました。発射角度・体長(説明変数)という条件の変化に対する応答変数の反応を解析したわけです。条件の変化は、説明変数ax + bのaxに現れます。xの値が変化すると応答変数がどのように応答するのかを解析するわけです。

 かたや、1つの条件下でのデータしか無い場合は、説明変数が、その1つの条件のみの状態である解析となります。axという、条件に応じた変化の部分は存在しません。つまり説明変数は、ax + bではなくただのbです。切片しかない説明変数ということです。連結関数はS字ですので、

y = eb/(1 + eb)

となります。切片bの値が、その1つの条件の影響を表します。

 解析では、切片bの値が0から有意に異なるのかどうかを検定します。b = 0の場合、

y = 1/2

です。明るい方と暗い方のどちらにも偏らず1/2の確率で移動するということです。bが0から有意に異なっていれば、どちらかに偏って移動すると判定できます。

2.3. 一般化線形モデルの実行

 一般化線形モデルの命令文を実行します。一般化線形モデルの命令文の実行の説明を読んで下さい。1. 一般化線形モデルの命令文のみを実行します。

1. 一般化線形モデルの命令文の実行

r <- glm(formula = cbind(Light, Dark) ~ 1, family = binomial(link = logit), data = d)
summary(r)

# 一般化線形モデルの命令文を実行して、その結果をデータフレームrに格納します。

# 解析するデータフレーム;d
# 応答変数;移動方向(cbind(Light, Dark))。データ列Lightに明るい方へ移動した個体数が、データ列Darkに暗い方へ移動した個体数が入っています。cbindを使って、各実験回における、(明るい方に移動した個体数, 暗い方に移動した個体数)という組合せからなるデータを作ります。
# 説明変数;その実験条件。条件が1つしかない(説明変数が切片のみからなる)場合は、数字の1と表記します。
# 確率分布;二項分布(binomial)
# 連結関数;S字(logit)

# 求める選択確率は、cbindで先に並べた方のものです。cbind(Light, Dark)としたので、Light(明るい方)を選択する確率を計算します。Dark(暗い方)を選択する確率は、「1 - Lightを選択する確率」となります。

# データを、横に増える(列が増える)方向に統合

# 説明変数の表記の仕方

# summary(r)を実行して、解析結果rの詳細を表示させます。

# 左の赤枠内にある(Intercept)が、回帰式y = eb/(1 + eb)の切片bの値です。明るい方を選択する確率は、e1.23554/(1 + e1.23554) = 0.774787です。

# 右の赤枠内にあるのがP値です。切片(Intercept)の値(bの値)が有意に0と異なるのかどうかを示しています。「e-」とあるのは10のマイナス何乗かということです。「2e-16」は「2 × 10- 16」です。切片(Intercept)が有意に0と異なるので、明るい方に移動しやすいということです。

# AICも出ているのですが、確率分布と連結関数の組合せは二項分布とS字の一択です。だから気にする必要はありません。

# 一般化線形モデルの命令文

このページの文頭に戻る

3. 作図

ミドリムシの走光性の作図の説明に従って作図をして下さい。軸の文字の説明を日本語にしたい場合は、ミドリムシの走光性の作図の説明に従って日本語にして下さい。そして、描いた図をPowerPoint等に読む込んで下さい。読み込む方法は図の保存・コピーを参照して下さい。

 PowerPoint等に読み込んで、P値を書き込みます。値があまりに小さい場合は、P < 0.0001といった書き方でよいです。

このページの文頭に戻る