カテゴリー別アーカイブ: データマイニング

統計学の興味は個別データではなく、集団に関する情報

以前、データジャーナリズムのイベントでジャーナリストと一緒に仕事をしたが、どうしてもデータに対する考え方の違いがあって、どうにもはっきりしなかった。しかし、量的研究エッセンシャルという記事を見て、自分の中のモヤモヤ感がはっきりした。

簡単に言うと、統計学・データサイエンティストは個別のデータに関心があるのではなく、個別データの背後にある一般的な仕組みや規則に興味がある。一方、ジャーナリストは個々のデータや事件に興味があるのだと思う。それで、両者のデータに関する考え方の違いでどうも通じ合えないのではないだろうか。

記事の内容をまとめてみた。元の記事を見たほうが分かりやすいかもしれないので、是非元記事をみるのをお勧めする。かなり丁寧に書かれた記事であり、更に連載記事なので他の記事も通して読んでみると統計学・データ解析の本質が分かると思う。

(要約)

量的研究での関心事は個別データの背後にある一般的な仕組みや規則を明らかにすることだ。

統計学では個別データは母集団という仮想世界から現実世界へ偶然に生じたものと考える。

データと説明可能なモデルとノイズに分けると確率的考えで変動をうまく説明できる。

量的研究の関心事は個別データではなく、集団に関する情報であり、個性はノイズとみなす。

世の中の現象は多数の要因が絡みあって生じるので予測は確率的にしかできない。

 

統計学・データサイエンスの勉強法

ここ数年、私はデータサイエンスについて学んでいます。おすすめの学習資料を紹介したいと思います。

教師用の教科書と初心者用の教科書

私自身、データサイエンスを学ぼうとして色々なソースを試してみました。残念なことに、日本語の良い学習資料は見つけられませんでした。どこかのブログで読んだことがありますが、教科書は教師用と学生用の二週類があるそうです。一つめは内容が既に分かっている教師の為の教科書で、日本はこのタイプです。もう一つのタイプの教科書は自学自習を目的に作られているので、教師なしで学ぶできる教科書になっているということで、アメリカはこのタイプの教科書が多いです。私自身、他の文系・理系の教科書を探した時もアメリカの教科書の方が分かりやすく、その本だけを読めば分かるようになっていると同じ印象を持ちました。

オンライン教育(MOOC)

アメリカは科学教育に熱心であり、最近はやりのMOOCでも豊富なコースが無料で受けることができます。有名なのはCoursera, Udacity, EdXがありますが、私はもっぱらCourseraのファンなのでCourseraのコースを紹介します。

1. Machine Learning by Andrew Ng

Courseraの創設者の一人Andrew NGが講師で、ビジュアル的に板書で説明してくれるので、計算の理屈がよく分かりました。Courseraのコースの中で最も授業が上手だと思います。最近、完全に日本語字幕もついたので、かなり受講しやすいです。

2. Johns Hopkins 大学のData Specialization

これは9つのData Science関連コースが合わさったものですが、中のRoger D. Pengのコースがお勧めです。Rの基礎やデータクレンジング等について丁寧に解説してくれます。しかし、Brian Caffoのコースは説明が下手なので、お勧めしません。

お勧めのコース

R Programming 統計プログラミング言語Rの初歩

Exploratory Data Analysis データ解析の予備的解析やデータ探索

Reproducible Research データ解析手順を再現可能にするための技術(ドキュメント化やパブリッシング)

Getting and Cleaning Data データ解析前のデータの整形や洗浄

3. Social Network by Lada Adamic

ソーシャルネットワークやネットワークグラフに興味のある人は取ってみたら良いとおもいます。

4. Mining Massive Datasets from Stanford大学

私はまだコースを受講していませんが、かなりきっちりとカリキュラムが組まれているようです。

授業内容は書籍が出版されているようで、PDF版は無料で見ることができます。良質の教材を惜しみなく無料提供するというStanford大学の太っ腹さには驚かされます。
http://www.mmds.org/

Khan Academy と CK-12

Courseraとは別に高校や大学教養学部レベルのものであれば、Khan AcademyとCK-12を覗いてみるのもよいでしょう。Courseraでは説明が不十分な基礎的な知識はこちらの二つのサイトの動画を見て学びました。

カーンアカデミー(Khan Academy)は講義の動画がYouTubeに載せてあります。

