2017年11月28日火曜日

C# 数学4 「統計-2」「偏差値、標準化、分散と不偏分散、標準偏差と不偏標準偏差、平均値中央値最頻値」

C# 統計・微分積分・線形代数への道
目次→http://1studying.blogspot.jp/2017/08/senkei-index.html#kuw04

「統計の基本」
メモっておく。

ここでは、
「×」を「*」
「÷」や「分数」を「/」
で表現します。



「偏差値」の計算


「偏差値」とは…
「偏差値」を使えば、
テストなどで「全体の平均点」を「偏差値50」とした場合、
自分の点数が相対的にどれ位高いのか、もしくは低いのかを分析できます。
「偏差値」の定義は以下のような物です。
  ・「正規分布」に「全ての要素」の数値(テストの点数など)を当てはめる
  ・「平均」を「偏差値50」に固定
  ・「標準偏差σ(バラツキ度)」1つ分を「偏差値10の変化」、
  として変換して求めた数値が
  「偏差値」となります。
「正規分布」では以下のイメージとなります。
  
これを「偏差値」を求める計算式に直すと
  
となります。


計算例:(偏差値)
「x」の要素がそれぞれ
  「x=2」「x=4」「x=8」「x=12」
として、
まずは「平均(average)」を計算します。
  
よって、「平均(average)」が「6.5」と分かりました。
次に「標準偏差σ」を計算します。
  
よって、「標準偏差σ」が「3.840572874…」と分かりました。
ここから、
「x=12」の「偏差値」を計算して見ましょう。
  
よって、
  「x=12」の「偏差値T」は「約64.32」
となります。

「偏差値計算」
参考→http://keisan.casio.jp/exec/system/1308268612


「偏差値」の「各要素の分布」が「正規分布」にならないとき
「正規分布」に従って「偏差値」を考えた時、
ある偏差値以上の人のいる割合は何パーセントか(「各要素の出現率」)
つまり、
「その偏差値は上位約何%か」の目安は以下のような形となります。
  ・偏差値「各要素の出現率」
  80(0.13%)、75(0.6%)、70(2.2%)、65(6.6%)、
  60(15.8%)、55(30.8%)、50(50%)、45(69.2%)、40(84.2%)、
  35(93.4%)、30(97.8%)、25(99.4%)、20(99.87%)
「正規分布」に従うと
  「偏差値75」の人は「上位約0.6%」の人間
と判断できます。

但しこの判断は、
  「各要素の分布」が「正規分布」(ベル型)に近い形状である場合に限る
  「正規分布」に従った場合に限る
事に注意して下さい。
「偏差値」のような「平均を50とした時の相対値」を重視する数値では、
「各要素の分布」が「正規分布」(ベル型)と違う「偏った分布」であっても
許容してそのまま計算を行います。
その場合「偏差値」としては正しい数値と言えるのですが、
理想的な分布では無い為、
当然「正規分布」(ベル型)の「各要素の出現率」による判断に当てはまらなくなります。
繰り返しになりますが、
  「偏差値」とは平均の時を50とした場合を指標として、
  平均からどれだけ離れているのかを分析する為の値
  「正規分布」とは各要素の分布か確率的に収束するべきである理想的な分布の形
です。
「偏差値」は「正規分布」の形を理想とした値ではありますが、
「正規分布」の形でなくても「偏差値」は「偏差値」です。



基準値、標準値(基準化、標準化)


「基準値(基準化)」「標準値(標準化)」
「基準値」「標準値」は同じ意味の言葉です。
「複数の要素の数値」を「基準値に変換、標準値に変換」する事を
「基準化する、標準化する」と呼ぶのですが、
ここでは、
  「標準値に変換」「標準化する」
の言い方に統一して説明を行って行きます。


「標準値、標準化」とは
  「標準化」とは「複数の要素の数値群」を
    「平均を0、標準偏差σを1(分散を1)」
  となるように調整して変換する事です
変換後の値が「標準値」となります。
「標準化」により「標準値」を得る事により、
  集合(配列)の数値の中の1つの数値が
  その集合(配列)の平均を0とした時に
  相対的にどの位置にいるのか
を知る事が出来ます。

「標準値」を求める計算式は以下のようになります。
  
  「平均 = 0、標準偏差σ = 1、分散 = 1」とした場合の
  1要素の値「標準値」が求まります。
ちなみに「標準値」に「*10倍して50を足した」のが「偏差値」です。


計算例:(標準値、標準化)
「x」の要素がそれぞれ
  「x=2」「x=4」「x=8」「x=12」
として、
まずは「平均(average)」を計算します。
  
よって、「平均(average)」が「6.5」と分かりました。
次に「分散」と「標準偏差σ」を計算します。
  
よって、
  「分散」が「14.75」
  「標準偏差σ」が「3.840572874…」
と分かりました。
ここから、
「x=12」の「標準値」を計算して見ましょう。
  
このようにして、
「x」〜「x」の「標準値」を計算した結果が以下の表です。
  
  「標準化」した「x」〜「x」から
    「平均」を求めると「平均=0」
    「分散」を求めると「分散=1」
    「標準偏差σ」を求めると「標準偏差σ=1」
  である事が分かります。
「標準化」すると
  「平均」が「標準値が0」となり
  「平均」より要素の値が低いと「標準値が−マイナス」
  「平均」より要素の値が高いと「標準値が+プラス」
となります。

「標準化」した「正規分布」は以下のイメージとなります。
  
「偏差値」の「正規分布」イメージと見比べてみて下さい。
  
「標準化」した「正規分布」に「*10倍して50を足した」のが「偏差値」です。
  


「分散と不偏分散」「標準偏差と不偏標準偏差」


「標準偏差や分散」で「母」「標本」「不偏」などが頭に付いたときや、
それらを表すアルファベット記号の違いが混乱しやすく感じます。
「不偏分散u2」「不偏標準偏差u」について学ぶついでに整理していきます。


「母集団」と「標本」(推測統計とは)
「母集団」は「要素全体」を指します。
「標本」は「母集団の中から抽出した一部の要素全体」を指します。
「標本」から「母集団」の状態を推測する事を「推測統計」と言います。
  「母集団」…「標本」の例
  「 全ジャンプ読者」…「 ジャンプ読者内でアンケートはがきを送った人々」
  「 全TV視聴者の世帯」…「 TVの視聴率調査に協力している世帯」
  「全世界の高校3年生の偏差値」…「日本全国の高校3年生の偏差値」
  「 日本全国の高校3年生の偏差値」… 「高校3年生1クラス内の偏差値」
実際、
何を「母集団」として、その中のどの範囲を「標本」と捉えるかは判断により変わり、
この判断によっては後の計算結果の信頼度にも影響します。
選挙の出口調査や政党支持率予想、アンケートなどで母集団の「推測」を行っても、
調査機関や調査方法により推測と実体が違ってしまう事があるのはこの為です。
「標本(サンプル)」の取捨選択はプロの調査機関でも判断が難しい問題なのです。


「母平均μ」「標本平均x
「母集団」の平均が「母平均μ(ミュー)」、
「標本」の平均が「標本平均x」です。

「母平均」と「標本平均x」は同じ計算式で良い決まりです。
「母集団」の平均と「標本」の平均では値が近くなる為です。
  
これを踏まえて「分散」の説明をします。


「母分散σ2」と「標本分散s2」と「不偏分散u2
「分散」とは各要素の「バラツキ度」の事です。
本来「分散」は「母分散σ2」を使用して計算を行うのが正しいのですが、
「統計」では常に「母集合」全ての値を取得できる状態では無い場合や、
全てを計算するコストを掛けられない事がよくあります。
そのような時は複数の「標本(サンプル)」要素から計算して、
「母分散σ2」を推測する必要が出てきます。
まず、式の違いを見て下さい。
「母分散σ2
  全ての要素を元にして「分散」を計算する為の式です。
  
  現実の状況に即した最良の「分散」の値が取得できます。

「標本分散s2
  「sample variance、標本のバランス」のイニシャル「s」を使用。
  「標本分散s2」は「母分散σ2」と同じ式です。
  
  「標本となる要素数」が十分多ければ誤差は少ないのですが、
  「標本となる要素数」が少なくなる程「母分散σ2」に比べて、
  答えとなるバラツキ度の数値が小さく見積もられる特徴があります。

