UA-115498173-1

2019年02月09日

こぎれいなデータ(tidy data)

先週は「不正統計」という言葉に待ったをかけました.不正統計ではなく不法統計と呼ぶべきであると.もっと正確には,不法なデータサンプリングであって,そこに統計の誤用が合わさったということです.この問題の根っこにはデータ軽視があるように思います.更には,正しく統計を使わなければいけないという決意も欠如しているように思います.それは,データは統計分析してこそ意味があるという認識がそもそも欠如しているからでしょう.先週予告したように,このことを実例を元に見ていきます.

以下で対象とするファイルの¥ダウンロードでクリティカルな間違いをしてしまいましたので訂正しています.申し訳ございません.

サンプルデータは学校保健統計調査を選びました.このページの調査の結果の統計表一覧をクリックすると,そこに書いてあるようにe-Statに飛んでいきます.データはどれでも同様ですが,昨年の12月21日公開の最新の平成30年度(速報)から全国表をクリックして,表番号1の「年齢別 身長・体重の平均値及び標準偏差」をダウンロードしてください.都道府県表をクリックして,表番号3の「都道府県別 身長・体重の平均値及び標準偏差」をダウンロードしてください.ファイル名は「h30_hoken_tokei_03.xlsx」となっているはずです. このエクセルファイルをどう思いますか?見ることを前提としたデータなので,JMPで分析しようにも一苦労です.決定的にダメなのは年齢という重要な変数がシートに分割されてしまっていることです.
このmessy dataを分析可能なデータ(tidy data)に変換するのが本日のお題です.この作業をData Tidyingと呼びます.tidy dataを整然データと訳されている方もいらっしゃいますが,自分的には整然ではどうもしっくりこないので「こぎれいなデータ」と呼んだりしています.整然とした部屋というニュアンスとこぎれいな部屋というニュアンスでは後者の方がtidyに近いからですが,学術用語としては適さないですね.素早く分析に着手できるという意味では「整頓」というのも近いです.
さて,以下に手順を示しますが,操作の順番は絶対ではありません.正解は一つではなく,以下は一つの例とご理解ください.
 
