◇この教材は,高校生が表計算ソフトなどを使って,数学Tの「データ分析」レベルの内容を扱うときの「演習の手引き」として書いたものです.(筆者自身用の備忘録でもある)
◇●1〜●4のソフトについて操作方法を解説していますが,全部読む必要はありません.自分のパソコンで使えるソフトを選んで,読んでください.
 使い方を調べるソフトは,次の4種類
●1 「Microsoft Excel 2021」などのインストール型
●2 無料で使える「Excel for the web」
●3 無料で使える「Google スプレッドシート」
●4 無料でインストールできる統計用ソフト「R」
 各々のソフトの導入方法はこのページ参照

1. 合計(総和)

-この項目の要約-
●1〜●3 表計算ソフト
=SUM(セル範囲)
●4 「R」
sum(ベクトル)
全部数値のとき合計が得られる合計が得られる
空欄があるとき空欄以外の合計になるNAが返される
文字データがあるとき空欄以外の合計になるエラーになる
※表計算ソフトの関数を英大文字で書いていますが,結果的にソフトの表示がそうなるからで,各自が書き込むのは小文字でも同じです.このページの,以下の部分も同様です.
-表1-

ABCD
1整理番号項目1項目2項目3
2No.1101010
3No.21010
4No.31010I
5No.4101010
6No.5101010
7合計504040
8人数544
9平均値101010
 右の表1のデータでの,●1〜●3での計算方法
 ただし,背景色が桃色のセルC3は空白,D4は入力ミスで文字データIが入力されているものとする.
 合計を求めるには,関数 SUM(範囲) を使う.
セルB7に =SUM(B2:B6)
セルC7に =SUM(C2:C6)
・・・
(B7に書き込んで,右にドラッグすればよい)
【結果】●1〜●3共通
1) 項目1のように「全部が数値データ」である場合,数値の合計が表示される.
2) 項目2のように「空白セルがあり,他は全部数値データ」である場合,数値の部分だけの合計が表示される.(空白は合計には入らないが,他の数値データの合計は有効となる)
3) 項目3のように「文字データがあり,他は全部数値データ」である場合,数値の部分だけの合計が表示される.(文字データは合計には入らないが,他の数値データの合計は有効となる)
●4での計算方法
    -表2-
d1<-c(10,10,10,10,10)
d2<-c(10,NA,10,10,10)
d3<-c(10,10,'I',10,10)
 右のように「R」のコマンドプロンプトから,3つのベクトルd1, d2, d3が入力されているものとする.なお,「R」ではNA(Not Available)で欠損値を,NaN(Not a Number)で非数値(0/0 など)を表す.
「R」で合計を求めるには,sum(ベクトル名)を使う.
 次の結果が得られる.
sum(d1)
 [1] 50
sum(d2)
 [1] NA
sum(d3)
  sum(d3)でエラー:引数 'type' (character)が不正です
【結果】
1) d1「全部が数値データ」である場合,数値の合計が表示される.
2) d2「空白セルがあり,他は全部数値データ」である場合,NAが表示される.(合計の計算は全部が無効となる)
3) d3「文字データがあり,他は全部数値データ」である場合,エラーが返される.(合計の計算は全部が無効となる)
 なお,欠損値(NA)が含まれる場合は,その項目を取り除く(remove)パラメータとして, na.rmを指定することができる.この場合,欠損値(NA)以外の合計が得られる.
d2<-c(10,NA,10,10,10)
sum(d2, na.rm=TRUE)
 [1] 40

2. 個数

-この項目の要約-
●1〜●3 表計算ソフト
=COUNT(セル範囲)
●4 「R」
length(ベクトル)
全部数値のときデータ個数が得られるデータ個数が得られる
空欄があるとき
(Rでは欠損値)
空欄以外の個数
(数値の個数)
になる
欠損値を含む個数
(ベクトルの要素数)
が返される
文字データがあるとき文字欄以外の個数
(数値の個数)
になる
文字欄を含む個数
(ベクトルの要素数)
が返される
-表1(再掲)-

ABCD
1整理番号項目1項目2項目3
2No.1101010
3No.21010
4No.31010I
5No.4101010
6No.5101010
7合計504040
8人数544
9平均値101010
 ●1〜●3での計算方法
 「数値データの個数」を求めるには,
