数値計算、統計処理などで、結果の桁数を何桁で表示するか検討することがある。
既定路線は「有効数字3桁」である。
いつも三桁とは限らない。
母集団が二桁の場合は、割合などの表示も2桁にすることがある。
母集団に関係なく、なし(0割)、1割、2割、3割、4割、5割、6割、7割、8割、9割、全部(10割)。と有効数字1桁にすることがある。
そこで、有効数字について、思いつくことをなるべく書き残してみようと思う。
<この項は書きかけです。順次追記します。>
有効数字 円(基本単位)以上
COBOL
有効数字といえば、COBOLです。
お金の額を扱うことがあります。
1円未満を切り上げ、切り捨て、四捨五入などして、円の単位まで表示する場合があります。
円単位で表現するときは、金額によって、16桁くらいになることがあります。
そこで、有効数字は桁数ではなく、円以上という表現になります。
金利計算などの際に、小数点以下を表示できる範囲で詳しく表示したり、
分数式で表したり、計算式自体を開示したりすることがありました。
他の分野でも、g以上とか、mm以上とか、単位で有効数字を切る分野、対象はいろいろあります。
最後の桁の計算も切り上げ、切り捨て、四捨五入以外に、五捨六入とかあるかもしれません。
有効数字 1桁
有効数字1桁の計算を行うのは、
、なし(0割)、1割、2割、3割、4割、5割、6割、7割、8割、9割、全部(10割)という表現で議論したい時。
例えば、比較する相手を特に想定せず、
自分がこれからやる仕事の3種類または4種類の、
力の入れ具合の構成を語るとき。
安全分析に4割、
品質管理に3割、
プログラミング言語に2割、
機械学習に1割。
といった感じで表現するとき。
4割と言っているが、実は31%から49%の範囲のことがある。
他の3つとの関係で、合計10割にするためで、
かつ、順番が大事だから、わかりやすくするために1桁で表す。
言い換えれば、厳密な量よりも、優先順位が大事な時。
状況に応じて、量はすごく変動するが、優先順位が安定していれば、1桁で十分。
細かい数字は、変化が激しいときには、有効数字の範囲について管理していると誤解を与えかねない。その意味で、有効数字は、管理対象の桁数だと言い換えることがある。
有効数字 2桁
百分率で表現する場合。
25%, 48%など。
この場合には、合計して100%にするための下一桁の桁上げ方式がいろいろある。
一番よく使う方法を紹介する。
3桁計算して、四捨五入で計算すると合計が100に満たない場合は、最終桁が4で、絶対値が一番大きいものから順に切り上げる。
最終桁で4がなければ、3で同じ処理をする。
合計が100を超える場合は、
最終桁が5で、絶対値が一番小さいものから順に切り捨てる。
最終桁5がなければ、6で同じ処理をする。
昔、プログラムを組んだことがある。
自作のプログラムは現存しないかもしれない。
有効数字3桁
計算結果の値を、プログラムなどで、計算に使う可能性がある場合に、
3桁表示するようにしている。
プログラムで使う方が、必要に応じて、2桁に丸めてから使うか、どうかをおまかせするため。
自分では計算する相手が有効数字2桁のときには、3桁のまま計算して、最終結果を2桁に丸めることが多い。
あらかじめ丸め処理をしてから、結果も丸め処理をするのは、差が拡大するかもしれないから。
計算対象、計算時間、計算量、計算結果の記録、計算方式などにより、いつもそうとは限らない。
有効数字4桁、5桁
計算の元の情報が、有効数字5桁でもらっている場合には、
計算結果を有効数字3桁にするよりは、有効数字4桁にして表示するようにしている。
場合によっては、有効数字5桁にすることもある。
課題としては、桁落ちなどで、実際の有効数字は1桁もしくは2桁くらいしかなさそうな値には、印をつけて表示することもある。
有効数字 2進数
計算機の内部で2進数で計算しており、2進数で保持している場合に、外部に10進出力する場合は注意が必要である。2進数を表、その10進変換値を示すのはよい。
次に計算するときも、10進表記ではなく、2進表記の方を使う場合に、有効数字は10進数で議論しない方がよい。 話をややこしくしたい場合は除いて。
演算(operation)
経済学部の卒業研究は、「等価交換原則について」で、不等式だけで交換を説明するというものです。辺のそれぞれは、倍したり足したり、引いたりはした。
工学部の卒業研究は、連立微分方程式のPade近似解法で、FORTRANの数値計算ライブラリの一部を作成した。現代制御理論のモデルを解くためである。今では、Matlabに同梱しているかもしれない。
博論は、「端末間経路選択のための片方向遅延差測定方式」で、引き算しかありません。
測定した結果を引き算する。引き算した結果の統計は、いろいろ分析する可能性はあります。ただし、横顔(profile)といって、測定項目ごとの変化の形を見て判定することが大事で、計算で求めることとは限りません。
参考資料(reference)
QiitaでもCOBOL
https://qiita.com/kaizen_nagoya/items/60596bad631956127cf8
「「FORTRAN77数値計算プログラミング」のプログラムをCとPython」をdockerで
https://qiita.com/kaizen_nagoya/items/2a961ec2de818ede717b
与件解析(data analysis)入門 仮説(195)
https://qiita.com/kaizen_nagoya/items/d9474c3bdb8ea0029bee
連立微分方程式のPade近似解法 Fortran手による最適化とコンパイラの最適化、誤差の評価
https://qiita.com/kaizen_nagoya/items/c55d29f0d7e9ebd07a31
4つのAdvent Calendarに参加して データ分析の基礎
https://qiita.com/kaizen_nagoya/items/92eabbc62764312be440
数学が理解できなくてもプログラムが書ける 仮説(33)
https://qiita.com/kaizen_nagoya/items/85c10593a9b9535bfa30
<この記事は個人の過去の経験に基づく個人の感想です。現在所属する組織、業務とは関係がありません。>
最後までおよみいただきありがとうございました。
いいね 💚、フォローをお願いします。
Thank you very much for reading to the last sentence.
Please press the like icon 💚 and follow me for your happy life.