「不偏分散u2(標本不偏分散u2)
  「unbiased variance、公平なバランス」のイニシャル「u」を使用。
  「不偏分散u2」は「標本分散s2」に「−1」の「補正」が入ったものです。
  
  以下のような書き方もできます
  
  「標本となる要素数」が少なくても「標本分散s2」に比べて、
  より「母分散σ2」に近い値が取得できます。

「分散V[X]」
  「確率変数X」の分散「分散V[X]」については
  「統計-基本3」以降の「確率と期待値」について解説する時に説明します。

「母分散」の「標本(サンプル)」である「標本分散s2」は、
「標本となる要素数」が少ないと「母分散σ2」より数値が小さくなります。
これを、より「母分散σ2」に近づける為に
分母に「−1」の「補正」を加えたのが「不偏分散u2」です。

ここからがややこしいのですが、
一部の書物やWebでは
「不偏分散u2」の式を「標本分散s2」として紹介や表記する事例をよく目にします。
厳密にはこの定義式の表記方法でも間違えではないのですが、
  「補正」の入っていない「標本分散s2
  「補正」の入った「不偏分散u2
は区別して理解しておいた方が後々混乱しにくいと思います。
この形で覚えておいた方が良いでしょう。
その上で混同使用される事があるという現状を知っておいて下さい。
また、
「標本分散s2」や「不偏分散u2」の式を「標本(サンプル)」として扱わないで、
最初から「母分散σ2」に見立てた前提で「分散σ2」と記述を行って
説明される事がよくあります。
これらを踏まえて「標準偏差」の説明をします。


「母標準偏差σ」と「標本標準偏差s」と「不偏標準偏差u」
「標準偏差」とは「√分散」の計算を行った「バラツキ度」の事です。
本来「標準偏差」は「母分散σ2」を使い「母標準偏差σ」を計算するのが正しいのですが、
それがままならない時は「標本分散s2」や「不偏分散u2」から「標準偏差」を推測します。
式の違いを見て下さい。
「母標準偏差σ」
  全ての要素を元にして「標準偏差」を計算する為の式です。
  
  現実の状況に即した最良の「標準偏差」の値が取得出来ます。

「標本標準偏差s」(標本偏差s)
  「sample variance、標本のバランス」のイニシャル「s」を使用。
  「標本標準偏差s」は「母標準偏差σ」と同じ式です。
  
  「標本となる要素数」が十分多ければ誤差は少なくなりますが、
  「標本となる要素数」が少なくなる程「母標準偏差σ」に比べて、
  答えとなるバラツキ度の数値が小さく見積もられる特徴があります。

「不偏標準偏差u」(不偏標本標準偏差u)
  「unbiased variance、公平なバランス」のイニシャル「u」を使用。
  「不偏標準偏差u」は「標本標準偏差s」に「−1」の「補正」が入ったものです。
  
  以下のような書き方もできます
  
  「標本となる要素数」が少なくても「標本標準偏差s」に比べて、
  より「母標準偏差σ」に近い値が取得できます。

「母標準偏差σ」「標本標準偏差s」「不偏標準偏差u」の違いは
「母分散σ2」「標本分散s2」「不偏分散u2」の違いに準じる形となり、
結果、以下のような事が言えます。

「母標準偏差σ」の「標本(サンプル)」である「標本標準偏差s」は
「標本となる要素数」が少ないと「母標準偏差σ」より数値が小さくなります。
これを、より「母標準偏差σ」に近づける為に
分母に「−1」の「補正」を加えたのが「不偏標準偏差u」です。
(「補正」とは分母の観測個数nから1を引く事を指します)

「分散」の時と同様に「標準偏差」でも以下の使われ方をする事があります。
  「不偏標準偏差u」を「標本標準偏差s」として「補正」折り込み済みで
  紹介や表記する事例がある。
  「標本標準偏差s」や「不偏標準偏差u」の式を「母標準偏差σ」と見立てて
  「標準偏差σ」として説明する事がある。
混乱しやすい部分なので気をつけて下さい。


「平均値(アベレージ)、中央値(メジアン)、最頻値(モード)」


「平均値(アベレージ)」「中央値(メジアン)」「最頻値(モード)」
「平均値、算術平均」(アベレージ)
  「全部の要素の数字を足してから要素の数で割ったもの」
  が「平均値」です。「算術平均」とも言われます。
    「{1, 2, 3, 4, 5, 6}」
  から「平均値」を求める場合
    「(1+2+3+4+5+6)/6 = 3.5」
  よって、「平均値 = 3.5」

「中央値」(メジアン)
  「昇順か降順に要素の数字を並べた時、中心に来る値」
  が「中央値」です。
    「{1, 2, 2, 3, 4, 5, 6}」
  から「中央値」を求める場合「真ん中の3が中央値」となります。
  よって、「中央値 = 3」

    「{1, 2, 3, 34, 5, 6, 7}」
  のように「要素の数が偶数」の場合、
  「真ん中の2つの要素を足して2で割った数が中央値」となります。
    「(3+4)/2 = 3.5」
  よって、「中央値 = 3.5」

「最頻値」(モード)
  「一番出現回数の多い要素の数値」もしくは「一番出現回数の多い範囲」
  が「最頻値」です。
「最頻値」
    「{1, 2, 3, 3, 4, 5, 5, 5}」
  から「最頻値」を求める場合「出現回数が一番多い5が最頻値」となります。
  よって、「最頻値 = 5」

「最頻値が定まらない」
    「{1, 2, 3, 4, 5, 6}」
  のように「最頻値が定まらない」事があります。
  よって、「最頻値 = 定まらない」

「二峰性により最頻値が定まらない」
    「{1, 2, 2, 3, 4, 4, 5}」
  「出現回数が一番多いのが2と4」と2カ所出現する事を
  「二峰性(にほうせい)」と言います。
  「最頻値が複数あり、定まらない」状態です。
  よって、「最頻値 = 定まらない」

「多峰性により最頻値が定まらない」
    「{1, 2, 2, 3, 4, 4, 5, 6, 6}」
  「出現回数が一番多いのが2と4と6」と複数存在する事を
  「多峰性(たほうせい)」と言います。
  これも「最頻値が複数あり、定まらない」状態です。
  よって、「最頻値 = 定まらない」
  (「出現回数が一番多い所」が1カ所と定まる事は「単峰性」と言う。)

「最頻値が定まらない時の解決方法」
  「最頻値」が「定まらない」場合は、
  「特定の範囲で要素が何度が現れるか」で分けるとうまく行く事があります。
    「{1, 3, 5, 11, 13, 24}」
    ↓範囲分け
    「1〜10は3度、11〜20は2度、21〜30は1度」
  よって、「最頻値 = 1〜10」


分布図による「平均値、中央値、最頻値」のパターン
分布図の形によって、
「平均値(アベレージ)」「中央値(メジアン)」「最頻値(モード)」に
大体以下の違いが出ます。
・中央が盛り上がった山型の分布図
  
  「平均値、中央値、最頻値」が山の中心付近に集まる特性がある。
  「正規分布」の理想的な形(ベル型)です。

・片側に盛り上がった山型の分布図
  
  山の峰から「最頻値、中央値、平均値」の順に並びやすい特性がある。




C# 統計・微分積分・線形代数への道
次へ→http://1studying.blogspot.jp/2017/08/senkei-index.html#kuw05





以下のサイトを参考にしました。

標準正規確率表(σの確率表)
http://aoki2.si.gunma-u.ac.jp/lecture/Bunpu/normdist/hyojunka.html#tab1

偏差値とは何かをおさらい!意味・求め方・正規分布との関係性のまとめ
https://atarimae.biz/archives/9109

分散の求め方と公式。その有用性について
https://atarimae.biz/archives/8782

不偏標準偏差の出し方
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q11148040646

統計学における分散と不偏分散 例題でわかりやすく解説
https://to-kei.net/basic/glossary/variance/

不偏標本分散の意味とn-1で割ることの証明
https://mathtrain.jp/huhenbunsan