Khan Academyのprobability and statistics

CK-12はあまり有名ではありませんが、 高校レベルの講義資料や教科書を無料提供しており、高校レベルで教えてくれるのでとても助かります。

CK-12のFlexBookという教科書は、PDFやepubで読むことができ講義画像へのリンクもついています。

CK-12の統計コース一覧

CK-12の統計学初歩の教科書

CK-12には他のレベルの統計学の教科書もあります。

書籍

小島 寛之 完全独習 統計学入門 ダイヤモンド社

統計学の初歩として数式を多用せず、分かりやすいのでお勧めです。

涌井良幸 多変量解析がわかる 技術評論社

著者は高校の先生なので非常に丁寧に説明してくれるので、多変量解析のことがよく分かるようになります。

Foster Provost 戦略的データサイエンス入門

過学習等、実際にデータ解析を行う際のノウハウが収録されている。

Steven Bird 入門 自然言語処理

自然言語処理の入門書。Pythonでの自然言語処理方法を収録している。

勉強会

TokyoR

東京で開催されている統計プログラミング言語Rの勉強会です。

一人で勉強していると周りが見えなくなることもありますので、一緒に学ぶ人を見つけるのがよいでしょう。他にも多くの勉強会があるので、探してみましょう。

英語の教材が多くなってしまいました。統計学やデータサイエンスを学んでいくと、やはり欧米の科学教育に対する層の厚さをひしひしと感じます。英語という障壁はありますが、その障害を補っても余りある学習効果があると思いますので、是非英語の教材にも挑戦してみてください。

[問題解説12] 男性と女性の殺人被害者数の関係は?

かなり遅くなってしまいましたが、「男性と女性の殺人被害者数の関係は?」の問題解説をします。

今回の問題は、前回の問題「ヒストグラムと散布図を描いてみよう」の発展問題です。

データとプログラムは下記のGitHubリポジトリーにおいてあります。

問題

世界各国の殺人被害者データを用いて女性被害者数から男性被害者数を予測してみましょう。

UNODC(United Nations Office on Drugs and Crime : 国連薬物犯罪事務所)から公開されている世界176ヶ国の殺人被害者の男女別のデータがあります。女性被害者数から男性被害者数を予測してみましょう。

homicide_log.zipをダウンロードしてください。解凍して、homicide_log.csvを読み込んでください。
男性・女性の殺人被害者数のデータは10を底とする対数化してあります。
元データは下記のページから入手しました。
Global Study on Homicide(殺人に関するグローバル調査)

■課題

1.回帰分析を行ってください。

Rの回帰分析関数 lm() を使用して予測式を求める計算をしてください。

2.予測式の値を答えてください。

男性被害者数をM、女性被害者数をFとすると、以下の予測式が成り立ちます。
M = a * F + b
a, b を小数点3桁まで答えてください。解答方法はプログラムの最終行に以下のように記述してください。
# a = x.xxx
# b = y.yyy
3.散布図を作成し、予測式の直線を表示してください。 X軸は女性被害者、Y軸は男性被害者。2Dの散布図を作成してください。表示範囲はX軸、Y軸ともに[-1,3]とする。 その散布図に重ねて、予測式の直線を青色で表示してください。

■解答方法 R言語のプログラムを作成し、上記1~3の課題に答えてください。プログラムファイル名は predict.txt として、アップロードしてください。 散布図は predict.pdf というファイル名でPDFとして出力するプログラムにしてください。

[問題解説12] 男性と女性の殺人被害者数の関係は? の続きを読む

Foreigners activate Tokyo, but lone seniors have a problem

Statistical survey discovered that foreigners will activate Tokyo economy. But Tokyo has a problem of lone seniors.

東京は外国人・起業家・自営業で活性化。独居老人も問題。(日本語スライド)

Network Analysis

We selected 121 factors from eStat data and made network analysis where factors connect each other with correlation coefficients.

http://www.e-stat.go.jp

We focused on Tokyo cities from the previous Japan network analysis.

http://d.hatena.ne.jp/infoarchitect/20140122/p1

Rich and Poor

We progressed network analysis of 121 factors on Tokyo cities. The factor network of Tokyo shows that factors are mainly divided into 3 regions in left, middle, and right. The yellow green left region indicates poor people since the factor of unemployed people stands at the center of this region. The right region shows the supercluster of rich people or high income taxpayers as tax income are situated near this region. In the middle, there were foreigners of large circle and workers.

