パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

Excelの統計機能は不正確」記事へのコメント

  • by Anonymous Coward
    実験データとかの精密な分析などには使えないだけで、
    世の中にはだいたいの傾向が分かりゃそれで十分な課題もたくさんあるしな。
    少数以下2桁くらいで加減乗除すればいいような課題には十分過ぎるくらいだろ。
    例えばソフトウェア工学上の統計で精度が要求される課題ってどんなのがあるかな?
    • by SteppingWind (2654) on 2008年10月27日 18時29分 (#1445035)

      逆です. Excelがそういった現実の数値データを取り扱うのに必要な, 有効桁という概念が無いから使えないのです(最近のバージョンはもしかしたら有るかもしれないけど). 少数以下2桁(有効桁数3桁)で加減乗除すればいいような課題は, 4桁以上の数は出す必要が無いのではなく, 出してはいけないのです. すなわち実験データ処理や統計のソフトで「精度が要求される」と言った場合, 有効桁数を多くする以外に有効桁数を考慮した計算(例えば有効桁数の異なる数値の積では結果の有効桁数を小さいほうに合わせるとか)が必要になります.

      さらにExcelでは表示桁数を設定しても内部で保持しているデータは表示とは別になっているので, 例えば

      セルA: 10 / 3
      セルB: 10 / 3
      セルC: セルA + セルC

      を有効桁数1桁で取り扱った時の結果が, 本来はセルA=3, セルB=3, セルC=6となるべきところ, セルA=3, セルB=3, セルC=7になって, 見た目と結果が異なってくるなんてことも起こりえます.

      まあ, これぐらいなら回避の方法はいろいろありますし, 他の表計算ソフトでも似たような現象は起こりうるんですけどね. 正しい結果を得るためにはデータの内部形式とかも考慮しないといけないので, 専用の統計処理ソフトと比べると労多くしてってことになりやすいですね. 場合によっては10進演算で桁数管理がしっかりしているCOBOLの方がましなんてこともあるみたいで.

      親コメント
      • Re:つーか (スコア:2, 興味深い)

        by Stealth (5277) on 2008年10月27日 19時25分 (#1445062)

        それは
        A1: =ROUNDDOWN(10/3, 0)
        A2: =ROUNDDOWN(10/3, 0)
        A3: =A1+A2
        といったように、明示的に「切り捨てる」(または ROUNDUP で切り上げたり、ROUND で丸めたり) する、という事を入力者自身がサボっているからでしょう?

        単に「表示桁数」だけいじって満足しているのが悪いのでは。

        # 「表示形式」を変更したら「値も変更された」なんて方が問題アリアリだと思う。

        親コメント
      • by Anonymous Coward
        何が逆なのか分からんけど、精密な結果がいらない課題にこそ必要で、
        精密な結果がいる課題にはエクセルでもいいって話なのか?
        有効桁数1桁なんて話持ち出してまで主張しなければならないほど
        エクセルが使い物にならないなら、とうの昔にお払い箱になってるよ。
        世の中には大勢が読めりゃいいという場合もたくさんある。
      • by Anonymous Coward
        >を有効桁数1桁で取り扱った時の結果が, 本来はセルA=3, セルB=3, セルC=6となるべきところ, セルA=3, セルB=3, セルC=7になって, 見た目と結果が異なってくるなんてことも起こりえます.

        表示上の有効桁数と、演算上の有効桁数は異なると思うので、後者の方がむしろ正しい挙動だと
        思うのですが、私だけでしょうか?

        確かに見た目と結果が異なることは問題ですが、表計算ソフトに求められるべき機能である
        「精度」というものを念頭に入れると、勝手に桁数を切り捨てられる方が問題なのではないかと。

        セルAに 10/3 と入れている時点で =10/3 と入力している(要するに計算結果を入れている)のですから、
        そこで桁数を切り落としたければ、素直にroundなりfloor等の計算関数を使うべきなのではないかと。

        #一般的な人が、「見た目と演算結果が違うことが理解できない」人のほうが多いのは理解していますし、
        #その方々にいちいちround関数などを教えていられないのも理解できますけどね

UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie

処理中...