勘違いしやすい統計用語の定義。標本の大きさと標本数・母数・不偏標準偏差など
https://atarimae.biz/archives/10319

統計のウソ
http://ronri2.web.fc2.com/tokei.html
http://ronri2.web.fc2.com/tokei04.html

「12-5. 確率変数の分散」
https://bellcurve.jp/statistics/course/6716.html

さまざまな確率分布
http://www.biwako.shiga-u.ac.jp/sensei/mnaka/ut/statdist.html

統計web:統計学の時間
https://bellcurve.jp/statistics/course/

数学記号の表
https://ja.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E8%A8%98%E5%8F%B7%E3%81%AE%E8%A1%A8

数式記号の読み方・表し方
http://izumi-math.jp/sanae/report/suusiki/suusiki.htm



2017年11月16日木曜日

C# 数学6 「関数f(x)と関数yとx」(等式 不等式 恒等式 方程式 関数 次数次式 元)

C# 統計・微分積分・線形代数への道
目次→http://1studying.blogspot.jp/2017/08/senkei-index.html#kuw06

「関数の基礎」メモっておく。

ここでは、
「×」を「*」
「÷」や「分数」を「/」
で表現します。



「関数f(x)と関数yとx」


「関数f(x)」とは(f(x)はxの関数)
「f(x)」は「エフエックス」と読み「関数」を指します。
「f」は「function」(関数)の略です。
係性のある(入力)値と(出力)値」の繋がり事を「関数」と呼びます。
  「f(x)はxの関数」のとき「関数f(x)」は
  「入力」を「x」、「出力」を「f(x)」と見立てた「関数」となります
  
  「関数f(x)」へ入力する数値となる「変数x」を「説明変数x」と呼びます。

「関数y」とは(yはxの関数)
  「入力値xの値」により、1つの「出力値yの値」が決まるとき
    「yは、xの関数」
  と言い、
    「y=f(x)」(←入力xの値を「f(x)」が処理した結果を「y」とする)
  と記述します
  
  「関数y」として扱う「変数y」を「目的変数y」と呼びます。


「関数f(x)」と「関数y」のグラフ
  「f(x)=x+2」
  「y=x+2」
のような「関数の式」では必ず、
「xの数値」が決定すると「f(x)やy」が1つの数値に確定します。
(「x」の数値の確定により「f(x)やy」の数値が1つの値に確定しない場合は
「関数」とは言えません)
この「関数」の「入力値と出力値の関係性」を「グラフ」にした物が
「関数グラフ」です。
  
  「関数の式」を「関数グラフ」にする事によって、
  「入力数値」がいくつのとき「出力数値」がいくつになるかの関係性が
  見た目にとてもわかりやすくなります。  


「関数、関数グラフ」の注意点(方程式のグラフ)
「関数の式」とは、
  「xに何か値を入れると必ずf(x)やyの値が1つに決まる
  (「x」に値が入ると「関数f(x)や関数y」が1つの値に確定する)
ような関係性の式を指します。
なので、
  「関数f(x)、関数y」から出力される数値は必ず1つ
でなければいけません。
関数式である「f(x)=x」「y=x
  

関数式ではない「f(x)=√xまたは−√x」「y=√xまたは−√x」
  

「方程式のグラフ、円の方程式のグラフ」(陰関数)
  



1次式2次式3次式とは(次数と次式と元)
この後で「方程式」と「関数」についてを学ぶためには、
「n次数」と「n次式」についての理解が必要となりますので説明します。
式の中で
  「実数」の部分を「0次数」
  「変数(xやyなど)」が「単独」で使われた部分を「1次数」
  「変数(xやyなど)」同士をn回「掛けた」部分を「n次数」
と表現して、
  その式の中で使われる一番大きな次数の数をnとすると、
  その式は「n次式」の式と言えます。
式の中で使われた最大の「次数」が
  「0次数」なら「0次数」
  「1次数」なら「1次式」
  「2次数」なら「2次式」

「次式」の判断例を幾つか見てみましょう。
「1+2*3」→「0次式」
  「1」は0次数、「2*3」は0次数
  この式の「最大次数は0」の為「0次式」です。
「x+1」→「1次式」
  「x」は1次数、「1」は0次数
  この式の「最大次数は1」の為「1次式」です。
「x」→「2次式」
  「x」は2次式
  この式の「最大次数は2」の為「2次式」です。
「x−abc+4d3e+2」→「3次式」
  「x」は2次式、「abc」は3次式、「4d3e」は2次式、「2」は0次式
  この式の「最大次数は3」の為「3次式」です。

「元」について…
「式」の中にある「変数の種類」の総数を「元」と言います。
  「6x+4x−10」→「1元2次式」
  「6x+4y−10z」→「3元2次式」
  「6xyz+2y」→「3元3次式」
  「6xz+2y」→「3元6次式」
後述の「方程式」の時は以下のような呼び方ができます。(この例の右辺数値は適当です)
  「6x+4x−10=0」→「1元2次方程式」
  「6x+4y−10z=1」→「3元2次方程式」
  「6x+xyz=2」→「3元3次方程式」


「等式」と「不等式」と「恒等式」と「方程式」と「関数」の違い
「恒等式」と「方程式」と「関数」があやふやだと困るので、
ここでそれぞれの違いを軽くまとめておきます。
「等式」とは
「=」(イコール)で結ばれた式の事です。
  「(式A)=(式B)」
  「2+3 = 4+1」や「a+b = c+d」など
  「左の式」と「右の式」のバランスが等しい。
「=」(イコール)の事を「等号」と言います。

「不等式」とは
「≧や≦」「>や<」「≠」(不等号)などで結ばれた式の事です。
  「(式A)<(式B)」
  「1+2 < 3+4」や「a+b < b+d」など
  「左の式」と「右の式」のバランスが等しくない(不等である)。
「≧≦><≠」の記号の事を「不等号」と言います。
「変数(xやyなど)」が指す「答えの範囲を解くため」に不等式を使います。
(「方程式は変数の指す値」「不等式は変数の指す範囲」を求める事が出来ます)

「恒等式」とは(「等式」の一部)
「公式、定理、定義、法則」などと呼ばれる
「=」で結ばれた「証明する為の等式」は全て「恒等式」です。
  「(式A)= (式B)」
  「1 = 1.0」や「x2 = x*x」や
  「(x + y)2 = x + 2xy + y」など
  式で使われた「変数(xやyなど)」にどんな値が入っても
  「左の式」と「右の式」のバランスが等しくなり式が成立する。
  (「証明する為の等式」であれば、変数が式になくても良い)
「恒等式」は「等式」の中の一部です。

「方程式」とは(一次方程式 二次方程式 三次方程式)
「答えを解く為に存在する問題となる等式」つまり、
「答えを解く為の等式」の事を「方程式」と呼びます。
  「(式A)=(式B)」
  「2x+1 = 7」や「x+3x−4 = 0」など
  「変数(xやyなど)」の「答えを解く為の等式」。
「方程式」は「等式」の中の一部です。

「方程式」では式が「1次式、2次式、3次式」かによって、
「一次方程式、二次方程式、三次方程式」と呼び方が変わります。
「方程式」は変数「xやy」などの、分からない変数の解を求める為に使う式です。
  「一次方程式」の例(1次式)
    「2x−2 = 0」は「x = 1」が答え。
    「2x+1 = 7」は「x = 3」が答え。
    参考→http://keisan.casio.jp/exec/system/1215392483
  「二次方程式」の例(2次式)
    「x+3x−4 = 0」は因数分解(因数分解は後ほど習います)すると
    「(x+4)*(x−1) = 0」となり「x=−4とx=1」が答え。
    参考→http://keisan.casio.jp/exec/system/1161228770
  「三次方程式」の例(3次式)
    「x−2x−11x+12 = 0」は「x=−3とx=1とx=4」が答え。
    参考→http://keisan.casio.jp/exec/system/1256966554
「方程式」では「恒等式」を使用して答えを解きます。

「関数」とは(1次関数2次関数3次関数)
「関数式」は「グラフ化」した物とセットでよく扱われます。
  「xに何か値を入れると必ずf(x)やyの値が1つに決まる