Foreigner as a new working class in Tokyo

The following is top 10 of betweenness among 121 factors.

Label	                Description	                Betweenness
foreigner.log	        foreigner	                164.7
family_trans	        family in 2005	                129.2
family_worker.log	worker in family business	119.9
farmer_product.log	agricultural product price	109.2
worker	                worker	                        106.1
family_senior_single	single senior family	        105.1
commuter_in	        commuter coming to this city	 99.5
worker_3	        tertiary industry worker         85.3
worker_miner.log	mining worker	                 84.0
worker_3b	        tertiary industry worker	 75.9

The factor of foreigner has the highest betweenness score. As the network diagram shows, foreigner is a hidden activator in Tokyo as workers. On the contrary to our expectation of Japanese homogeneity, foreigner may be a new working class in Tokyo cities, which connects the boundaries of rich and poor people in Tokyo.

Lone Senior Problem in Metropolis

When we look at the poor people region, single senior family is a remarkably large circle there. This suggests that the problem of lone seniors may drag other factor in the poverty in Tokyo.

f:id:infoarchitect:20140122153309p:image

Immigration Policy in Aging Society

We Japanese continued ethnic homogeneity long years. But in the coming age, we must confront multivalued society which accepts foreigners as living partner in all aspects for our future. Increasing foreign population may lead to some problems, but may also lead us to a rich cultural diversity. We expect policy in Tokyo will improve immigration environment.

And solution to the problem of lone seniors is also important since this problem is the critical point of poverty in metropolis.

This survey was done by data galaxy team on the competition of data journalism camp & award in Dec, 2013.

http://www.rearisedesign.com/djc2013/

大阪立て直しの処方箋:高校教育の質を高めよ

Increase Osaka Education Quality of High Schools!

政府統計データの解析から、大阪府の立て直しには高校教育の質の向上が必要であることが分かった。他に、保育園・幼稚園の数、小学校、小学校教師の数等も経済活性化に有効であることが分かった。

Governmental statistic data analysis revealed that educational quality like high school is the most important for Osaka economy. Furthermore, increasing the number of kindergartens, elementary schools, and their teachers is also critical.

政府統計データe-Statを利用し、大阪府のデータを解析した。大阪府の経済的要因124個を抽出し、ネットワークを描くことで、大阪府の隠れた活性化要因を見つけようと思う。

大阪府の経済要因ネットワーク図

124個の要因のネットワークは下記のようになった。

f:id:infoarchitect:20140228153727p:image

仕事中心と生活中心

大阪府の要因ネットワークは大きく2つの極に分かれた。それは「仕事中心の世界」と「生活中心の世界」だ。図では、上側の赤い部分が「仕事中心の世界」があり、下側の緑の部分が「生活中心の世界」となっている。

「仕事中心の世界」は、主に、大人や従業員関連の要因からなっており、「生活中心の世界」は世帯関連の要因がひしめき合っている。

この大きな2つの極とは別に、「生活中心の世界」の近くに学校と老人からなる「教育の世界」が存在する。おそらく、学校制度と老人の生活とが何らかの形で結びついているのであろう。

どの指標が良いのか?

各経済要因の相関係数を計算し、経済要因同士の強さとして相関係数を使って、要因ネットワークを描いた。ネットワーク内における要因(ノード)の重要性はグーグルランク等の指標で測ることができるが、隠れた経済要因を見つけるためにbetweennessという指標を計算してみた。betweennessとはネットワーク全体の中でその要因を必ず通過しなければならないボトルネックとなる弱点(?)を測るための指標である。このbetweennessに注目して解析してみよう。

Betweennessトップ10

f:id:infoarchitect:20140228154731p:image:w280

このbetweennessの指標で見ると、「労働者数」、「一般世帯数」がそれぞれ1位、2位となっている。労働者や世帯数が増えれば、経済が活性化するのは当然であろう。

ここで注目して欲しいのは、「学生1人当たりの高校数」(3位)、「園児1人当たりの保育園・幼稚園数」(6位)、「児童1人当たりの小学校数」(9位)、「児童1人当たりの小学教師数」(10位)という教育関連の要因が上位に入っていることだ。元大阪市長の橋下徹氏が教育改革について熱く議論し、変革しようとしているのも合点がいく。大阪において教育への投資が最も経済活性化に効いてくるのだ。

