理工系または社会科学系の問題を統計学的に論じた書物を閲覧すると、もっともよく見かける数式記号のうちのひとつに大文字のシグマ(Σ)がある。この記号はsigma notationとかsummation notationとか呼ばれている。
シグマ(Σ)は英語の大文字Sに対応するギリシャ文字。数学ではこの文字が総和(summation)を表わすために使われている。ある数の集合の要素をすべて足し合わせることを意味している。+演算子の集合のような役割をこの記号ひとつで果たす。
自然数倍としてのかけ算
自然数倍としてのかけ算も足し算の集合(数列の総和)であることがよく知られている。かけ算の場合は足す数のすべてが同じ数に統一されていることという条件が付く。例えば\( 5 \times 4 \)は0に対して5を4回足せと言っている。
\[ x \times \colorbox{yellow}{y} = 0 \underbrace{+ x + x + x + \cdots + x}_{\colorbox{yellow}{y}回} \]
\[ 5 \times \colorbox{yellow}{4} = 0 \underbrace{+ 5 + 5 + 5 + 5}_{\colorbox{yellow}{4}回} = 20 \]
かけ算は同じ比で一様に増加していく函数と見なすことができる。
Σ演算子
じゃあ、一様に増加していかない足し算はどう表わすことができるか。そこでΣ演算子の出番。
\[ \sum_{\colorbox{lime}{i}=\colorbox{aqua}{0}}^{\colorbox{yellow}{4}} \colorbox{lime}{i} = \colorbox{aqua}{0} + 1 + 2 + 3 + \colorbox{yellow}{4} = 10 \]
iはここではいくつかの数の集合を表わす変数。\( \sum i \)はiという変数を合計することを表わしている。\( i=0 \)はそのiが0から始まることを表わしている。Σ演算子の頭にある4はiが4で終わることを表わしている。
自然数倍としてのかけ算をΣ演算子で表わすと
自然数倍(同数累加)としてかけ算をΣ演算子を使って書き表すと次のようになる。
\begin{align*}
5 \times \colorbox{yellow}{4} &= 0 + \sum_{\colorbox{lime}{i}=\colorbox{aqua}{1}}^{\colorbox{yellow}{4}} 5_\colorbox{lime}{i} \\
&= 0 + 5_\colorbox{aqua}{1} + 5_2 + 5_3 + 5_\colorbox{yellow}{4} \\
&= 20
\end{align*}
次のように簡略に記してもよいかもしれない。
\begin{align*}
5 \times \colorbox{yellow}{4} &= \sum_1^{\colorbox{yellow}{4}} 5 \\
&= 5 \underbrace{ + 5 + 5 + 5}_{\colorbox{yellow}{4}回} \\
&= 20
\end{align*}
より一般化すれば次のように表わすことができる。
\begin{align*}
x \times \colorbox{yellow}{y} &= 0 + \sum_{\colorbox{lime}{i}=\colorbox{aqua}{1}}^{\colorbox{yellow}{y}} x_\colorbox{lime}{i} \\
&= 0 + x_\colorbox{aqua}{1} + x_2 + x_3 + x_4 + \cdots + x_{\colorbox{yellow}{y}} \\
\end{align*}
次のように簡略に記してもよいかもしれない。
\begin{align*}
x \times \colorbox{yellow}{y} &= \sum_1^{\colorbox{yellow}{y}} x \\
&= x \underbrace{+ x + x + x}_{\colorbox{yellow}{y}回} \\
\end{align*}
iはインデックス番号。例えばxという変数にインデックス番号を振ると、それぞれを異なる変数として識別することができる。ただし異なる変数は同じ値を持ってもいい。
Σ演算子の一般形式
\( \{x_0, \ x_1, \ x_2, \ x_3, \ x_4 \} \)という数値データの集合があった場合、それらの総和を表わすときに複数の+演算子の代わりにΣ演算子を使うと紙幅の節約になる。
\[ x_{\colorbox{aqua}{0}} + x_1 + x_2 + x_3 + x_{\colorbox{yellow}{4}} = \sum_{\colorbox{lime}{i}=\colorbox{aqua}{0}}^{\colorbox{yellow}{4}} x_{\colorbox{lime}{i}} \]
この場合、xがいくつかの数の集合を表わす変数、iがいくつかの添え字の集合を表わす変数。これら2つを組み合わせるとコンピュータ・プログラミング言語で云うところの配列のようなものができる。これらをデータの集合、すなわちデータセットと呼ぶことがある。
\( \{x_0, \ x_1, \ x_2, \ x_3, \ x_4 \} \)はどれも同じxで表してあるけれども、インデックス番号が0から4まで付くことによってすべて異なる変数を表わしている。
Σ演算子の下にある\( i=0 \)はインデックス番号が0から始まることを表わし、Σ演算子の上にある4はそのインデックス番号が4で終わることを表わしている。
Σ演算子はこれらのデータセットの個々の要素をすべて足し合わせろ、つまり合計せよ、と言っている。
さらに一般化してn個の変数を足し合わせることを次のように表わすことができる。
\[ \sum_{\colorbox{lime}{i}=\colorbox{aqua}{0}}^{\colorbox{yellow}{n}} x_{\colorbox{lime}{i}} = x_{\colorbox{aqua}{0}} + x_1 + x_2 + \cdots + x_{\colorbox{yellow}{n}} \]
表計算アプリのSUM()函数をΣ演算子で表わすと
表計算アプリを使ったことあれば、これが表計算アプリのSUM()函数に相当することが分かるはず。
表計算シート上のデータセットの例
|
A |
B |
\( \colorbox{aqua}{1} \) |
0.2 |
135 |
2 |
0.1 |
56 |
3 |
0.3 |
26 |
4 |
0.2 |
57 |
\( \colorbox{yellow}{5} \) |
0.2 |
226 |
6 |
=SUM(A1:A5) |
=SUM(B1:B5) |
\begin{align*}
{\rm SUM(A\colorbox{aqua}{1}:A\colorbox{yellow}{5})} &= \sum_{i=\colorbox{aqua}{1}}^{\colorbox{yellow}{5}} A_i \\
&= A_{\colorbox{aqua}{1}} + A_2 + A_3 + A_4 + A_{\colorbox{yellow}{5}} \\
&= 0.2 + 0.1 + 0.3 + 0.2 + 0.2 \\
&= 1
\end{align*}
\begin{align*}
{\rm SUM(B\colorbox{aqua}{1}:B\colorbox{yellow}{5})} &= \sum_{i=\colorbox{aqua}{1}}^{\colorbox{yellow}{5}} B_i \\
&= B_{\colorbox{aqua}{1}} + B_2 + B_3 + B_4 + B_{\colorbox{yellow}{5}} \\
&= 135 + 56 + 26 + 57 + 226 \\
&= 500
\end{align*}
表計算アプリのSUM()函数がSUM(A1:A5)と表わすことを数学では\(\displaystyle \sum_{i=1}^5 A_i \)と表わし、SUM(B1:B5)と表わすことを数学では\(\displaystyle \sum_{i=1}^5 B_i \)と表わす。
偶数の合計をΣ演算子で表わすと
偶数の集合の総和をΣ演算子を用いて次のように表わすことができる。
\begin{align*}
\sum_{i=0}^{\infty} 2i &= 2 \times 0 + 2 \times 1 + 2 \times 2 + \cdots \\
&= 0 + 2 + 4 + \cdots \\
\end{align*}
\( 2i \)は\( 2 \times i \)を意味している。\( \infty \)は無限を表わしている。無限は数ではないのでこの式を計算することはできない。ただしラマヌジャンの和を除く。
奇数の合計をΣ演算子で表わすと
奇数の集合の合計は次のように表わすことができる。
\begin{align*}
\sum_{i=0}^{\infty} (2i + 1) &= (2 \times 0 + 1) + (2 \times 1 + 1) + (2 \times 2 + 1) + \cdots \\
&= 1 + 3 + 5 + \cdots \\
&= \sum_{i=1}^{\infty} (2i - 1) \\
&= (2 \times 1 - 1) + (2 \times 2 - 1) + (2 \times 3 - 1) + \cdots \\
&= 1 + 3 + 5 + \cdots \\
\end{align*}
偶数に1を足すか偶数から1を引けば奇数になるという単純な発想。
ちなみに、次の式同士は等しい。
\begin{align*}
\sum_{i=1}^{\infty} (2i + 1) &= 2\sum_{i=1}^{\infty} i + \sum_{i=1}^{\infty} 1_i \\
&= \{2 \times (1 + 2 + 3 + \cdots)\} + (1 + 1 + 1 + \cdots) \\
\end{align*}
\begin{align*}
\sum_{i=1}^{\infty} (2i - 1) &= 2\sum_{i=1}^{\infty} i - \sum_{i=1}^{\infty} 1_i \\
&= \{2 \times (1 + 2 + 3 + \cdots)\} - (1 + 1 + 1 + \cdots) \\
\end{align*}
これらのことは一般に次のように表現されていることが多い。いわば分配の法則か。
\[ \sum_{i=1}^n (x_i + y_i) = \sum_{i=1}^n x_i + \sum_{i=1}^n y_i \]
\[ \sum_{i=1}^n (x_i - y_i) = \sum_{i=1}^n x_i - \sum_{i=1}^n y_i \]
さらに次のことも。ただしaは定数。
\[ \sum_{i=1}^n ax_i = a \sum_{i=1}^n x_i \]
相加平均をΣ演算子で表わすと
表計算アプリのシート状に次のようなデータセットが入力されているとする。
表計算シート上のデータセット
|
A |
1 |
75 |
2 |
80 |
3 |
65 |
4 |
70 |
5 |
85 |
6 |
95 |
7 |
100 |
8 |
90 |
9 |
=AVERAGE(A1:A8) |
これらのデータセットの相加平均(算術平均とも呼ぶ)を求める式は次のように表わすことができる。
\begin{align*}
{\rm AVERAGE(A1:A8)} &= {\rm SUM(A1:A8)/8} \\
&= \dfrac{1}{8}\sum_{i=1}^8 A_i \\
&= \dfrac{1}{8} \times (A_1 + A_2 + A_3 + A_4 + A_5 + A_6 + A_7 + A_8) \\
&= \dfrac{1}{8} \times (75 + 80 + 65 + 70 + 85 + 95 + 100 + 90) \\
&= \dfrac{1}{8} \times 660 \\
&= \dfrac{660}{8} \\
&= 82.5
\end{align*}
相加平均はΣ演算子によって一般に次のように表わすことができる。
\[ \dfrac{1}{n}\sum_{i=1}^n x_i = \dfrac{1}{n}(x_1 + x_2 + x_3 + \cdots + x_n) \]
割ることは逆数をかけることに等しいということを利用し、割り算は分数のかけ算という形に直してΣ演算子の前に持ってくるのが一般的表記。逆数とは、分数の分子と分母を入れ替えた数のこと。
\[ x \div y = x \times \dfrac{1}{y} = \dfrac{1}{y} x \]
R言語で合計と相加平均
R言語(バージョン3.5.2)でも総和を計算するには表計算アプリと同様にsum()函数を用いることができる。相加平均はmean()函数を用いて求めることができる。
> dataset1 = c(75,80,65,70,85,95,100,90)
> sum(dataset1)
[1] 660
> mean(dataset1)
[1] 82.5
> q()
FreeMatで合計と相加平均
FreeMat(バージョン4.2)でもsum()函数とmean()函数によってそれぞれ計算することができる。
--> dataset1 = [75 80 65 70 85 95 100 90]
dataset1 =
75 80 65 70 85 95 100 90
--> sum(dataset1)
ans =
660
--> mean(dataset1)
ans =
82.5000
--> exit
GNU Octaveで合計と相加平均
GNU Octave(バージョン4.4.1)でも同様。
>> dataset1 = [75 80 65 70 85 95 100 90]
dataset1 =
75 80 65 70 85 95 100 90
>> sum(dataset1)
ans = 660
>> mean(dataset1)
ans = 82.500
>> exit
Python 3で合計と相加平均
Python 3では合計と相加平均を次のように計算することができる。
>>> dataset1 = [75,80,65,70,85,95,100,90]
>>> sum(dataset1)
660
>>> from statistics import mean
>>> mean(dataset1)
82.5
>>> exit()
コメント
コメントを投稿