ような関係性の式を「関数式」と言います。
「関数」の中で行われている計算を式として表す時、
「=の右側の式」は
  「変数」に値が入った時に変換するルールとなる式
となります。
  「(関数)=(変換ルール式)」
  これに従い「関数式」
    「f(x) = x+2」
    「y = x+2」
  のように記述できます。
  この際「関数」の出力は、
    「関数f(x) =x+2」では「f(1) = 3」
    「関数y=x+2」では「x=1のときy=3」
  のようになります。
「関数式」で使用する「=」は「等式」とは違い「変換ルール式」を指定するものです。

注意:
  「関数」同士の「等式」や「方程式」の事を
  「関数等式」や「関数方程式」と言います。
    「f(x+y) = f(x)+f(y)」
  のように記述します。
  ここでの「=」は「等式」を意味します。
  「関数式」で使用する「=」は「変換ルール式」を指定します。
  違いに注意して下さい。

「関数」では「=の右側の式」が「1次式、2次式、3次式」かによって、
「1次関数、2次関数、3次関数」と呼び方が変わります。
「関数」は「変数」に様々な数値を入れた時の「解の値の変化」を知る為に使う式です。
  「1次関数」の例(1次式)
    「f(x)=2x−2」
    「y=2x−2」
    参考→http://www.wolframalpha.com/input/?i=f(x)%3D+2x-2
  「2次関数」の例(2次式)
    「f(x)=x+3x−4」
    「y=x+3x−4」
    参考→http://www.wolframalpha.com/input/?i=f(x)%3Dx%5E2%2B3x-4
  「3次関数」の例(3次式)
    「f(x)=x−2x−11x+12」
    「y=x−2x−11x+12」
    参考→http://www.wolframalpha.com/input/?i=f(x)+%3D+x%5E3%E2%88%922x%5E2%E2%88%9211x%EF%BC%8B12


1次関数2次関数3次関数のグラフ
「1次関数」「2次関数」「3次関数」の式を「グラフ」にするとそれぞれ、
  「1次関数グラフ」は「直線」
  「2次関数グラフ」は「放物線」
  「3次関数グラフ」は「曲線」
の「グラフ」になります。
  
  「1次関数」直線グラフ、「2次関数」放物線グラフ
  については「他の章」でさらに詳しく学ぶ予定です。




C# 統計・微分積分・線形代数への道
次へ→http://1studying.blogspot.jp/2017/08/senkei-index.html#kuw07





以下のサイトを参考にしました。

【2次関数】f (x)の意味
http://kou.benesse.co.jp/nigate/math/a14m0205.html

関数f(x)[意味・使い方・読み方]
http://manapedia.jp/text/2501

恒等式と等式の違いは何ですか?
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1348651388

方程式と恒等式の違い
https://mathtrain.jp/equ_iden

【二次関数】
http://wakarimath.net/explanation/q.php?pID=E00010

3次関数はどうなる?
http://mtf.z-abc.com/?eid=829022

グラフィカルに数式を表示できる
http://www.wolframalpha.com/input/?i=y%3D-x

数学記号の表
https://ja.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E8%A8%98%E5%8F%B7%E3%81%AE%E8%A1%A8

数式記号の読み方・表し方
http://izumi-math.jp/sanae/report/suusiki/suusiki.htm

2017年11月8日水曜日

C# 数学17 「常用対数、ネイピア数e-基本1、自然対数-基本1」e log ln exp

C# 統計・微分積分・線形代数への道
目次→http://1studying.blogspot.jp/2017/08/senkei-index.html#kuw17

「常用対数と自然対数、exp、log、ln」について説明、メモ。


ここでは、
「×」を「*」
「÷」や「分数」を「/」
で表現します。



底、真数、指数、対数


真数と対数とは
「真数」と「対数」を求めるには以下のように計算を行います。
  
それぞれの「答え」は、
  「真数を求める = 8」(2の3乗は?、?の答えは8)
  「対数を求める = 3」(2の?乗は8、?の答えは3)
となります。

「底、真数、指数、対数」はそれぞれ以下の部分を指す名称です。
  
「指数」と「対数」は同じ意味を指す言葉ですが、
言い回しによって使い分けます。
  2の3乗の「指数」は3です。(「真数」は8です。)
  2を「底(てい)」とする(「真数」)8の「対数」は3です。
のように使い分けます。


「対数log」、常用対数について


関数電卓で「対数log」を計算
「log」は「対数」が知りたい時に使います。
  「log底真数は対数乗」(底の対数乗が真数)
と覚えます。
(「底(てい)」が何乗されて「真数」になるか=「対数」)
「関数電卓」で「対数」を求める際は、
「log」の「底(てい)」を入力しないで計算を行う事に注意して下さい。
  下図のように「logba = log(a)/log(b) = 対数」として計算します。
  
例えば
  「log28」は「ろぐ に の はち」
のように読みます。
「log28」を「関数電卓」で計算する場合、
  「log(8) / log(2) = 3」
と計算します。
結果、対数が「3」となり、
  「2を3乗すると8になる」
事が求まりました。

「log」の具体的な計算例は後述『「底の計算公式」計算例』でやるとして、
まずは、
  「関数電卓」で使われる「log()」は「常用対数log10」の省略系である
という事を説明していきます。