関数 COUNT(範囲) を使う.
=COUNTA()
は空白以外のセルの個数
=COUNTBLANK()
は空白セルの個数
セルB8に =COUNT(B2:B6)
セルC8に =COUNT(C2:C6)
・・・
(B8に書き込んで,右にドラッグすればよい)
【結果】●1〜●3共通
1) 項目1のように「全部が数値データ」である場合,数値のセルの個数が表示される.
2) 項目2のように「空白セルがあり,他は全部数値データ」である場合,数値のセルの個数だけが表示される.
3) 項目3のように「文字データがあり,他は全部数値データ」である場合,数値のセルの個数だけが表示される.
●4での計算方法
    -表2(再掲)-
d1<-c(10,10,10,10,10)
d2<-c(10,NA,10,10,10)
d3<-c(10,10,'I',10,10)
 右のように「R」のコマンドプロンプトから,3つのベクトルd1, d2, d3が入力されているものとする.
「R」でデータの個数(ベクトルの要素数)を求めるには,length(ベクトル名)を使う.
 次の結果が得られる.
length(d1)
 [1] 5
length(d2)
 [1] 5
length(d2)
 [1] 5
【結果】
d1, d2, d3とも同じで,空白,文字データも含めた要素数が返される

3. 平均値

-この項目の要約-
●1〜●3 表計算ソフト
=AVERAGE(セル範囲)
●4 「R」
mean(ベクトル)
全部数値のとき平均値が得られる平均値が得られる
空欄があるとき
(Rでは欠損値)
空欄以外の平均値
(数値の平均)
になる
NA(Not Available)
が返される
文字データがあるとき文字欄以外の平均値
(数値の平均)
になる
NA(Not Available)
が返される
-表1(三掲)-

ABCD
1整理番号項目1項目2項目3
2No.1101010
3No.21010
4No.31010I
5No.4101010
6No.5101010
7合計504040
8人数544
9平均値101010
 ●1〜●3での計算方法
 「平均値」を求めるには,
関数 =AVERAGE(範囲) を使う.
セルB9に =AVERAGE(B2:B6)
セルC9に =AVERAGE(C2:C6)
・・・
(B9に書き込んで,右にドラッグすればよい)
【結果】●1〜●3共通
1) 項目1のように「全部が数値データ」である場合,数値のセルの平均値が表示される.
2) 項目2のように「空白セルがあり,他は全部数値データ」である場合,「数値のセルの合計」を「数値のセルの個数」で割ったものが表示される.(個数は4として数えている)
3) 項目3のように「文字データがあり,他は全部数値データ」である場合,「数値のセルの合計」を「数値のセルの個数」で割ったものが表示される.(個数は4として数えている)
●4での計算方法
    -表2(三掲)-
d1<-c(10,10,10,10,10)
d2<-c(10,NA,10,10,10)
d3<-c(10,10,'I',10,10)
 右のように「R」のコマンドプロンプトから,3つのベクトルd1, d2, d3が入力されているものとする.
「R」で平均値を求めるには,mean(ベクトル名)を使う.
 次の結果が得られる.
mean(d1)
 [1] 10
mean(d2)
 [1] NA
mean(d3)
 [1] NA
  警告メッセージ
【結果】
d1は平均値が返されるが, d2, d3は欠損値NA(Not Available)が返される.

4. 分散,標準偏差

この項目の要約
(1) 組込み関数を使う場合
全部数値
のとき
●1〜●3 表計算ソフト●4 「R」
分散=VAR.P(セルの範囲)var(ベクトル)*(n−1)/n
標準偏差=STDEV.P(セルの範囲)
=SQRT(VAR.P(セル範囲))
でも同じ
sd(ベクトル)*sqrt((n−1)/n)
sqrt(var(data1)*(n−1)/n)でも同じ
(2) V(x)=x2x2から求める場合
※この公式の証明は ⇒ このページ
※あれもこれも覚えなさい!などとは言っていません.1つできればOKですが,何かの事情で計算が合わないとき「別ルート検算」で確かめられると「助かる」ことがあるのです!使えるチャンネルが多いほど安心!(イザというときのために保険をかける)ということです.
全部数値
のとき
●1〜●3 表計算ソフト●4 「R」
分散=SUMSQ(…)/個数
  −(AVERAGE(…))^2