他には「郵便局数」も4位となっており、コミュニティの中心として郵便局の役割が重要になっているのかも知れない。

大阪経済の概要

前掲のネットワーク図を簡略化すると以下のようなダイアグラムになる。

f:id:infoarchitect:20140228153728p:image

ここで注目すべきは、真ん中に位置する「税金収入額と納税者数」である。他の自治体では「税金収入額と納税者数」は「仕事中心の世界」の中か近く位置するのが普通であるが、大阪の場合は大きな極(仕事中心の世界と生活中心の世界)の間に位置している。税金関連要因が大きな要因群から離れているということは、他の要因の影響を受けにくいという事で、税金自体の収集が難しいことを表していると言える。大阪が財政難に苦しんでいるのも、このダイアグラムを見ると一目瞭然である。税金関連要因に隣接しているのは、「金融業を含めた第3次産業労働者数」と「一般世帯数」であるので、税金を増やすにはこの要因を増加させる必要がある。

高校数の少ない市区町村

人口に対する高校数が大阪の活性化につながっている。従って、人口に対する高校数が少ない市区町村に対し、高校数を増やし行くのが良い政策であると思う。人口に対する高校数の少ない市区町村は以下の通りである。とりあえずは、人口密集地域にある大阪市の東成区、東住吉区、西区、浪速区、淀川区、堺市の北区に高校を作ることからはじめるのが良いだろう。

f:id:infoarchitect:20140228154730p:image:w280

大阪は教育重視の政策が必要

以上のように、大阪の活性化には教育へ投資が重要である。特に、高校、小学校、小学校教師、保育園・幼稚園を増やすことが早急な課題である。長期的視野に立てば、教育への投資が最も大阪の発展につながり、経済が活性化すれば、次第に財政難の問題も解決するのではないかと思う。

Commerce and hotel business will activate Japan

Statistical survey discovered that commerce and hotel business will activate Japanese society.

統計分析によると、日本社会の活性化には宿泊・娯楽産業と商業の発展が重要である。

We selected 121 factors from eStat data and made network analysis where factors connect each other with correlation coefficients.

Metropolis and Countryside

The factor network of Japan shows that factors are mainly divided into 3 clusters in left, middle, and right. Factors of metropolis formed the left supercluster. Right region includes countryside supercluster, commerce, and manufacturing clusters. In the middle, there was hotel business and NEETs who don’t work and live with their parent.

Importance of Global Connectivity

Network analysis have many feature index. Betweenness is an index which shows importance of global connectivity. Betweenness indicates a hidden important relay station on the networked system. We show a network diagram of factors where the betweenness was shown in the circle size.

Factor	                Description	                  Betweenness
merchant_employee       commercial employee               164.0
restaurant	        restaurants	                  123.1
family_parent_m         families with father	          117.3
unemployed	        unemployed people	          115.4
ground_residence.log	ground price in residential area  113.2
high_student	        high school students	          112.2
family_parent_f	        families with mother	          108.8
garbage_emission	garbage emission amount           107.4
garbage_recycle	        garbage recycling rate	          102.0
elem_student	        elementary school children	   94.7

Commerce is important

The factor of commercial employee (merchant_employee) has the highest betweenness score. As the network diagram shows, restaurants (restaurant) also has the high betweenness. Garbage emission amount (garbage_emission) is high because commercial activity causes a large amount of garbage as a consumption result. These three commercial factors situated on the middle side of the network system. They are regarded as relay station to the far metropolis and must be an important activating factors in the total system.

Travel Industry is welcomed

Hotel business (hotel) and amusement workers (employee_amuse.log) are situated between the metropolis and countryside superclusters. That means those two factors are activator of the system, which globally connect the two divided superclusters.

f:id:infoarchitect:20140122111134p:image

Commerce and Travel are activator

Our conclusion is that hotel business and commerce will activate the Japan society in the hidden layer of economical structure. We hope political decision will learn from this result and pursuit activation of Japanese economy.

This survey was done by data galaxy team on the competition of data journalism camp & award in Dec, 2013.

【解説】「ヒストグラムと散布図を描いてみよう」

今回の問題はRの初心者向けで、まずデータ読み込み、ヒストグラムと散布図を生成する問題でした。

問題は以下の通りです。

世界193カ国の殺人被害者のデータを読み込んで2種のヒストグラムと2種の散布図をPDFファイルに出力してください。