「常用対数」について…(log10
「常用対数log10」とは「10を底(てい)とする対数」の事です。
「関数電卓」で使用される「log」は、
「底(てい)」を指定しないと「常用対数log10」として扱います。。
つまり、
  「関数電卓」で、
  「log(1000)」と入力した場合「log101000」と同じ意味。
となります。
  ↓「log101000」のイメージ
  

「関数電卓」によっては、
「log(10,1000)」など「底(てい)」を明示入力出来る機種もありますが、
通常は「log(1000)」のように入力します。
(「常用対数log10」の他に、
「自然対数log」という「ネイピア数eを底(てい)とする対数」も存在します)

注意!
C#のプログラムでは
  「Math.Log10(8)」とすると「常用対数log108」となり、
  「Math.Log(8)」とした場合「自然対数log8」として解釈されます。
  つまり、
  「関数電卓」では「底(てい)」を省略時「常用対数log10」として扱いますが、
  「プログラム」では「底(てい)」を省略時「自然対数log」として扱います。
  「関数電卓」と「プログラム」で省略時の解釈が逆になるので注意が必要です。
後述する
  「C#で常用対数(log10)や自然対数(logeやln)を扱う」
の項でC#での記述例を記載します。


関数電卓の記述で統一
今後学ぶ「微分」などの「ネイピア数e」を頻繁に使う式では、
「自然対数log1000」の式の方を「log1000」と省略する事もあります。
この場合も「関数電卓」とは違う解釈となる為注意が必要です。
  「関数電卓」では
  「log1000」とした場合「常用対数log101000」を指す。
と、厳格に定められています。
このブログでは混乱しないように、
厳格に定められた「関数電卓」の記述方式に統一して説明を行います。



「対数log」の公式


「対数log」の公式4パターン
・定義
  「0 < a」(「a」は「底(てい)」)
  「1 ≠ a」(「a」は「底(てい)」)
  「0 < M」「0 < N」(「MやN」は「真数」)
この「定義」を前提に
「対数log」の公式を4パターン紹介します。

「logの性質」となる公式
  「loga1 = 0」
    「loga1 = log(0)/log(a) = 0/log(a) = 0」
    (答えが対数0なので、
     試しに指数0で計算してみると「a0 = 1」と逆算できます)
  「logaa = 1」
    「logaa = log(a)/log(a) = 1」

「log真数の積」から「対数logの和」への公式
  「logaMN = logaM + logaN = 対数」
  例:「log2(2*4) = log22 + log24 = 1 + 2 = 3」

「log真数の商」から「対数logの差」への公式
  「loga(M/N) = logaM − loga= 対数」
  例:「log2(16/2) = log216 − log22 = 4 − 1 = 3」

「log真数の累乗」から「実数と対数logの積」への公式
  「logaMr = r * loga= 対数」(rは実数)
  例:「log242 = 2 * log24 = 2 * 2 = 4」
    (試しに指数4でを逆算してみると、
     「真数」は「24 = 16 = 42」となります。)
  例:「log39 = log332 = 2 * log33 = 2 * 1 = 2」


「底の変換公式」
この公式は「log」を理解する上で一番重要な公式となりますので、
他の公式とは別に説明します。
定義
  「a b c」は「+の整数」
  「a ≠ 1」「c ≠ 1」(「aとc」には「底(てい)」となる数字が入る)
を前提とした時、
「対数log」から「対数logの商」への「底の変換公式」
  「logab = (logcb) / (logca) = 対数」
  例:「log28 = log48 / log42 = 1.5 / 0.5 = 3」
が成り立ちます。
理解する為にも以下の計算例を確認して下さい。


「底の変換公式」計算例
ここでは「底の変換公式」を使い「対数」を求める際、
「関数電卓」や「筆算」などを使い、具体的な計算を行う例を示します。

・計算例1
  ・「底の変換公式」
  「logab = (logcb) / (logca) = 対数」
での
  分数内の「cの底(てい)」は
  分母と分子で同じ数字で揃えれば幾つであってもかまいません。
「関数電卓」で計算してみます。
  
これと同じ式を
  「cの底(てい)」の数字を変えて計算しても同じ答えとなります
「筆算」で以下のように計算する事が可能です。
  
結果「cの底(てい)」を幾つにしようが答えは同じ、
  「log28」の対数は「3」
となる事が分かります。

・計算例2
「底(てい)」が違う「log」同士の積(掛け算)は、
以下のように「底(てい)」を揃えて分数化して計算を行います。
  
結果、
  「log63・log336」の対数は「2」
となります。
このような「底(てい)」が違う「log」同士の積(掛け算)の場合は、
「底(てい)」が明示入力できるタイプの「関数電卓」があると、
計算がとても楽ですね。


常用対数表と自然体数表
「筆算」でlogの計算を求めるのに、
「常用対数表」や「自然体数表」という表を使って調べる方法もあります。
例えば「常用対数表」で「5.02」という数値を調べれば、
「約0.701」とう答えを知る事が出来、
  「log105.02 ≒ 0.701」
と分かります。
ただ、
「関数電卓」で計算すればもっと簡単に正確な答えが出せる為、
「常用対数表」や「自然体数表」の読み方はここでは説明しません。
興味があれば下のリンク先を調べてみて下さい。
→常用対数表の使い方
https://www.khk.or.jp/activities/regalexamination_course/dl/taisuuhyou.pdf
→【対数】「対数表」の見方
http://oto-suu.seesaa.net/article/174112556.html



「ネイピア数e(exp)」、自然対数について


「ネイピア数e(exp)」
「ネイピア数e」は「自然対数e」や「自然対数の底」とも言われる
「定数」(決められた数字)です。
  ・定数「ネイピア数e」
  「e = 2.718281828…」
「ネイピア数e」は小数点がランダムで終わりが無い為「無理数」とも言います。
小数点以下の少数が書き切れないπなどと同じ扱いで、
「e」の数式記号で表記される今後結構重要となる「定数」です。
(微分積分でとても良く使われます)
「e(exp)」の由来は「exponential(指数の)」という意味から来ているそうです。


「ネイピア数e」の別の記述方法
  「e」の「x乗(指数)」を表す時、
    「e
  と記述しますが、
    「exp{ x }」
  のように記述する事も出来、
  「エクスポネンシャルx」と読みます。
    
  のように扱います。
また、
  「eを底(てい)とする対数」の事を「自然対数」と言います。
  「自然対数」は
    「log」や「ln」
  のように記述出来ます。
    「log1.648721271 ≒ 0.5」又は「ln 1.648721271 ≒ 0.5」


「自然対数」について…(log又はlnログナチュラル)
「自然対数」とは「ネイピア数eを底(てい)とする対数」の事です。
これは「log」の事を指すのですが、
「関数電卓」では省略して「ln」(ログナチュラル)を使用します。
つまり、
  「関数電卓」で、
  「ln(1)」と入力した場合「log1」と同じ意味。
となります。
  

「関数電卓」によっては、
「log(e,1)」など「底(てい)」を明示入力出来る機種もありますが通常「ln」を使います。
(「自然対数log」の他に、
「常用対数log10」という「10を底(てい)とする対数」も存在します)

注意!
C#のプログラムでは
  「Math.Log10(8)」とすると「常用対数log108」となり、
  「Math.Log(8)」とした場合「自然対数log8」として解釈されます。
  つまり、
  「関数電卓」では「底(てい)」を省略時「常用対数log10」として扱いますが、
  「プログラム」では「底(てい)」を省略時「自然対数log」として扱います。
  「関数電卓」と「プログラム」で省略時の解釈が逆になるので注意が必要です。
後述する
  「C#で常用対数(log10)や自然対数(logeやln)を扱う」
の項でC#記述例を記載します。



常用対数と自然対数の定義


「常用対数(log10)」と「自然対数(logやln)」を使用する時に
理解しておきたい定義を改めてまとめておきます。


常用対数の定義
「常用対数(log10)」の定義
  「底(てい)を10」「真数をx」「指数対数をy」とした時、
  「10y = x」
  「log(x) = log10(x) = ln(x) / ln(10) = log(x) / log(10) = y」
となります。
  


自然対数の定義
「自然対数(logやln)」の定義
  「底(てい)をネイピア数e」「真数をx」「指数対数をy」とした時、
  「ey = x」
  「ln(x) = loge(x) = log(x) / log(e) = y」
となります。
  


対数関数
自然対数 ln(x)、常用対数 log(x)、aを底とする対数 log_a(x)の対数関数を計算
参考→http://keisan.casio.jp/exec/system/1260332465



C#で常用対数(log10)や自然対数(logeやln)を扱う


C#での対数使用例
C#では
「常用対数(log10)」を使用する場合は、
  「Math.Log10(8)」や「1.0/Math.Log(10,8)」
  (「関数電卓」では「log(8)」や「log(10,8)」)
などと記述します。
「自然対数(log又はlnログナチュラル)」を使用する場合は、
  「Math.Log(8)」や「1.0/Math.Log(Math.E,8)」
  (「関数電卓」では「log(e,8)」や「ln(8)」)
などと記述します。
                //常用対数(log10)
                //Log10はそのまま使うと「常用対数」となる
                double log_10a = System.Math.Log10(8);
                //底(てい)を10と明示する(底を明示する場合必ず1.0から割り逆数にする事!)
                double log_10b = 1.0 / System.Math.Log(10, 8); // 1.0から割り逆数にする
                MessageBox.Show(log_10a.ToString()); // →「0.903089986991944」
                MessageBox.Show(log_10b.ToString()); // →「0.903089986991944」

                //自然対数(log eやln)
                //Logはそのまま使うと「自然対数」となる
                double log_e1 = System.Math.Log(8);
                //底(てい)をeと明示する(底を明示する場合必ず1.0から割り逆数にする事!)
                double log_e2 = 1.0 / System.Math.Log(System.Math.E, 8); // 1.0から割り逆数にする
                MessageBox.Show(log_e1.ToString()); // →「2.07944154167984」
                MessageBox.Show(log_e2.ToString()); // →「2.07944154167984」


C#と関数電卓でのlogの違い
「log」の解釈は「関数電卓」と「C#」で変わります。
「関数電卓」では「底(てい)」を省略時「常用対数(log10)」として扱います。
「プログラム」では「底(てい)」を省略時「自然対数(log又はln)」として扱います。
「関数電卓」と「プログラム」で省略時の解釈が逆になるので注意が必要です。
更に、
「プログラム」上で「底(てい)」を明示して計算する時は、
「1.0」から割り数値を逆数にする必要があります。
この点も注意が必要となります。
  「関数電卓」で「log(8)」→「log108」(常用対数)
  「関数電卓」で「log(e,8)」→「log8」(自然対数)
  「関数電卓」で「ln(8)」→「log8」(自然対数)
  「C#」で「Math.Log10(8)」→「log108」(常用対数)
  「C#」で「Math.Log(8)」→「log8」(自然対数)
  「C#」で「1.0/Math.Log(10,8)」→「log108」(常用対数)
  「C#」で「1.0/Math.Log(Math.E,8)」→「log8」(自然対数)



PCや関数電卓で「指数表記e」を扱う際の注意


「E」や「e」を「指数表記」として扱う!?
ちょっとややこしい話なのですが「PCや関数電卓」などでは
「E又はe」の表記を「ネイピア数e」としてではなく、
「×10」の「指数表記」として扱う事があります。

例えば
  「100000」という数字を表すのに以下のように表示します。
    「1E+5」又は「1e+5」
  ここでの「E+5又はe+5」は「×105」の事なので「1×105」となります。
  「1500000」という数字を表すのに以下のように表示します。
    「1.5E+6」又は「1.5e+6」
  ここでの「E+6又はe+6」は「×106」の事なので「1.5×106」となります。
この例のように「E又はe」が「指数表記」として扱われます。

「関数電卓」によっては「指数表記e」を「ネイピア数e」と区別する為に
  「100000」を「1×105
  「1500000」を「1.5×106
のように、
あえて「指数表記e」を使わず分かりやすく表示してくれる電卓もあります。

「C#」のプログラムでは数値と文字列を相互変換する時に、
意図せず「指数表記e」が付いたり外れたりする事があります。
明示的に「指数表記e」を付けたり外したりする為には、
以下ような記述が必要となります。
                // 指数表記を行う
                double testNum1 = 12.3456789;
                MessageBox.Show(testNum1.ToString()); // 「12.3456789」
                MessageBox.Show(testNum1.ToString("E")); // 「1.234568E+001」
                MessageBox.Show(testNum1.ToString("E3")); // 「1.235E+001」
                MessageBox.Show(testNum1.ToString("E2")); // 「1.23E+001」
                MessageBox.Show(testNum1.ToString("0.000000e+0")); // 「1.234568e+1」
                MessageBox.Show(testNum1.ToString("0.000e+0")); // 「1.235e+1」
                MessageBox.Show(testNum1.ToString("0.00e+0")); // 「1.23e+1」

                // 指数表記を外す
                double testNum2 = 0.00001; // ← 勝手に指数表記となってしまう数値
                string testStr2 = "0.######################";
                MessageBox.Show(testNum2.ToString()); // 「1E-05」
                MessageBox.Show(testNum2.ToString(testStr2)); // 「0.0000011」
                MessageBox.Show((10.0).ToString(testStr2)); // 「10」
                MessageBox.Show((12.30).ToString(testStr2)); // 「12.3」
                MessageBox.Show((0).ToString(testStr2)); // 「0」

                // 「指数表記を使用 | カンマ付きの数字文字列を使用」で
                // 文字列 → double変換
                double testNum3 = double.Parse("1.2345E+2", System.Globalization.NumberStyles.AllowExponent | System.Globalization.NumberStyles.Number);
                MessageBox.Show(testNum3.ToString()); // 「123.45」
                MessageBox.Show(testNum3.ToString("0.######################")); // 「123.45」





以下のサイトを参考にしました。

対数関数
自然対数 ln(x)、常用対数 log(x)、aを底とする対数 log_a(x)の対数関数を計算
http://keisan.casio.jp/exec/system/1260332465

対数とは何なのかとその公式・メリットについて。対数をとるとはどういう意味か?
https://atarimae.biz/archives/12581

対数(LOG)の計算と公式!これでもうバッチリ!!
http://kenyu.red/archives/3132.html

対数 log の公式と計算
https://sci-pursuit.com/math/logarithm-formulae-and-calculation.html

logの計算機での計算方法
http://support.casio.jp/answer.php?cid=004002001001&qid=26860&num=10

logとlnの違い
https://okwave.jp/qa/q224511.html

数学記号exp,ln,lgの意味
https://mathtrain.jp/explnlg

【指数・対数関数】指数と対数の関係
http://kou.benesse.co.jp/nigate/math/a14m1208.html

数学記号の表
https://ja.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E8%A8%98%E5%8F%B7%E3%81%AE%E8%A1%A8

数式記号の読み方・表し方
http://izumi-math.jp/sanae/report/suusiki/suusiki.htm



2017年9月19日火曜日

C# 数学3 「統計-1、正規分布-1」(総和Σ 総乗Π 平均偏差 母平均μ 標本平均 標準偏差σ 分散)

C# 統計・微分積分・線形代数への道
目次→http://1studying.blogspot.jp/2017/08/senkei-index.html#kuw03

「統計の基本」
メモっておく。

ここでは、
「×」を「*」
「÷」や「分数」を「/」
で表現します。



和の記号Σ(シグマ)総和


Σとは…
Σは「和の記号」と呼ばれています。
Σは総和(合計)を表します。
合計は英語で「Summation」、
このイニシャルの「S」はギリシャ文字で「Σ」を指します。

Σは、
繰り返し数値を足して合計を求める時に使用し、
  
のように書きます。
これは、以下の計算が繰り返される事を意味します。
  「Σ」の右横の「a」には「計算式」が入ります。
  「Σ」の計算結果(合計)を「resultSum」として考えます。
  「変数i」が「n」の値になるまで「計算式a」を繰り返す形となります。
  1)「resultSum」に「0」を初期値として設定。
  2)「変数i」に「1」を初期値として設定。
  3)「計算式a」の計算結果を「resultSum」へ加算。
  4)「変数i」が「n」の値なら終了。
    そうでないなら「変数i」を「+1」して「3)」から繰り返し。
