« 「分析の常識」! | Main | ついに聴けた:蓑脇の時水の音 »

2009.04.29

5を切り上げるか切り捨てるか(数値の丸め)

「図解入門 よくわかる最新分析化学の基本と仕組み」に対していただいたコメントが10ほどになりました。本を読んでいない人にもわかるように、一つずつこのブログで補足説明をしていこうと思います。
比較的単純なテーマから。今回は数値の丸めについて。

普通の四捨五入


「丸め」というのは、測定値などの最後の何桁かを切り捨てたり切り上げたりして少ない桁数の数値にする操作です。誰でも小学校で教わる「四捨五入」は丸めの一法です。四捨五入では、丸める桁の数字が4以下なら切り捨て、5以上なら切り上げ、0ならそのまま・・・ですね。

JIS Z 8401の規則A


ところが、四捨五入では困ったことがあります。それは、多数の数値を四捨五入によって丸めた場合、平均するとわずかに正の誤差が生じることです。
なぜなら、切り捨てられるのが1,2,3,4の4個、切り上げられるのが5,6,7,8,9の5個の数字なので、全体として切り上げられる場合のほうが多くなるからです。
そこで、数値の丸め方について定めているJIS Z 8401の規則Aでは「丸めた数値として偶数倍のほうを選ぶ」としています。どういうことかというと、例えば12.25を小数点以下1桁の数字に丸める場合は切り捨てて12.2に、同じく12.35を丸める場合は切り上げて12.4にします。この規則なら5は切り上げられたり切り捨てられたりするので全体として特定方向への誤差は生じません。

・・・ここまでが「図解入門分析化学」で書いていることです。

規則Aでは不都合な場合


しかし、規則Aでも不都合が起こることがあります。
「体温の測定値を整数に丸める」という処理を考えてみましょう。規則Aではこうなります。
Photo

一見して、36℃に丸められるデータのほうが37℃に丸められるデータより多いことがわかりますね。どうしてこういうことになるかというと、36は偶数で37は奇数だからです。このように、規則Aでは隣り合った数値どうしの重みに差がついてしまいます。

昨年当サイトで ご紹介 した「実験データを正しく扱うために」(化学同人編集部)では、このような場合に留意して第3刷から次のような補足が入ったそうです。

JIS Z8401の規則Aで定める方法で、単純な四捨五入(同 規則B)で生まれる正への偏りは防げるが、丸めた後、隣り合う数値の重みに差が生じるという欠点がある。数量の少ないデータ群やばらつきの小さいデータ群を処理するときは規則Bの方がよい。

規則Bとは、5を必ず切り上げる処理法、つまり普通の四捨五入です。

規則Bなら良いか


しかし、私などが大学の先生の書かれた本にもの申すのも何ですが、規則Bを使うと「正の誤差」という欠点は復活してしまいますよね。「規則Bの方がよい」と言ってしまってよいのでしょうか。

より合理的に解決するためには、体温計の例なら「小数点1桁の数字が5の場合、切り上げるか切り捨てるかはランダムに決める」という方法が考えられます。
この考え方は 端数処理 - Wikipedia に「乱数丸め」という言葉が出ています。この言葉について解説した匿名でないウェブサイトが無いか検索してみましたが、残念ながら私には見つけられませんでした。

データ処理に関する参考書


「丸め」ひとつをとっても上記のように奥が深いわけですが、「図解入門分析化学」では本文11行とイラストだけで要点のみ載せています。さらに詳しく勉強したい方は 正しくデータを扱うための本2冊(化学系) で紹介した本を目的に応じてお読みください。
どちらも売れ行きは好調なようで、「実験データを正しく扱うために」は3刷、「これならわかる 化学のための統計手法 正しいデータの扱い方」は先月2刷になっています。また、前者については充実したサポートサイト 実験データを正しく扱うために が開設されています。


体温計のイラストは下記サイトのフリー素材です。
フリー素材の来夢来人

追記 (2009/4/30)
「5を切り上げるか切り捨てるかランダムに決める」方法も必ずしも合理的でないことに思い至りました。
具体的にはコンピュータで乱数を発生させるなどして実施することになりますが、その過程を検証可能な形で残すことが困難だからです。また、同じデータを処理してもその都度結果が異なります。
JISの規則Aと規則Bは、あるデータから導かれる結果が一通りのみである点、規格名を示せば手順を記述する必要がない点など、他の方法より優位性があると思います。

|

« 「分析の常識」! | Main | ついに聴けた:蓑脇の時水の音 »

「よくわかる分析化学」」カテゴリの記事

Comments

RSSリーダーでお世話になっております。いつも分析以外のくだらないブログ内容ばかりでスミマセン。津村先生の著書を読ませて頂きました、業務の参考書として勉強します。先生のサイトも拙ブログにリンクさせて頂いてよろしいでしょうか、よろしくお願い致します。

Posted by: フランジ君。 | 2009.05.06 02:17 PM

フランジさん、こんにちは。

いえいえ、フランジさんのブログは、まじめさがとても伝わってきます。資格も色々持っておられますね。

どうぞ「先生」は無しで、普通に「さん」付けとかでお願いします。

リンクはこちらから勝手にさせていただいているので、どうぞそちらもご自由になさってくださいね。

Posted by: ここの管理人 | 2009.05.06 10:15 PM

>「体温の測定値を整数に丸める」
これは実例として示すのには不適切な気がします。
例えば、病院で体温測定して体温計の数値をお医者さんに伝える時に
わざわざ整数値に四捨五入してから丸めた値を伝えるでしょうか?
普通はしません。
誰もが表示された数値のままを申告すると思います。
これは体温計は小数点一位までが実測値だからです。

銀行家の人が一円単位まで記されている預金表を集計して、
それをわざわざ個別に10円単位に丸めて全体の集計を出すでしょうか?
これもしないと思います。

私は例題の「体温の測定値を整数に丸める」が不自然に感じます。

Posted by: ななし | 2009.05.23 01:54 AM

ななしさん、こんにちは。

そこに気づかれたのはすごいですね。

「ばらつきの小さいデータ群」の例として、36から37℃に集中することを誰もが知っている「体温」を挙げました。

普通の体温計は水銀柱式でも0.1℃単位まで目盛りがありますから、これを整数に丸めるのは、仮想的な体温計による仮想的な処理です。体温計には0.1℃までの精度が求められるということでもあります。

ひるがえって、「ばらつきの小さいデータ群」を丸める必要が生じた場合には、測定装置の精度が測定目的に照らして十分でない可能性も考えたほうがよいということだと思います。

Posted by: ここの管理人 | 2009.05.23 06:17 AM

The comments to this entry are closed.

TrackBack


Listed below are links to weblogs that reference 5を切り上げるか切り捨てるか(数値の丸め):

« 「分析の常識」! | Main | ついに聴けた:蓑脇の時水の音 »