mean((…)^2)
  −(mean(…))^2
標準偏差=SQRT(上記の値)sqrt(上記の値)
-表3-

ABC
1整理番号項目1偏差^2
2No.174
3No.261
4No.334
5No.441
6No.550
7合計2510
8人数5
9平均値5
10分散22

(1)

 右の表3について,No.1〜No.5の5個のデータの分散を求めるには,
 ●1〜●3での計算方法
分散を求めるには,
関数 =VAR.P(範囲) を使う.
セルB10に =VAR.P(B2:B6)
と書き込む.
よく似た関数
=VAR(), =VARP(), =VARA(), =VARPA()は旧バージョンのExcelとの互換性を維持するためのもの.新しいExcelでは使わなくてもよい
=VAR.S() は,与えられたものを標本と見なした場合の母集団の分散を求めるもの
=VAR.P() が記述統計用の関数 ⇔ 高校まではこれを使う
=VAR.S() は推測統計用の関数

【結果】●1〜●3共通
No.1〜の値をx1, x2, ・・・xnとするとき

に対応する値が表示されている.

 なお,推測統計用の関数 VAR.S()は

を表し,記述統計で計算した分散よりも少し大きい.
 次の関係がある


 ●1〜●3で,定義に従って,表を組み立てて計算する方法
 この計算を行うためには,データの「合計」「個数」は必ずしも必要ないが「平均値」を先に求めておかなければならない.(表3のようにB9が平均値だとする)
(1) C2の欄に,=(B2-$B$9)^2と書き込む
(2) C2のセルの右下のをポイントするとというマークが出るので,これをC6までドラッグする.
(3) C7のセルをポイントして,「ΣオートSUM」
(4) C10のセルに =C7/B9と書き込む
●4での計算方法
    -表4-
data1<-c(7,6,3,4,5)
 右のように「R」のコマンドプロンプトから,ベクトルdata1が入力されているものとする.
「R」で平均値を求めるには,var(ベクトル名)を使う.
 ただし,「R」では推測統計がよく使われるので,準備されている関数は推測統計用のものが多い.ここでも,高校で習う分散(記述統計の分散)に直すためには
  =var(…)*(n−1)/n
    -表4(続き)-
data1<-c(7,6,3,4,5)
var(data1)*4/5
で変換する.
次の結果が得られる.
[1] 2
 ●1〜●3で標準偏差を求めるには,
関数 =STDEV.P(範囲) を使う.
 標準偏差は,分散の(正の)平方根であるから,=SQRT(VAR.P(範囲)) としても同じになる.
●4で標準偏差を求めるには,関数 =sd(ベクトル) を使う.
 ただし,「R」で準備されている関数は推測統計用のものだから,ここでも,高校で習う分散(記述統計の分散)に直すためには
  =sd(…)*sqrt((n−1)/n)
とする.=sqrt(var(範囲)*(n−1)/n) としても同じになる.
名前国語数学英語
平清盛406767
源頼朝599293
武田信玄979887
上杉謙信987592
織田信長579585
豊臣秀吉799090
徳川家康898669
足利尊氏736290
毛利元就535263
伊達政宗857059
【簡単チェック問題4.1】
 右の表のデータ(架空データです!当然!)について,表計算ソフト●1〜●3または「R」を用いて,分散,標準偏差を求めてください.
(結果は四捨五入して,小数点以下第2位まで求めてください)
※各自で問題を解くときに,この問題を手書きで書き写す必要はない.画面上で,左上端の「名前」から右下端の「59」までを,「ドラッグ」「右クリック」「コピー」.次に,Excel(onlineでもGoogleスプレッドシートでも同じ)のワークシート上で「貼り付け」すればよい.以下の問題も同様
解答を見る

-表3(再掲)-

ABC
1整理番号項目1偏差^2
2No.174
3No.261
4No.334
5No.441
6No.550
7合計2510
8人数5
9平均値5
10分散22

(2)
右の表3について,No.1〜No.5の5個のデータの分散を求めるには,
 ●1〜●3で,V(x)=x2x2から分散を求めるには,
=SUMSQ(B2:B6)/B8
  −(AVERAGE(B2:B6))^2

標準偏差は,
=SQRT(そのセル)
●4で分散を求めるには,
data1<-c(7,6,3,4,5)
V1=mean(data1^2)-(mean(data1))^2
標準偏差は,上記に続けて
sqrt(V1)
 [1] 1.414214
