こんにちは。
夏なのでRubyを書きたくなりました。
今回はこの本の第2章ベイズ更新について書いてみました。
詳細は本文に当たっていただけると良いかと思います。
コードは以下のリポジトリで公開しています。
Jupyter NotebookでRubyを使ってみました。
好奇心ドリブンな日々の記録
こんにちは。
夏なのでRubyを書きたくなりました。
今回はこの本の第2章ベイズ更新について書いてみました。
詳細は本文に当たっていただけると良いかと思います。
コードは以下のリポジトリで公開しています。
Jupyter NotebookでRubyを使ってみました。
こんにちは。
Webサイト改善のため、現状把握として使える指標にどんなものがあるのか簡単に調べてみました。
Webサイトの指標を紹介しているいくつかのWebサイト(「Webサイト 指標」とかでググった)から指標をピックアップして、登場回数を数えてみました。
多くのサイトで言及されている指標ほど重要なんだと思います。
参照サイトは記事の最後にまとめてます。
PV、CVR、直帰率といった定番の指標はほとんどの解説サイトで言及されています。
まずはこの辺りの指標を用いて、Webサイトを計測し、改善につなげていくのが良さそうです。
『データ分析とデータサイエンス』(著:柴田里程)をふと手にとって読んでいます。
さらっと目を通したところ
と言うことがわかりました。
ということで、勉強になると思ったので、最初から読んでいって、その勉強の内容をブログにのっけていこうと思います。
気になった人は是非買って読んでみてください。
この本の目次は以下のようになっています。
第I部 データ分析
第1章 データ
第2章 データ分布
第3章 データ分布の代表値
第4章 箱ひげ図
第5章 2変量データ第II部 データサイエンス
第6章 データサイエンス入門
第7章 個体の雲の探索
第8章 変量間の関係
第9章 変量間の相関
第10章 確率モデル
順番に読んでいこうと思います。
第I部では、データを扱う上で心得ておくべき基本的な事柄が紹介されています。
個人的には、ここでの用語の扱い等が、最も低レイヤーにおけるデータサイエンティストたちにとっての共通言語的なものになるのではないかなと考えています。
もちろん大きな意味での共通言語は統計や数学であることには変わらないと思いますが。
「第1章 データ」の構成は以下のようになっています。
1.1 変数と変量とデータ
1.2 関係形式
1.3 データの代表値
1.4 偏差値
ということで、今回の記事は1.1と1.2の内容について紹介していきたいと思います。
以下は私の解釈も幾分かふくまれているので、正しい情報は原著を読むようお願いします。
ここでは「データ」という用語を定義するために、変量や変数といった用語を明確にしています。
変量(variate):
「分析対象のデータ構成を明確にするために、ある対象について記録された一つ一つの要素」
例)
ある対象:車検証
変量:登録番号、登録年月日、種別、自家用・事業用の別など
ここで、変量の考えを使って、データを定義します。
データ(data):
「分析の対象となる変量の値の並び、あるいは、複数の変量の値の組」
一方で、変数は変量と対比させるとわかりやすくなります。
変数(variable):
「分析の対象が何らかの(数式等により)モデルで表された時に、そのモデルを構成する変化させることのできる要素。」
変量は具体的な対象について表しており、記録のたびにその値は変化します。
それに対し、変数は値を変化させてどのような影響が生まれるかを調べるための道具です。
ということで、変数と変量とデータの関係が明らかになりました。
ここでは上記のようなデータが集まったもの(関係形式データベース)を数学的に扱う方法が紹介されています。
ここで以下のような表を考えてみましょう(コップのデータ)。
コップ1 | コップ2 | コップ3 | コップ4 | コップ5 | |
高さh(cm) | 15 | 13 | 14 | 10 | 7 |
重さw(g) | 300 | 500 | 200 | 400 | 600 |
ここで、上記のような表をテーブル(table)と呼びます。
そしてこのテーブルと、以下の集合
R = {(h1, w1), (h2, w2), (h3, w3), (h4, w4), (h5, w5)}
と同一視します。集合Rの各要素 (h1, w1) などは記録(record)と呼びます。
これらのテーブルを操作するためにRDBMS(MySQLやPostgreSQLなど)が用いられる。
RDMSでは変量のことを属性(attribute)、属性の値の並びをカラム(column)と呼びます。
集合AとBの間の二項関係は直積集合A×B={(a, b) | a ∈ A, b ∈ B}の部分集合Rとして定義されます。
(a, b) ∈ R のとき、a ∈ A と b ∈ B はR-関係を持つといい、a~bと表します。
これを複数の集合に一般化して考えます。
集合D1, D2, ・・・, Dn の要素間のn項関係は、直積集合D1×D2×・・・×Dnの部分集合Rで定義されます。
このような集合Rを、関係グラフ(relation graph)と呼びます。
ここで、テーブルで示される関係は、本来の関係全てではなく、記録された範囲に限った話であることに注意が必要です。
関係形式データベースでは、集合D1, D2, ・・・, Dnはドメイン(domain)と呼ばれ、変量の値域や名前、単位などの情報を与えます。ドメインは順序には意味がなく、順序を変えても同等なテーブルとなります。
このようなドメインは、いくつかの属性を持つ場合があります。
例えば、「名前属性(”高さ”や”重さ”など)」、「単位属性(”kg”や”cm”など)」、「型属性」などがあります。
これらの属性によって、そのドメインの意味がより明瞭になります。
以下では特に「型属性」について説明します。
型属性には大きく分けて、実数のようにどんな値でも取りうる型である連続型(continuous)と、特定の値しかとらない離散型(discrete)の2つがあります。離散型でも、値そのものより「その値であること」に意味がある場合は、特にカテゴリ型(category)と呼びます。
最近、研究がなかなかうまくいかず大変です。
この前指導教員に言われたことが、他のことにも役に立ちそうだったので記事書いとこうと思います。
今は論文を書いているのですが、データの分析結果がなかなかまとまらないので以下のようなことを言われました。
分析を行っていると様々なデータが出てくるが、それらを全部用いて結論や結果を記述するのは労力がいるし、そんなことは到底できるものではない。様々データを出すことによって、新しいことが見える場合もあるけれど、自分の言いたいことに対して適切なデータのみを厳選して使用して論文を書かないと、相手にも伝わらず、自分の言いたいことも言えない。
たしかに…。
自分は「出せるデータは全部出す」という教義のもとに今までデータサイエンス的なものをやっていたのですが、論文書いたり発表したりということになってくると本当に慎重に使用データはチョイスしなければなと思いました。
まとめると、研究等でデータを用いる場合は以下の2点に注意することが必要かなという感じです。
Enjoy! データ分析!
こんにちは。
RubyでJUMANを使用していたら、UTF8のファイルでエラーが出まくっていたので調べてみたら「ただし,Windows 版は従来と同じく,入出力および辞書の文字コードはSJIS である.」とのことでした。(JUMAN version 7.0 マニュアルより)
なので、UTF8を用いてJUMANでなんかしらの操作をしたい場合はエンコーディングを行ってShift-JISに変更する必要があるみたいです。
という訳で、そこら辺を意識したRubyのプログラムを載せておきます。
RubyでJUMANを使う方法です。
JUMANについてはここを確認してください。
RubyでJUMANを使うためにはまずJUMANにPATHが通っていることを確認してください。
主成分分析を学びたい人におすすめの教科書(ネット上のPDF文書)紹介です。
Rを用いた主成分分析(著:宮田庸一)
上のアドレスでPDFファイルにアクセスできます。
こちらの教科書はただ単にRの使い方を説明しているだけでなく、
主成分分析の理論を文系でも分かるところから解説しています。
実質、高校を卒業できていれば理解できる内容です。
また、例題や演習問題も丁寧についているので大変学びやすいです。
主成分分析について学びたいのなら、お金出して教科書を買うよりも良いと思います。
主成分分析は様々な場面で使うことのできる多変量解析の重要な一手法です。
感覚では分からないような大量のデータについて、傾向を把握することができます。
(簡単に言うと、いくつかの変数をまとめてデータを見やすくします。)
昨今、ワンクリックで各種の統計操作がさできるようになってきていますが、やはり中で何が起こっているのかくらいは分かっていた方が良いのではないでしょうか。