■ 「R」



一言。
以下は、2006年初頭に認めたものです。
まだ数検3級も取得してなかった当時書いた内容ですので、
拙い限りではありますが、この度当サイトにアップすることにいたしました。




統計ソフト「R(アール)」を使ってみた体験記です。

でも、統計をやってみたわけではありません…。 (詳しくは以下。)

本コーナーは、最後にオチが付きます。 
途中経過には間違いがありますので、その旨ご注意ください…。
(オチは、このページ最後の方にあります。)





 背景

 会計の本を読んでいたら、こんな問題が出てきました。
 P/L(損益計算書)の各項目が空白になっていて、そこに数値を入れていくような問題だったのですが、その中で特に
「期首商品棚卸高」と「当期商品仕入高」が、どうにも算出できません…。

 どなたか数学にお強い方、教えてください。 お願いします。

 分かっているのは、以下の内容です…。

 当期純利益     = 1,932,000円
 期末商品棚卸高  = 1,264,800円
 売上総利益率   = 30%
 売上純利益率   = 8%
 商品回転率     = 15回転

 ざっとこんな感じです。
 この情報を元に、「売上高」・「期首商品棚卸高」・「当期商品仕入高」・「売上総利益高」などを求めてみてください。

      (参考)
         売上総利益率(粗利率)=売上総利益÷売上高×100(%)
         売上純利益率=当期純利益÷売上高×100(%)
         商品回転率=売上高(下代)÷{(期首商品棚卸高+期末商品棚卸高)÷2}


 私はこの問題を解いていくうちに、「これは連立方程式を作らないとダメじゃないの?」と思いました。
それがですね。 いくら解こうにも解けない。(^^;)

 私が連立方程式の解き方を忘れてしまったのか・・・、それともこの問題が難しすぎるのか・・・。





 途中までは、自分にも出来るんです。

 例えば「売上高」なら、1,932,000円÷8×100で出ますね。(24,150,000円)
 これが出れば、次の「売上総利益高」もすぐ出ます。(「売上高」×30%=7,245,000円)

 ・・・ここまでは何てことないのですが、残る「期首商品棚卸高」と「当期商品仕入高」が、どうにも算出できません…。

 商品回転率が15とあります(これを求める公式は 仕入÷平均在庫 です。)が、平均在庫は
 (期首在庫+期末在庫)÷2 で求めることになっています。(一応…。)


 さて。 このあとどうします??


 方程式 その1

  …在庫等式(期首棚卸+当期仕入-期末棚卸=売上原価)に当てはめると…。

  期首棚卸+当期仕入-1,264,800円=24,150,000円-7,245,000円 (売上原価=売上高-売上総利益 なので。)

  …ここで期首在庫をx、仕入をyとおき、さらに上記の式を変形させると、

   x + y = 18,169,800    ・・・・・ @

  ざっとこいつが、「方程式@」です。


 方程式 その2

  …商品回転率を求める公式(仕入÷在庫)から、

  仕入 ÷ 平均在庫 = 15

  …ここで期首在庫をx、仕入をyとおくと、

  →y ÷ {(x+1,264,800円)÷2} = 15

  さらに、両辺に2を掛けて、

   2y = (x+1,264,800円)×30

          ↓

   30x - 2y = -37,944,000 ・・・・・ A

  こいつが、「方程式A」です。
 私だって、ここまでは出来ます…。


 さあ〜! ここまで来れば、あとはこの連立方程式を解くだけ。 

 ・・・・・でも・・・・・。 この先が…、ややや、解けない解けません。(笑)

 わからんなぁ〜。 数値がでか過ぎて、机上では思うように解けない。
 「くそ〜、一次の連立方程式も解けんとは! 我ながらなんとも…。」 

 そんなわけで…、参りました・・・・・。





 数学計算ソフト


 「MuPAD」という、オープンソースらしき数式計算ソフトがあります。
 これが無料で使えるものなのか、それとも安いだけなのか、定かではなかったのですが、自分で方程式が解
けないなら「数学ソフト」をダウンロードしようと思い、検索してみました。

 いろいろ調べてみたところ、わりと最近“無料バージョンが廃止”になったようでした。(^^;)

 ・・・・・。

 仕方が無いので、他のをあたってみました。

 実は、先日ご紹介した「Python」なども、パソコン電卓として十分な性能を持っているのですが、さすがに「方程
式」には対応していないようです…。



 “*”は“×”の意味。 “/”は割り算ですね。 “%”は余りです…。
上記のように、変数も使えます。
 あと、“j”は虚数です…。 「Python」は虚数が扱えるというのが強力なウリのようで、大概の「Python本」には
このことが載っています。
 が、その恩恵を受ける人が全世界にどれほどいるのかについては、定かではありません・・・・。


 しかしそれにしても、方程式に対応した電卓くらい、世の中にあって良かりそうな気がします…。
実社会でも案外、用途があると思うのですが。
 「関数電卓」があるというのに、「方程式電卓」がなぜ、無いのでしょうか…?





 「R」


 統計のフリーソフトに、「R」というものがあります。