1.   まずはエクセルファイルをExcel読み込みウィザードで開きます.前の設定が保存されているときは一度「デフォルト設定に戻す」を実行しておいたほうが間違いがありません.このファイルでは以下の設定にしてください.
image001.png
ここで「連結の際,ワークシート名を含む列を作成する」にチェックを入れることが重要です.この他の設定はデフォルトで構いませんので,直ちに「読み込み」を実行します.空白の行や列などのデータの欠測値を処理することも可能ですが,初めてのデータの場合はこの段階では放置しておくことをお勧めします.
2.  JMPテーブルに変換できたら,最初にやるのは標準偏差の4列を削除します.(ここでは平均値のみを対象とします.)
3.「男-身長」「男-体重」「女-身長」「女-体重」の4列を積み重ねます.デフォルトでは,「ラベル」列と「データ」列ができます.以下の説明では列名はデフォルトのまま処理をすすめていきますが,適宜変更しても構いません.
4.「ラベル」列を選択して,「列>ユーティリティ>テキスト」を実行します.区切り文字は半角のハイフォン「-」です.全角が好きなお役所もここだけ半角なのが謎ですね.
5.「ラベル」列は削除します.「ラベル3」列もすべて「平均値」と入っていて分析には無意味なので削除します.(削除するのは後でもかまいません.)
6.「ラベル2」列には身長と体重というラベルがデータとして入っているのでこれを分割します.それには「列の分割」で「基準となる列」に「ラベル2」,「分割する列」に「データ」を割り当てます.このとき「残りの列はすべて保持」にチェックを入れるのを忘れないようにして下さい.
7.「ラベル1」を「性別」に名称変更して,「ラベル」列は削除しておきます.
8.区分には都道府県名が入っているのですが,このままではグラフビルダーで認識しないので,シェイプファイルが呼び出せません.なぜかというと,「北 海 道」のように意味のない空白が入っているためなので,これを削除します.それには「検索>検索」で「全角空白」を「」に検索置換します.この操作は二回繰り返さなければなりません.三文字の名称に合わせて二文字の名称が青(全角空白三文字)森のようになっているからです.このよう無駄な空白は誰が得するのか?お役所のデータを他山の石とすべきです.
9.いよいよ「元のテーブル」列に取り掛かります.例えば.「3県別発育(5歳)」となっている5を取り出すために区切り文字を(歳 とします.普段何気なくつけているワークシート名もJMPに呼び込むことを考えてつけるべきですね.
10.「元のテーブル2」には全角数字で年齢が入っていますので,列情報を名義尺度とし,列名も「年齢文字」と変更します.
11.回帰分析などのためには年齢を連続尺度にしておきたいところです.そのためには新規に連続尺度の列を作成して,そこに以下の計算式を入れます.ようするに全角の数字を半角の数字に置き換えるのです.
 
Num(
        Substitute( :年齢文字,
                "0", "0",
                "1", "1",
                "2", "2",
                "3", "3",
                "4", "4",
                "5", "5",
                "6", "6",
                "7", "7",
                "8", "8",
                "9", "9"
        )
)
 
この計算式の関数NumもSubstituteも文字のところにあります.Substituteは下のほうです.
12.「区分」をデータフィルタにかけて,都道府県名以外の三つ(???と調査対象者(人)と全国)を選択して行を削除します.
13.列名は適当でかまいませんが,一般的「身 長(cm)」という全角半角入り混じった列名は「身長」としたいところです.一般的には列名には単位は入れないことをお勧めします.列名は変数名でもあるのでモデリングの際に見やすくなるからです.列の選択リストにも単位が表示されないので見やすいです.
14.どうしても単位をレポートに表示させたい場合は,列情報の列プロパティで単位を選び,所望の単位を入れてください.グラフなどには単位が表示されます.

この後,先週のグラフを作成するには,都道府県をクラスタリングしてから,「BMI」列を計算式で作成するだけですが,本日は所用があり続きは後日とさせてください.このグラフを見ると興味深いことが見えます.考察すべきこと色々あリますが,長くなったので本日はこれにて.

それではまた.
タグ:JMP
posted by Tad at 19:00| Comment(0) | TrackBack(0) | JMP

2019年01月19日

産業分野における実験計画の活用

来月のJMPer’s Meetingでお話しすることになりましたと先日リークしました.今週それが正式にアナウンスされたので,改めてこの場で紹介しようと思っていたのですが,先ほど見ましたら既にキャンセル待ちになっていました.因みに,こちらが申し込みフォームです.
2019年第1回 JMPer's Meeting 産業分野における実験計画の活用

Summit2018での講演の延長戦という趣旨なので,本来はもう一人別の講演者にご登壇いただくのが筋ですが,期が変わってからの方がご都合がよろしいとのことで,わたしが前座を務めることになりました.前座がこういうのもおかしいですが,多くの皆様にお越しいただけるのはありがたいことです.キャンセル待ちになってしまいましたが,もしも参加希望の方がいらっしゃいましたらコメントでお知らせください.講演者割り当て分があるので,おそらく数名くらいであればはなんとかできるのではないかと思います.

時間は90分いただいているので,何をお話しようかを今から考えているところです.事前に講演内容を聞かれたので,以下のようにお返事して,それがそのままプログラムに掲載されています.

「産業分野でなぜ実験計画が必須なのかをテーマとして、実践的な実験計画の基本的な考え方とそれを実施する具体的な手順についてお話しします。更に、技術開発に有効なパラメータ設計のためのJMPアドインについてデモを交えて紹介する予定です。」

ここで言っているJMPアドインとはMCDAアドインのことです.後半のジャパンセミコンダクターの坂本さんの講演を実践編として,そこで適用例を紹介するので,それに繋げるようにMCDAアドインの使い方について解説する予定にしています.時間の制約もあるのでどこまで踏み込めるかはわかりませんが,わたしの力及ばず本書だけではMCDAアドインの使いどころが今ひとつわからないという声も聞いているので,今回はこの点は頑張ってお話したいと思います.因みに,MCDAアドインは本書にバンドルして配布することを許可されているのですが,JMPer’Meeting参加者限定でも配布できるバージョンを検討しています.(来月なのでちょっと時間がないかもしれません.)
わたしの講演では実験計画の基本的な手順も合わせて解説します.あくまでも実践的な実験計画であって統計学の一分野の実験計画ではありませんし,具体的な手順にどこまで踏み込めるかは当日の雰囲気によります.
何れにせよ,今回のテーマはAI流行りの産業界に向けたアンチテーゼにあります.わかりやすく書くと,「AIによるビッグデータ分析で技術開発ができる」というテーゼに対して「(少なくともそれだけでは)できない」というのがわたしの主張です.この結果のアウフヘーベンとしてあるのが実験計画なのだという主張でもあります.これが,どういう意味なのかは講演でじっくりとお話します.
SAS社のご好意でネットワーキングと称したお茶会も開催していただけますので,ぜひ皆様とお会いしてお話できたらありがたいです.

本日は短いですが,ここまで.それではまた.
タグ:問題解決 JMP
posted by Tad at 19:00| Comment(0) | TrackBack(0) | JMP

2019年01月05日

初JMP

今年もよろしくお願いいたします.本年最初に何を書こうかとニュースを漁っていたところに目に留まったのがこちらの記事です.
Windows 10 tops Windows 7 as most popular OS
リリースは3年前でしたのにまだWindows10のシェアはまだ4割にも満たないんですね.あっという間に9を飛ばして10に入れ替わったこともあってWIndows8のシェアが低いのは何となくわかります.8.1が出たときのゴタゴタが尾を引いているのでしょうか.因みに,WIndows9というネーミングが飛ばされたのは,( Windows95や98であることを認識するために)「Windows9」 という文字列を前方一致で検索するコードが存在するからと聞いたことがあります.
実はこのブログにもアクセス解析の機能が備わっています.アクセス数はたまに見ることはありますが,おまけ機能なので正確ではないし,何よりもせっかく来てくださる方の情報を覗くのは趣味ではないので見ていません.そもそもわたし自身がかなり強力なプライバシーフィルタをかけているので主義に反する行為なのです.とはいえ,このニュースを読んで,このブログの訪問者のOSシェアに興味を持ったので,調べてみました.情報を皆様に開示するならば許されるかなと思っています.
クローラもカウントしているので,この数字の信頼性は低いものの,予想よりも多くの方に訪れていただいているようで何となく安心しました.個人の日記とはいえ訪問者が誰もいないというのは寂しいものです.
念のために補足しますと,ブログをお持ちの方はご存知と思いますが,この「さくらのブログ」のような個人向けブログサイトの「アクセス記録」ではブラウザの自己申告情報を集計しているだけです.どこから来たのかといういわゆるリファラもその一つですが,サーバーのログを解析することまではできませんので,どの検索エンジンから来たか程度しかわかりませんし,わたしも通常はアクセス記録を覗かないことにしていますのでのでご安心ください.
さて,12月のアクセス記録からOSシェアを計算しました,全アクセス数から「不明」を除いて,モバイル環境の方も結構いらっしゃるので,PCとモバイルとに分けます.データを目前にすると何かしてみたくなるのがJMPerの性分です.手始めに,見やすくするためにOSはWindows,Mac OS,Linuxに三分類して実際のOSシェアとを比較してみました.その結果がこちらです.

1.png

圧倒的にWIndowsユーザーが多いのは会社から訪問してくださっている人が多いからと推察します.更にWIndowsの種類で可視化してみますとこのような結果になりました.書き忘れましたが,Net Applicationsというのは毎月1日にブラウザとOSの世界中の利用状況を発表している米国の調査会社です.以前から調査結果に疑問をお持ちの方もいらっしゃるようですが,他に引っ張ってこれるデータもないので.参考

2.png

この円グラフの上が本ブログで下が世界平均です.一見してWin8ユーザーが多いのはなぜでしょうか?検定にかけてみるとやはり当ブログの訪問者のOS分布は歪んでいるようです.

3.png

本来は日本のOSシェアと比較すべきところです.モバイルOSではiOSのシェアが日本では世界よりも高いと聞いていますし,実際このブログでもiOSユーザーの方がAndroidよりも多いです.
新年早々あまり役立つ情報は得られませんでしたが,初JMPということでお許しください.それでは.
タグ:JMP
posted by Tad at 19:00| Comment(0) | TrackBack(0) | JMP