読み込む入力ファイルはHomicides_by_sex2.csvを使ってください。

こちらからダウンロード(homicide.zip)して解凍。

データはUNODC Homicide statisticsのHomicide by sexのエクセルファイルをコンマ区切りのCSV形式に変換したものです。

入力ファイルの最後には説明文など不要な行がありますので、うまくパラメータを使って読み込んでください。

“Males rate per 100,000″のカラムは10万人当たりの男性殺人被害者数、”Females rate per 100,000″は10万人当たりの女性殺人被害者数です。

出力するファイルはPDF形式でhomicide.pdfとしてください。1ページにつき1つの図で、全部で4つの図を描画してください。

下記の図を描画してください。

男性殺人被害者数のヒストグラム

1A. 男性殺人被害者数のヒストグラム

1B. 男性殺人被害者数の対数ヒストグラム(x軸を対数化してください)

binの数は30個。等間隔になっているbinで描画してください。目盛りはlog値になっていてもOKです。

女性と男性の殺人被害者数の散布図

女性をx軸、男性をy軸にして、各国を点として散布図を描画してください。

2A. 散布図

2B. 散布図(x軸、y軸共に対数表示)

対数は自然対数logでOKです。値には0も含まれており、log化できないものありますが、今回は警告などは無視してプログラムを作成してください。

各図にはメインタイトル、x軸ラベル、y軸ラベルを日本語でつけてください。

■解答方法

解答は作成したRのプログラムをtxtに変換し、アップロードしてください。

プログラムの例は以下の通りです。

### homicide.R ###
pdf('homicide.pdf')
par(family="Japan1GothicBBB")
h <- read.csv('Homicides_by_sex2.csv', nrow=193)
str(h)
f <- h$Females.rate.per.100.000
m <- h$Males.rate.per.100.000
### HISTOGRAM ###
hmain <- '男性殺人被害者のヒストグラム'
hxlab <- '10万人当たりの殺人被害者数'
hylab <- '殺人被害者の頻度'
hist(m, main=hmain, xlab=hxlab, ylab=hylab, breaks=30)
hist(log(m), main=hmain, xlab=paste(hxlab, '(対数)', sep=''), ylab=hylab, breaks=30)
### SEXUAL COMPARISION PLOT ###
pmain <- '世界各国の男女別殺人被害者'
flab <- '10万人当たりの女性殺人被害者数'
mlab <- '10万人当たりの男性殺人被害者数'
plot(f, m, main=pmain, xlab=flab, ylab=mlab)
plot(f, m, main=paste(pmain, '(対数表示)', sep=''), log='xy', xlab=flab, ylab=mlab)

ファイルはコンマ区切りなので、読み込みにはread.csv()を使います。1行目はタイトルで、データの行数は193なので、nrow=193でデータ行数を指定します。

日本語を表示させるにはフォントファミリーパラメータの設定が必要です。

par(family=”Japan1GothicBBB”)

1A. 男性殺人被害者数のヒストグラム

f:id:infoarchitect:20140408163457p:image

binの数はhist()関数のbreaksパラメータで指定することができます。

1B. 男性殺人被害者数の対数ヒストグラム

f:id:infoarchitect:20140408163456p:image

値を対数化するにはlog()関数を使えばいいですね。ただし、このやり方だと数値も対数化されているので、分かりにくいですが、今回の問題では数値が対数になっていてもOKです。

1Aのヒストグラムは左側(小さい値)に集まっていますが、1Bの方は対数かすることによって大きな二つの山が見えてきました。

2A. 散布図

f:id:infoarchitect:20140408163455p:image

2B. 散布図(x軸、y軸共に対数表示)

f:id:infoarchitect:20140408163453p:image

散布図の対数化は、hist()とは異なり、plot()関数のlogパラメータでlog=”xy”のように指定します。この場合、x軸とy軸が対数スケールとなります。

2Aでは点が扇形に広がっているように見えますが、2Bでは対角線に並んでいるように見えます。点のばらつきから推測すると、男性・女性殺人被害者数は対数スケールで扱う方がうまく行きそうだということが分かります。

データ解析の最初に行うべきことはデータの概要をつかむことです。ですから、最初にすることは、ヒストグラムや散布図を書いてみることです。データの雰囲気を捉えることが解析への重要なステップの一つなのです。