主に統計解析用のソフトなのですが、何とこいつを使って、連立方程式を解くことが出来るようです。

 ダウンロードはココから出来ます。(無料です。)
例えば、Version2.2.1のWindows版なら、“R-2.2.1-win32.exe”をダウンロードします。
 すみません。 細かな手順は、ちょっと面倒くさいのではしょります。

 で、ちょっとやってみました。



 入力したのは、
 
 > a <- matrix(c(1,30,1,-2), 2,2)[ENTER]
 > b <- matrix(c(18169800,-37944000))[ENTER]
 > solve(a,b)[ENTER]

 の3行。

 何のことかと言うと…。

     x +  y  = 18,169,800     ・・・・・ @
   30x - 2y = -37,944,000    ・・・・・ A

 上記の2式を、左上から“N”の字のように数値(定数)部分を読んでみてください。

  1、30、1、-2 となっていますね。 これが1行目の“a <- matrix(c(1,30,1,-2), 2,2)”に該当します。
  (最後の“2,2”というのは、2元2式の方程式であることを示すようです…。
    ・・・『ようです。』などと書いているのは…、私も試行錯誤しながら使っているからデス。(^^))




 別解

 上のやり方では、“N”の字のように定数を“縦”式に並べていましたが、“横”式にすることも出来ます。



 入力したのは、

> r <- rbind(c(1,1),
+ c(30,-2))
> ( x <- solve(r, y <- c(18169800,-37944000)) )

 の3行。

 以下、ご説明しましょう。

     x +  y  = 18,169,800     ・・・・・ @
   30x - 2y = -37,944,000    ・・・・・ A

 上記2式を、係数について横に並べます。

 1,1
 30,-2
 18169800,-37944000 (右辺だけは、なぜか縦式です…。)




 さて…。 結果が出ました。
 答えは、x(期首在庫)が “-50,137.5円” 、
                y(仕入)が “18,219,937.5円” となりました。

 なるほど確かに、上の@式にもA式にも該当しますねぇ! 

     x +  y  = 18,169,800 = -50,137.5 + 18,219,937.5

   30x - 2y = 30×-50,137.5)-2×18,219,937.5 = -37,944,000
          = 
-1,504,125 - 36,439,875

 ひゃー! こりゃスゴイもんだ…。

 これにて一件落着〜!!

かと思いきや、

 なんで期首在庫がマイナスになんねん!?
  なんで仕入と在庫に“少数点以下”がつくねん!?

という事態に。。。。

 「おかしいなぁ〜。」

 おかしいので、本の解答を見ました。
それによると、正答は「期首在庫」が989,200円、「当期仕入」が17,180,600円となっていました。

 残念なことに、この本には“答え”だけが載っていまして、“求め方”が載っていないと言う・・・。
(実はそれで困ってたのです…。)

 上記正答に基づいて、「商品回転率」を逆算してみますよ。

 17,180,600円÷{(989,200円+1,264,800円)÷2}= ・・・・・



 出てきた答えは 15.24454・・・。(こういうのを、無理数と呼ぶんでしたか。)
 問題にあった「商品回転率が15」という所与の値は、何と正確な数値ではなく、アバウトのことだった
のですね…。

 “アバウト15回転”なんていう方程式を…、一体どうやって解けば良いのでしょうか?

     y ÷ {(x+1,264,800円)÷2}  15

  → 2y  (x+1,264,800円)×30

  → 30x - 2y ≒ -37,944,000 ・・・・・ A

         (注:“≒”は“機種依存文字”になりますので、本当はあまり使いたくなかったのですが。)

  ????

 ・・・・・・・・・・ますます解らなくなってしまいました。

 「期首在庫」が989,200円、「当期仕入」が17,180,600円。 どうやって求めるの?


 というわけで、せっかくの統計解析ソフト「R」が、何の役にも立ちませんでした・・・・。


 ところでこのソフト、「2次」の連立方程式は解けるんだろうか…? よく分かりません…。





 ああ、間違えた・・・。

 商品回転率は、仕入÷在庫じゃなかった…。 売上原価÷在庫でした。(^^;)
 ・・・・「売れたものの原価」でなきゃ。 ただそれだけのことでした。(笑)


 売上原価(24,150,000円-7,245,000円)÷平均在庫=15 なんだから、
 平均在庫=1,127,000円
 
 {期首(x)+期末(1,264,800円)}÷2=1,127,000円 で、・・・ x = 989,200円。 出ました。

 ここでもう一度在庫等式(期首棚卸+当期仕入-期末棚卸=売上原価)を用いて、

 989,200円+当期仕入(y)-1,264,800円=24,150,000円-7,245,000円=16,905,000円

 y = 17,180,600円


 ・・・・・苦笑。 結局、連立方程式なんて全然、いりませんでした。
 お恥ずかしい限りでございますデス。(*^^*)

 まったくどうしようもないですねぇー。