終了時の「resultSum」の値が「答え」となります。
(「変数i」は「添え字i」などと言われる事もあります。
別に「i」以外の「kやx」などの変数でも構いません)


計算例1
  
変数「i = 1」でスタート(繰り返し毎に「+1」)
計算式「2」を「変数i」が「3」になるまで「3回繰り返し」足しています。
        var resultSum = 0; //「resultSum」に計算結果が入ります
        var n = 3;
        for (var i = 1; i <= n; i++){
            resultSum += 2; //2を加算
        }
よって、「resultSum=6」となります。


計算例2
  
変数「i = 3」でスタート(繰り返し毎に「+1」)。
計算式「i+2」を「変数i」が「6」になるまで「4回繰り返し」足しています。
  var resultSum = 0; //「resultSum」に計算結果が入ります
  var n = 6;
  for (var i = 3; i <= n; i++)
  {
   resultSum += (i + 2); //(i+2)を加算
  }
よって、「resultSum=26」となります。


Σの書き方
下図の「Σ」の「計算式(i+5)」は「計算式a」と省略して表記出来ます。
その場合「計算式a」の中身が「(i+5)」である事の明示が必要です。

この式の、
「計算式(i+5)」の部分を「a」と表記する事により、
「a」「a」「a」のような書き方が可能です。
  
この書き方の便利な所は、
  『「a = (i+5)」です』
  『「計算式a」は「(i+5)」です』
のように「a」の中身は「 (i+5)」と明示する事により、
  「a」は「(1+5)」を指します
  「a」は「(2+5)」を指します
  「a」は「(3+5)」を指します
と「a」の「変数i」に入る数値に従った「(i+5)」の式の結果を得る事ができます。
公式ではこの「a」を使用した書き方の事を、

のように表現しています。


階和の公式
  「1+2+3+4+5+6+…+?」
のような「1」から決まった数まで順に足していく式の事を「階和」と言います。
「階和」で繰り返し足す回数を「n」で表した「階和の公式」が
  
です。
当然「等式=」左側と右側で必ず同じ答えとなります。
「左側の式」「Σ」を使って計算すると…
  「Σ」上部の「n」を「4」とした時
    「1+2+3+4 = 10」
  となります。
「右側の式」を使って計算すると…
  「(n(n+1))/ 2」の「n」を「4」とした時
    「(4*(4+1))/ 2 = 20/2 = 10」
  となります。
「階和の公式」を使うと「階和」の計算がとても便利になります。
例えば「1〜100」までの「階和」を計算する場合などは、
「左側の式」「Σ」を使って計算すると
  「1+2+3+4+…100 = ?」
と式を書くのも計算するのも大変そうなのが、
「右側の式」を使って計算すれば
  「(100*(100+1))/ 2 = ?」
と簡単な式で書けるようになります。

この「階和の公式」を利用して、
「Σ」の「計算式」を「計算式(i+5)」とした場合、
「計算式(i+5)」を「+5n」として「等式=」右側に記述する事ができます。
  
