数学(算数?)を使うとはこういうことかな?

私は中学のころから、数学が苦手でした。先生の言っていることはさっぱりわかりませんでした。一度、高校のときに、真剣に先生の話を聞いてみました。質問もしてみましたが、先生の言っていること、なぜ数学をするのか、数学って何?ということがさっぱりわかりませんでした。そのまま私立文系用の大学受験の勉強をし、大学にすすみ、数学を全然しないままでした。

関数の意味、意義すら分かりませんでした。

<でもあの時代にエクセルが存在したら、すぐに分かったと思います。>

大学院に行ってから、統計分析をするようになり、SASという統計ソフトに出会い、20年ほどになります。授業でやったわけでもなく、SASのやり方を教科書で勉強したこともありませんが、なんとなくやってきました。

先日、以下のようなプログラミングをなんとなくしました。これが、数学を使うということなんじゃないかと思ったので紹介します。数学に詳しいかたにコメントいただけるとうれしいです。

自分が直面した問題

ある変数があり、その変数が持つ価値によって、その変数がダミー変数かどうかを判定したい。

最初は変数の最低値が0で最高が1ならば、その変数は、ダミー変数(0か1でコーディングされている)だと思ったのですが、レート(率)の変数も0から1です(例えば出席率)から、このルールでは不十分です。

ある変数を与えられて、以下の3つの統計(個数、平均、標準偏差)が与えられたとして、それを元にその変数に存在する価値が二つだけである(ダミー変数である)かどうか、、を知る方法はないかな~、、とぼんやり考えた結果、以下をSASにて書いたところ、実際に正しい答えがでました、、、ま、これでええわ、、と自分の仕事に使っています。

正しいかどうかも、やってみて、実際、結果がそうなるかどうか、、といういい加減な方法です。

ある変数のNumber(個数)、mean(平均)、SD(標準偏差)が分かっているとします。すると、以下で、その変数が(価値が0か1の)ダミー変数かどうかが分かります(VAR_TYPEがCONTINUOUSと出なかったら、ダミー変数です)。

num_yes=number*mean;

num_no=number-(number*mean);

mean_new=((num_yes*1) + (num_no*0))/(number);

LOW=(0-mean)*(0-mean);

HIGH=(1-mean)*(1-mean);

SUMSUM=(LOW*num_no)+(HIGH*num_yes);

RESULTSD=SQRT(SUMSUM/(number-1));

JUDGE_DICHO=abs(SD-RESULTSD);

 

if JUDGE_DICHO ne . and JUDGE_DICHO > 0.001thendo;

var_type=”Continuous”;

end;

 

具体的には、これを何に使っているかというと、その変数をLOGISTIC REGRESSION MODELにPREDICTORをしていれて、その結果からODDS RATIOを求めるのですが、そのPREDICTORがダミー変数でない場合は、その数値に、解釈を簡単にするために、ある調整をするのです。そのために、そもそもこの変数がダミー変数かどうかをプログラミングによって知りたかったのです。

自分は数学が苦手だったので、そもそも勉強もあまりしていないので、分からんのですが、こういうのを数学を使うというのか?単なるアルゴリズム???

英語喉オンラインコースへ飛ぶ(ニュースレター登録をお願いします)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.