単なる勘違いでした・・・・。 お騒がせを。





 間違えた照れ隠しの意味で、ちょっと「売上原価」関連の小噺を・・・。


 「費用収益対応の原則」という原則があります。
 これは、『“売れた商品”の販売価格から“売れた商品(のみ)の仕入れ価格”を差っ引いて、利益を算出する。』
というルール。

 売上があって初めて「売上原価」が計上される、ってことです。
逆に言うと、
売れ残った商品の仕入原価(or製造原価)は、「売上原価」に入らないんですね…。


   もう少し解説しますと、
    商業の場合、例えば前期繰越商品が25,000円、期末商品が10,000円、当期仕入が70,000円であったとすると、
     売上原価 = 25,000 + 70,000 - 10,000 = 85,000 となります。 (在庫等式より)
    ここで「期末棚卸の10,000円」とは、要するに「売れ残り」のことです。
    これより、「売れ残り分の仕入代金」を差っぴいて「売上原価」を算出していることが見て取れます。

    製造業で説明した方が分かりやすい。 製品売上時の仕訳は、例えば以下の2つのようになります。(必ず2行要ります。)
              現   金 7,500 | 売  上 7,500  ・・・ 販売価格で
              売上原価 3,500 | 製  品 3,500  ・・・ 製造原価で
    でもって、販売価格と製造原価の差額(7500-3500)から、粗利が判明します。 
    もしも製品が売れ残った場合、その製品の製造原価は「売上原価勘定」(費用)には振り替えられず、「製品勘定」(資産)のままとなります。
    売れて初めて、「売上原価」に振り替えられます。
    (これを言い換えますと、“売れ残った商品の製造原価は、「売上原価」に入らない”)ということ。

    上の等式を製造業向けに加工すると、期首製品棚卸 + 当期製品製造原価 - 期末製品棚卸 = 売上原価 となり、
    言葉は似ていても、“「当期製品製造原価」(「製造原価報告書」に示す当期の実製造コスト)と「売上原価」(売れた分の製造原価)では
    全く別もの”、であることが分かります。(上の行のリンク先 大元

    実のところ、真面目に考えれば考えるほど、「仕入(当期製品製造原価)」と「売上原価」ってごっちゃになってきます…。


 「売れ残り分」を「売上原価」に含めないとなると、当然のことながら、「利益」は実際より大きく見えてしまうでしょ。
P/L(損益計算書)の「売上原価」項目は、こうしたルールで計上されています。
 これが、「費用収益対応の原則」…。

 何でこんな会計方式がまかり通っているのかと言うと、それはその方が、国が企業から税金をたくさん徴収出来
るからです。
 法人税は、利益に対し百分比で徴収されるので、会社の利益額が大きいほど、税額も大きくなる。
それで、(実際よりも)利益額が大きく見えるこの会計制度を維持した方が、政府の税収が期待できるわけです。

 けれど、こんな基準で利益を計上していると、経営を見誤る元となります。
俗に言われる“黒字倒産(利益が出ているのに会社が潰れる。)”とは、こうしたことが原因で起こります。

 そこで、(「全部原価」を「変動費」と「固定費」に分ける、)「直接原価方式」が、強く求められています…。





 その後、(「何を今更・・・。」ではありますが、)連立方程式の解法を復習してみました。
(こんな方程式も解けんでは恥ずかしい。)


 ・・・どうやら私は、「代入法」のみ記憶していて「加減法」を失念していたようです。

 解き方はこう。

     x +  y  = 18,169,800     ・・・・・ @
   30x - 2y = -37,944,000    ・・・・・ A

 xかyのどちらかを、足すか引くかして消してしまうのが「加減法」の極意(?)です。

 例えば、
     x +  y  = 18,169,800     ・・・・・ @
 この式の両辺に2を掛けます。
     2x + 2y = 36,339,600    ・・・・・ @’


 そいでもって、@’とAの式を、縦に足し合わせます。

     2x + 2y =  36,339,600    ・・・・・ @’
    30x - 2y = -37,944,000    ・・・・・ A
     32x +  0  =   -1,604,440

 すると、上手い具合にyが消えますね。

 これをxについて解くので、両辺を32で割り算し…、

      x = -50,137.5

 あとは、これを@式に代入して、
       -50,137.5 + y = 18,169,800
                y = 18,219,937.5

 となりました。


 (その後) >>>>> 加減法も知らない自分が恥ずかしくなり、
                   その後一念発起して、「数検3級」を取得いたしました。(^^)





 というわけで、やっぱり…。 
 せっかくの統計解析ソフト「R」が、何の役にも立ちませんでした…。


 でもまあ…、「R」で連立方程式の使い方が分かったので、よしとします。





 2006年9月 追記

 その後、「Maxima」というソフトで連立方程式を解きました。



 何故か答えの分母が2になってます。(何ででしょ?(^^))

 ・・・・・あっ、そうか。 小数点以下を許さないのですね。 なるほど…。

 こいつを使えば、二次の連立方程式でも楽々です。
 x^2で、x二乗の意味となります…。


 「Maxima」については、また今度。