この式をつかえば、
「n」が幾つであっても素早く計算する事ができます。
例えば「n = 3」した場合、
  
のような形で
  「(1+5)+(2+5)+(3+5)= ?」
を計算する事ができました。



Π(大文字のパイ)総乗、総積


Πとは…
Πは「積の記号」と呼ばれています。
数学では「Πパイ」と呼ばず「全ての積」と呼ばれています。
Πは総乗、総積を表します。
積は英語で「Product」、
このイニシャルの「P」はギリシャ文字で「Π」を指します。

Πは、
繰り返し数値を掛けて合計を求める時に使用し、
  
のように書きます。
これは、以下の計算が繰り返される事を意味します。
  「Π」の右横の「a」には「計算式」が入ります。
  「Π」の計算結果(総乗)を「resultProduct」として考えます。
  「変数i」が「n」の値になるまで「計算式a」を繰り返す形となります。
  1)「resultProduct」に「1」を初期値として設定。
  2)「変数i」に「1」を初期値として設定。
  3)「計算式a」の計算結果を「resultProduct」の値と掛け算を行い、
    その結果を改めて「resultProduct」へ格納。
  4)「変数i」が「n」の値なら終了。
    そうでないなら「変数i」を「+1」して「3)」から繰り返し。
終了時「resultProduct」の値が「答え」となります。
(「変数i」は「添え字i」などと言われる事もあります。
別に「i」以外の「kやx」などの変数でも構いません)


計算例1

変数「i = 1」でスタート(繰り返し毎に「+1」)
計算式「2」を「変数i」が「3」になるまで「3回繰り返し」掛けています。
  var resultProduct = 1; //「resultProduct」に計算結果が入ります
  var n = 3;
  for (var i = 1; i <= n; i++)
  {
   resultProduct *= 2; //2を掛ける
  }
よって、「resultSum=8」となります。


計算例2

変数「i = 3」でスタート(繰り返し毎に「+1」)。
計算式「i+2」を「変数i」が「6」になるまで「4回繰り返し」掛けています。
  var resultProduct = 1; //「resultProduct」に計算結果が入ります
  var n = 6;
  for (var i = 3; i <= n; i++)
  {
            resultProduct *= (i + 2); //(i+2)を掛ける
  }
よって、「resultSum=1680」となります。


Πの書き方
「Σ」と同じように、
「計算式」を「計算式a」と省略する事により、
  
と「Π」の式を表現できます。
例えば、
  「計算式a」は「a = (i+5)」ですと明示して、
  「n = 3」です
とした場合を「Π」の式にすると
  
のような書き方となります。



Σ(シグマ)から「平均」と「平均偏差」の計算方法


Σで平均を計算する公式
  
が「平均(average)」を計算する公式となります。
  
のようにも記述する事ができます。
これだけだと分かりにくいので、
計算例を書きます。


「平均(average)」計算例
「計算式a」の結果として以下の4つの数値があったとします。
  「a=2」「a=4」「a=8」「a=12」
この4つの数値の「平均(average)」を調べる為に
  「n = 4」
として計算を行ってみます。
  
よって、
  「平均(average)」は「6.5」
となりました。
これを
C#のプログラムで書いた場合以下のようになります。
        double average = 0; //「average」に計算結果である平均が入ります
        double sum = 0; //「sum」には合計値(総和)が入ります
        var a = new double[] { 2, 4, 8, 12 };
        var n = a.Length; //「a」の数
        for (var i = 1; i <= n; i++){
            sum += a[(i - 1)];//合計値(総和)を計算
        }
        average = sum / n; //「平均(average)」を計算
↓実はもっと簡単に書けます。
                var a = new double[] { 2, 4, 8, 12 };
                MessageBox.Show(a.Average().ToString()); //「平均(average)」を表示


「偏差」って何?
「平均(average)」からの距離を「偏差」と言います。
「a」がそれぞれ
  「a=2」「a=4」「a=8」「a=12」
として4つの「a」の
  「平均(average) = 6.5」
とした場合
  
のようになり、
それぞれの「偏差」は
  「a偏差=-4.5」「a偏差=-2.5」「a偏差=1.5」「a偏差=5.5」
という事になります。


Σで「平均偏差」を計算する公式
「平均偏差」は「偏差の絶対値」(マイナスの取れた偏差)の「平均」です。
(「平均偏差」は「平均(average)」からの距離の平均です。)
  
が「平均偏差」の公式となります。
  
のように式を変形させる事が出来ます。
これだけだと分かりにくいので、
「平均偏差」の計算例を書きます。


「平均偏差」計算例
「a」がそれぞれ
  「a=2」「a=4」「a=8」「a=12」
として、
まずは「平均(average)」を計算します。
  
これにより
  「平均(average)」が「6.5」
と分かりました。
次に、
「平均(average) = 6.5」を使って
「平均偏差」を計算します。
  
よって、
  「平均偏差」が「3.5」
となりました。

つまり、
  「平均からの各要素のバラツキ度」の「平均」が「平均偏差」
なのです。
但し「平均偏差」は実はあまり使われません。
  「標準偏差σ」と「分散」
が主に「バラツキ度」を計る数値として使用されます。
これらについては後で説明します。

C#でプログラムで書いた場合以下のようになります。
                double result = 0; //「result」に計算結果である「平均偏差」が入ります
                double total = 0; //「偏差の絶対値」の合計が入ります
                var a = new double[] { 2, 4, 8, 12 };
                double average = a.Average(); //「平均(average)」の「6.5」が格納される
                int n = a.Length; //「a」の数
                for(int i=1; i <= n; i++)
                {
                    total += Math.Abs(a[(i - 1)] - average);//「偏差の絶対値」の合計を計算
                }
                result = total / n;
                MessageBox.Show(result.ToString()); //→「3.5」と表示


補足(平均記号の書き方)
今回はイメージしやすくする為に
  
としました。
本来は要素となるべき記号は「a」ではなく「x」を使います。
「xの頭に横棒」を付けると「xの標本平均」(x配列の平均)を指すので、
  
とするのが主流です。

例えば「偏差」を表す場合は
  
のように表します。



「母平均(母集団の平均)μ(ミュー)」と「標本平均x


「母平均μ(母集団の平均)」とは
「母平均μ」は、
「全て要素から作った配列」から作られた「平均」という意味です。
  「母平均μ」を求める公式
  


「標本平均」とは
「標本平均x」とは
「全要素から標本となる要素を抽出して並べた配列」から作られた「平均」という意味です。
  「標本平均x」を求める公式
  


「母平均μ(母集団の平均)」と「標本平均」
公式を見比べると、両方とも計算方法が同じである事に気付きます。
平均を求める計算方法は同じですが、
「全要素の平均」なのか、一部の「標本からの平均」なのかで意味合いが変わります。
意味の違いに注意して下さい。
  



「標準偏差σ(小文字のシグマ)、分散、正規分布」


「標準偏差σ」と「分散」とは何か…
「標準偏差σ」や「分散」とは、
配列の「平均値」からどれ位近付いたり離れたりして
「配列内の各要素個々の値」が分布しているか、
分布によるバラツキの「バラツキ度」を数値化した物です。

「バラツキ度」の数値が大きいと、分布にバラツキが出て
配列内の各要素個々の数値が平均値周辺に集まりにくくなります。
「バラツキ度」の数値が小さいと、分布にバラツキが無くなり
配列内の各要素個々の数値が平均値周辺に集まります。

「バラツキ度」の種類は
  ・「標準偏差σ」
    →「分散」に「√」ルートを付けた値(「正規分布」で使用)
  ・「分散」
    →「平均(average)」との「差(偏差の距離)」を2乗した物の平均
の2種類があり、
普段は(「正規分布」で使用する為)「標準偏差σ」を使います。


「標準偏差σ」と「分散」の公式
「σ(小文字のシグマ)」は「標準偏差」を示しています。
「標準偏差σ」の公式は
  
となります。ここから
  
という公式に倣って
「分散」に付いている「√ルート」を外せば、
↓「分散」の公式となります。
  