名前理科社会
平清盛5471
源頼朝8537
武田信玄7635
上杉謙信9658
織田信長9986
豊臣秀吉8131
徳川家康6043
足利尊氏9955
毛利元就5731
伊達政宗8735
【簡単チェック問題4.2】
 右の表のデータ(架空データです!当然!)について,表計算ソフト●1〜●3または「R」により, 2乗平均−(平均)2の公式を使って,分散を求めてください.
(結果は四捨五入して,小数点以下第2位まで求めてください)
解答を見る

5. 度数分布表から分散,標準偏差を求める

-この項目の要約-
全部数値
のとき
●1〜●3 表計算ソフト●4 「R」
分散=SUMPRODUCT(x,x,f)/N
  −平均^2
sum(d1^2*f1)/N1
  −(sum(d1*f1)/N1)^2
標準偏差=SQRT(上記の値)=sqrt(上記の値)
-表5-

ABCDEF
1以上未満階級値
xk
度数
fk


25107.53
3101512.54
4152017.57
5202522.55
6253027.51
7合計20
8平均16.75
(A) データが度数分布表で与えられているときは,各々の階級の真ん中の値,すなわち階級値xkに各々の度数fkで示される個数のデータがあると見なす.
 右の表のような度数分布表が与えられたとき,分散V(x)

で求められる.ただし,はデータ総数である.
 この公式に沿って,偏差2乗和×度数を作り,表を組み立てていくのが1つの方法である.(これは前のページに書いたので,ここでは省略する)
(B) V(x)=x2x2から求める場合
 ●1〜●3で,V(x)=x2x2から分散を求めるには,
 はじめに,D7に合計(個数)=SUM(D2:D6),D8に平均値 =SUMPRODUCT(C2:C6,D2:D6)/D7を求めておく.
 ここで,表計算ソフトの関数 SUMPRODUCT() は,数学の内積よりも自由で,3個以上のベクトルの積も可能であることに注意する.
 例えば,=SUMPRODUCT(C2:C6, C2:C6, D2:D6) とすれば,Σx2k fk が求まる.
(1) E7をポイントし,
=SUMPRODUCT(C2:C6, C2:C6, D2:D6) と書き込む
(2) E8をポイントし,=E7/D7 と書き込む
(3) F7をポイントし,
=SUMPRODUCT(C2:C6, D2:D6) と書き込む
(4) F8をポイントし,=F7/D7 と書き込む
(5) F9をポイントし,=F8-D8^2 と書き込む
E8の計算で =AVERAGE(C2:C6)を使うことはできない.また,E2〜E6に =C2^2〜=C6^2などを準備しておいても,=AVERAGE(E2:E6)を使うことはできない.これらの関数では,データの個数を5個としてしまうので,合わなくなる.
標準偏差は,
 =SQRT(F9)
●4で分散を求めるには,
d1<-c(7.5,12.5,17.5,22.5,27.5)
f1<-c(3,4,7,5,1)
N1=sum(f1)
V1=sum(d1^2*f1)/N1-(sum(d1*f1)/N1)^2
 [1] 30.6875
なお,分散の計算で mean(d1^2*f1)-(mean(d1*f1))^2 を使うことはできない.この計算方法では,データの個数を5個としてしまうので,合わなくなる.
標準偏差は,上記に続けて
sqrt(V1)
 [1] 5.53963

ABCD
1階級値度数
2以上未満xkfk
3303532.51
4354037.53
5404542.55
6455047.57
7505552.56
8556057.55
9606562.52
10657067.51
【簡単チェック問題5.1】
 右の表のデータについて,表計算ソフト●1〜●3または「R」を用いて,分散,標準偏差を求めてください.
(結果は四捨五入して,小数点以下第2位まで求めてください)
解答を見る

ABCD
1階級値度数
2以上未満xkfk
3150155152.51
4155160157.51
5160165162.52
6165170167.53
7170175172.55
8175180177.53
【簡単チェック問題5.2】
 右の表のデータについて,表計算ソフト●1〜●3または「R」を用いて,分散,標準偏差を求めてください.
(結果は四捨五入して,小数点以下第2位まで求めてください)
解答を見る
...メニューに戻る