「標準偏差σ」や「分散」の公式では、
「偏差」を公式の中で「絶対値」化して使用します。
  
のように「偏差」を「2乗」する事で、
「絶対値」(マイナスの取れた2乗)を得て公式内で使用しています。

上記「標準偏差σ」の公式は、
「√」を「σ2」に記述する事で
  
のように書く事もできます。

これら「標準偏差σ」や「分散」の公式が
具体的にどのように使われるのかを説明します。


「正規分布」とは…
「標準偏差σ」や「分散」は「正規分布」で使用する事が多い為、
「正規分布」について説明しておきます。

「正規分布」のグラフとは、
  例えば何かを複数回試行した結果を各要素の数値として記録して、
  全要素の数値の「平均」を計算をします。
    (例えば一人の人が目隠しして数千回
     的の中心へ向けてボールを落とした場合、
     中心からずれて落ちた距離の平均がその人の「実力距離」)
  この試行回数が多い時、
  「平均」付近の数値範囲に「要素数(記録数)」が一番多く集まり
  「平均」から離れるほど「要素数(記録数)」が少ない
  ちょうど「ベル型(正規分布型)」のグラフ図になる事がよくあります。
    (「実力距離(平均)」付近より離れて落ちる球と近くに落ちる球で
     記録に「バラツキ」が出るが「平均付近」に落ちる球が最も多くなる)
  このような結果の形は「自然界」でよく起こり、
  グラフ内のどの数値範囲に「要素数」が何%集まるかの「分布」状況が
  ある程度パターンになるため、統計に利用する事ができます。
  そのパターンをグラフ化した物が「正規分布」です。
「正規分布」は以下のグラフ図が基本となります。
  「縦軸が要素数」「横軸が平均を中心とした要素の数値」です。
  
「正規分布」のグラフを見ると、
  「平均周辺(中心周辺)の数値は
     → 要素の数が多いので、試行結果の出現率が高い」
  「平均周辺(中心周辺)から離れた数値は
     → 要素の数が少ないので、試行結果の出現率が低い」
事が分かります。

このバラツキによる「出現率」を「68-95-99.7ルール」と呼びます。
「各要素」の「正規分布」グラフ内での「出現率」が、
  「±σ区間」内に収まる確率が「約68.2%」(34.13%*2)
  「±2σ区間」内に収まる確率が「約95.4%」(47.72%*2)
  「±3σ区間」内に収まる確率が「約99.7%」(49.87%*2)
となる為です。
「±3σ区間」で「99.7%」と殆どの要素が収まる為、
「3σ」が指標として使われる事が多いようです。
では、「正規分布」を使用して実際の計算を行います。
「計算例」を確認して下さい。


計算例(「標準偏差σ」と「分散」と「正規分布」)
配列内各要素の数値がそれぞれ、
  「x=2」「x=4」「x=8」「x=12」
の場合の「平均(average)」を計算します。
  
よって、「平均(average)」が「6.5」と分かりました。

次に「分散」を計算します。
  
よって、「分散」が「14.75」と分かりました。

次に「標準偏差σ」を計算します。
  
よって、「標準偏差σ」が「3.840572874」と分かりました。

それぞれの結果、
  「平均(average)」が「6.5」
  「分散」が「14.75」
  「標準偏差σ」が「3.840572874」
を「正規分布」に照らし合わせると以下のイメージとなります。
  
  6.5 ±σ → 全体の約68.2%
  6.5 ±2σ → 全体の約95.4%
  6.5 ±3σ → 全体の約99.7%
「標準偏差σ = 3.840572874」をあてはめると、
  「6.5 ± 3.840572874 → 全体の約68.2%」
  「6.5 ±(2*3.840572874) → 全体の約95.4%」
  「6.5 ±(3*3.840572874) → 全体の約99.7%」
となります。

つまり複数回の試行を行った結果、
  「x=2」「x=4」「x=8」「x=12」だった場合、
  試行の平均が「6.5」となり
  「約68%」の確率で「6.5 ±3.840572874範囲内」の数値です。
  「約95%」の確率で「6.5 ±7.681145748範囲内」の数値です。
  「約99.7%」の確率で「6.5 ±11.52171862範囲内」の数値です。
と言う事が出来ます。
  「約68%」の確率で「6.5 ±3.840572874範囲内」の数値と予測しているので、
  次の1回試行を行ったとき、
  約68%の確率で「(6.5−約3.84)〜(6.5+3.84)の範囲内」に要素が入るだろう
  と予測される。
とも言えます。
言い換えると、
  ここから「標本(サンプル)」(試行)の数を1回増やしたとき、
  「平均±標準偏差σ」の範囲内には、
  全体の「約68%」の「要素」が含まれる形と予想でき、
  「標本(サンプル)」(試行)の数が無限に近付くほど
  この予測の精度は上がる
という事です。

これは例えるなら、
中心目指してボールを落とした場合
  平均が「6.5メートル」の位値に落ちる事と、
  落ちたボールの「バラツキ度」から見て、
  「(6.5m−約3.84m)〜(6.5m+3.84m)の距離の範囲内」に
  「約68%」のボールが落ちたので、
  次の試行でこの範囲ボールが落ちる確率も「約68%」です。
  
と統計的に予測できる事になります。
「統計的予測」については後々もう少し掘り下げる予定です。

この計算例の「正規分布」以降の結果には以下の注意が必要です。
  ここでは説明の為たった4つの要素で計算例を示していますが、
  試行回数が極端に少ないのでグラフ化しても「正規分布」に見えません。
    
  その為、実際は計算結果の信頼性が著しく低くなり予測の意味をなしません。
  本来は試行回数を増やし、グラフを「正規分布」の形状に近づける必要があります。
    
今回は「標本(サンプル)」を4つでの計算でしたが、
もっと沢山の「標本(サンプル)」を用意し計算すればより精度は高くなります。
但しその際、
「各要素の分布状況」が「正規分布」の形に近い必要がある事を忘れないで下さい。
「各要素の分布」を「正規分布」(ベル型)の形状のような分析出来る状態にする為には
試行回数を増やすのがスタンダードな方法ですが、
他にも色々な工夫の方法が存在します。
この課題はここで一旦置いておき、
「他の工夫の方法(中心極限定理、Box-Cox変換、パラメトリック、ノンパラメトリック)」
については後々に学習できたらと思います。




C# 統計・微分積分・線形代数への道
次へ→http://1studying.blogspot.jp/2017/08/senkei-index.html#kuw04





以下のサイトを参考にしました。

Wikipedia:総和
https://ja.wikipedia.org/wiki/%E7%B7%8F%E5%92%8C

Wikipedia:総乗
https://ja.wikipedia.org/wiki/%E7%B7%8F%E4%B9%97

これでわかる!数列のシグマΣの計算方法を徹底解説
http://sakusaku-study.com/sigma

5分で分かる!総和記号「Σ(シグマ)」の計算方法
https://blog.apar.jp/data-analysis/4407/

和と積の記号:ΣとΠ
http://mcn-www.jwu.ac.jp/~yokamoto/ccc/math/sgmpi/

【統計学】初めての「標準偏差」(統計学に挫折しないために)
http://qiita.com/kenmatsu4/items/e6c6acb289c02609e619

wiki:標準偏差
https://ja.wikipedia.org/wiki/%E6%A8%99%E6%BA%96%E5%81%8F%E5%B7%AE

wiki:正規分布
https://ja.wikipedia.org/wiki/%E6%AD%A3%E8%A6%8F%E5%88%86%E5%B8%83

3σとは何ですか?
https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1434162719

さまざまな確率分布
http://www.biwako.shiga-u.ac.jp/sensei/mnaka/ut/statdist.html

実際の事象におけるデータの分布と確率分布、一部のデータから全体を推測する考え方
https://www.marketechlabo.com/probability-inferential-statistics/

統計web:統計学の時間
https://bellcurve.jp/statistics/course/

数学記号の表
https://ja.wikipedia.org/wiki/%E6%95%B0%E5%AD%A6%E8%A8%98%E5%8F%B7%E3%81%AE%E8%A1%A8

数式記号の読み方・表し方
http://izumi-math.jp/sanae/report/suusiki/suusiki.htm




↑Topへ