top of page

言語統計学B

Statistics in Linguistics B​​

​ みなさん、お帰りなさい!夏休みもあっと言う間でしたね。有意義な時間を過ごすことができたでしょうか。

 さて、年度もここから後半戦!ぜひ、後期もぜひ有意義な時間にしていってくださいね!この言語統計学Bでは、言語統計学Aで学んだ内容を発展させたより高度なデータ分析技術を学んでいきます。具体的に言うと、前期と後期では、

 前期: 従属変数が正 規 分 布  をなす場合(連続値)

 後期: 従属変数が正規分布以外となる場合(離散値)

という違いがあります。つまり、前期と後期の手法を合わせれば、どんな従属変数が登場しても対応できるということになります。そうなれば、きっとみなさんの研究の幅も大きく広がっていくことでしょう。

 それから、後期の後半ではより複雑なモデルについてもきちんとパラメータの推測ができ、また、同時に自分でオリジナルなモデルを作れるようになるために、Stanという言語を用いた統計モデリングを行います。これは、今まで習ってきた頻度主義統計学ではなく、ベイズ統計学という新しい枠組みでパラメータを推測する立場なので、ベイズ統計学の考え方やそのベイズ統計学の背後で使われる計算統計学の技法についても学んでいきます。

 いろいろ学ばなければならないこともありますが、この目標を達成できるように、一緒に頑張っていきましょう!まずは、この学期で習うことのあらすじを説明した動画を用意しましたので、こちらをみて全体のイメージをつかんでくださいね!

outline

      ​この授業の期末課題について

 この授業では、期末レポートによって成績を付けます。その課題は、下記の通りです。データを自ら採りたいと思う人は、なるべく早めに準備をして期日に間に合うようにしてください。

・自分が専門とする分野の先行研究の現状を踏まえ、高い研究意義があると思われるリサーチクエスチョンを設定し、何らかのデータに対し、統計手法(※必ずしも言語統計学A/Bで紹介されたものでなくともよい)を用いて分析を行ったうえで、適切な議論を展開し、結論を導く期末レポートを作成せよ。

 

なお、今学期は頻度データを扱いますので、主に言語学を専門とする人向けのヒント集として、コーパスに関する情報を下記に記しておきますので、必要な人は必要なときにご視聴ください。

 

提出期日: 02/03/2025 (月)

※2024年度は、前期の言語統計学Aで線形混合効果モデルを扱うことができなかったので、Class 1とClass 2でこの内容を扱います。予習は、言語統計学Aの線形混合効果モデルのビデオを視聴してきてください。

      ​この授業の後半で使うテキストについて

 この授業では、12月以降にStanというプログラミング言語を学びます。そこで、それまでに、それを学ぶために次の二つのテキストを用意しておいてください。初回の授業で持っている必要はありませんが、早めに購入しておいてください。

  • 馬場真哉 (2019) 『実践Data Sceinceシリーズ RとStanではじめる ベイズ統計モデリングによるデータ分析入門』. 東京:講談社.
     

  • 松浦健太郎 (2016) 『StanとRでベイズ統計モデリング (Wonderful R)』. 東京:共立出版.

Lecture 1 イントロダクション Introduction

Class 3 推測統計学の四つの重要概念(非比率尺度編)

10/17/2022

bernoulli distribution

ノート1: 母集団 Population

ノート2:基本的な統計量 Fundamental Statistics

      ​今週のポイント!

 今学期の私たちの目標は、従属変数に正規分布以外の確率分布を据えたモデルを学ぶことにあります。そこで、「ノート1」では、そもそも正規分布以外にどんな分布があるのか、ということを学びました。もちろん、正規分布以外にも分布は無数に存在します。そこで、ここではその中でも扱いやすくよく使われる分布を紹介したのですが、これらの分布が、別に無秩序に、やみくもに考案されてきたわけではないということがポイントです。基礎的な分布から、一つ一つ発展することで、複雑な分布が登場しているという点を押さえてください。統計学を進めていく上のコツの一つは、概念を一つ一つ独立して覚えるのではなく、それらを互いに有機的に結びつけて理解していくということです。このこと忘れないでくださいね。

 さて、授業の後半では、頻度という馴染みのある概念を、標本、または、標本から計算された量である統計量として見なすというお話をしました。この逆コの字型の派生関係は、前期の授業で見た正規分布の話と同じ構造をしていますので、この平行関係もきちんと押さえてくださいね。

Class 4 推測統計学の四つの重要概念(非比率尺度編)
 

10/24/2024

relative frequency
manifold
distance

ノート3:標本分布 Sampling distributions

      ​今週のポイント!

 「頻度」に端を発して、そこから派生的に広がってくる様々な統計量を学ぶことが今週の中身でした。これは、ちょうど、比率尺度の変数に対して、平均や分散を計算したり、共分散や相関係数を計算したりして、様々な統計量を考案してきたのと同じ話です。ただ、もしかすると、平均とか分散とかは馴染みがあっても、情報量という統計量は、初めて聞いたという人も多かったのではないかと思います。初めてのものが多いと疲れたかなと思うので、ぜひ今週末はおいしいものでも食べてリフレッシュしてください:)

 前期同様「これらの統計量の定義をすべて覚えなければ!」というような強迫観念にかられる必要はありません。必要なときに毎回戻ってきていつの間にか覚えているというのが理想でしょうから。それよりも大局的なストーリーを押さえるようにしてくださいね。ここで言うところの大きな物語とは、頻度、つまり物事の回数は、統計量なので、標本を採るたびごとに毎回変わるということです。

 卒論、修論、博論の執筆に際して、この点はしっかり覚えておいてください。というのは、言語学ではコーパスを利用することで、対象とする表現の頻度を数えることは容易になりました。そして、その頻度だけを記載することで、母集団に対して一般化ができたつもりになってしまう学生さんが多くいるのです。しかし、ここで終わらないでください。毎回標本を採るたびごとに変動する頻度という統計量だけを見ていても、全知全能ではない私たちには、母集団の性質は分かりません。このため、母集団の推測を行うために、比率尺度変数の裏側に正規分布を想定したように、頻度という離散的な変数の背後に、ベルヌーイ分布や二項分布といった母集団分布を想定することが必要になります。そこで、来週以降、このような統計モデルを立てるやり方を学んでいくことにしましょう。

Lecture 2 一般化線形モデル Generalized Linear Models

Class 5 ロジスティック回帰 Logistic Regression (Part 1)

10/7/2024

omotya

ノート0:あらすじ Overview

ノート1:母集団 Population

      ​今週のポイント!

 前期に習った回帰分析は、第一に、母集団に正規分布を想定し、第二に、そのN(mu, sigma)の期待値であるmuが、独立変数の値によって一次直線を描きながら変化する線というモデルを考え、独立変数を従属変数を結びつける統計手法でした。

 今回から紹介を始めたロジスティック回帰というモデルもやりたいことは同じなんです。つまり、第一に、母集団に確率分布を想定します。ただし、ここでは、正規分布に代わり、ベルヌーイ分布や二項分布が採用されます。そして、第二に、そのベルヌーイ分布や二項分布の期待値piが、独立変数の値によって変化するという構造を盛り込んでいます。期待値piは、確率に当たるので、0から1までの値しかとりません。そこで、上限も下限もなくただひたすら伸びていくという直線を採用することはできず、ぐねっとした曲線が採用されています。これを表現したものがリンク関数というものですが、逆に、回帰分析では、直線となるようなリンク関数が選ばれていたのだと考えることで、ロジスティック回帰も回帰分析も同じシステムで動いていると見なすことができます。つまり、回帰分析という考え方を、従属変数が非正規分布である場合において拡張したのが、この一般化線形モデルだというわけです。

 別の一般化線形モデル(拡張の仕方)にポワソン回帰というものがあるのですが、その紹介はもう少し後にとっておいて、来週と再来週は、今回習ったロジスティック回帰の裏側や使用に際しての注意点というものを見ておくことにしましょう。

11/14/2022

Class 6 ロジスティック回帰 Logistic Regression (Part 2)

estimation

ノート2:最尤推定法 Maximum Likelihood Estimation

ノート3:評価1 残差逸脱度 Residual Deviance

      ​今週のポイント!

 前期に習った回帰分析では、最小二乗法というやり方でモデルに含まれていたパラメータの値を推測していました。なぜならば、最小二乗法にはいろいろなメリットがあったからです。しかし、ロジスティック回帰や後から習うポワソン回帰など一般化線形モデルでは、最小二乗法は使えず、その代わりに、最尤推定法という推定方法を用います。サンプルサイズがそこそこ十分とれているのであれば、この最尤推定法にもいろいろなメリットが出てくることが知られているからです。

 このような大局的なストーリーラインは理解できたうえで、ただ、細かい話はちょっと難しかったと思った人もいるかもしれません。安心してもらうためにお伝えすると、細かい計算式などの細部は、パソコンが勝手にやってくれます。ですから、この推定方法というものは、ユーザーとしては特に気にする必要はありません。そのあたりは上手に受け流してください。

 でも、そう聞くと、「じゃあ、どうして紹介したのか」と思うかもしれませんね。理由は大きく三つあります。

 第一に、仮に最初から詳細を省いて「パソコンがやってくれるから学習は不要です」としてしまうと統計をブラックボックスとして使ってしまうよくない付き合い方を冗長してしまいますし、なによりそれはユーザーとして不安でしょう。

 第二に、背後の計算方法を知らなければ、パソコンに計算をさせた時にはかれるエラーの意味が分からず立ち往生してしまうことでしょう。

 第三に、パソコンがする計算というものに対するイメージが、より発展的な統計手法を学ぶ上で重要になっていきます。​私は昔、はじめてニュートン・ラプソン法を学んだとき、パソコンはなんて地道な試行錯誤をしているんだろうと驚いたのを覚えているのですが、この話を習わなければ、パソコンは何か魔法のような仕組みで動いているのではないかと思い続けていたかもしれません。しかし、このような地道なパソコンを使った試行錯誤という話は、学期の後半で習うベイズ統計学で再び登場してきまして、私自身ベイズ統計学を学んだ際、この最尤推定法をきちんと押さえておいてよかったなと思った経験があります。そこで、その時のための大切な前座としてこの話をお伝えしておきたかった、そのような背景があります。

Class 7 ロジスティック回帰 Logistic Regression (Part 3)

12/05/2024

estimation
classification
scatter plot

ノート4:評価2 仮説検定 Hypothesis Testing

ノート5:評価3 モデルの適切さの検証 

      ​今週のポイント!

 今週は、自分がパラメータを推定して作り上げたモデルを吟味するという話です。前期のt検定、回帰分析、分散分析の全ての講義で、モデルを立てっぱなしにするのではなく、多角的に自分が推定したモデルを評価しようという話をしていたのを覚えているでしょうか。それと全く同じ考え方がここでも息づいています。

Class 8 ポワソン回帰 Poisson Regression

12/12/2024

poisson regression

ノート0:あらすじ

ノート1:母集団

      ​今週のポイント!

 前回まで習ってきたロジスティック回帰は、AかBか、あるいは、AかBかCかというような複数の候補の間でどういうそれぞれどういう頻度になるのかというライバルが乱立する状況で使われるモデルでした。しかしながら、いつもいつでも、複数の候補があるような状況とも限りません。今回習ったポワソン回帰は、ターゲットになっている変数単体の頻度がどのように独立変数の値によって変化していくのかを論じるモデルです。

 真新しいのは、モデルの仕組みだけで、推定には、ロジスティック回帰同様、最尤推定法が用いられますし、作ったモデルを比較するという観点も今までと同じですので、ここでは割愛しました。

 さて、というわけで、従属変数に正規分布を仮定しない、離散的な頻度を扱うモデルとして、ロジスティック回帰とポワソン回帰を押さえることができました。ここまで学べば、みなさんの様々なリサーチクエスチョンに対して、かなり柔軟にモデルを作れるようになったのではないかと思います。

 さらに、重回帰分析が、混合効果を含めて一般線形混合効果モデルへと発展したように、ロジスティック回帰やポワソン回帰にも混合効果を入れることができます(ちなみに、そういったモデルは、一般「化」線形混合効果モデルと呼ばれます)。こうして、持っている手札を組み合わせることで、みなさんは柔軟に母集団に対する統計モデルを提案できるようになってきました。おめでとうございます!!

 ただ、モデルが複雑になると最尤推定法でもうまく立ち回れないという場合が出てきます。となってくると、どんなモデルに対しても、とりわけ混合効果を入れたような階層構造が入ってきても、同じような態度で淡々とさばいていけるようなそういうパラメータの推定方法が欲しくなってきますよね。

 そこで、次週からは、今までの最小二乗法や最尤推定法ではなく、別の視点からパラメータを推定する立場であるベイズ統計学という枠組みを習いたいと思います。頻度主義というこれまでの前提とは違うアングルから統計モデルを眺めるので、大きくパラダイムが変わっていきますが、その根底に眠る哲学は、統計学を超えて、人間の一般認知活動に非常に親和性の高い考え方をなしていますので、統計学の話というだけでなく、自分の思考回路を拡げる意味においても、しっかり理解をして自分のものにしてもらえればと思います。

Lecture 3 ベイズ統計学Bayesian Statistics

Class 9 ベイズ統計学 Bayesian Statistics

12/19/2024

bayian statistics

ノート0: あらすじ Overview

ノート1: 事後分布 Posteriors

ノート2: 事前分布 Priors

      ​今週のポイント!

 いかがだったでしょうか。人間の知識状態を確率分布で捉え、何か情報が入ってくるとその確率分布が動的に変化する、というのがベイズ統計学の考え方です。これは、統計学だけではなく、例えば、近年の動的意味論・動的語用論という理論言語学で提唱されている人間の知識状態の更新と非常に親和性が高く、私の博士論文もベイズ統計学を動的語用論に取り入れて、丁寧語を分析するというものでした。

 まあ、そんな私の話はさておき、この話のポイントとなる点をおさらいしておきましょう。それは、全知全能の存在が表立って登場しないということにあります。これは、全知全能の視点を否定するということではありません。そうではなく、しょせん研究者は人間なので、全知全能の視点はとることができないので、自分たちの、つまり、人間視点の統計学を組み立てているということを意味しています。人間と同じような態度でデータ、つまり、世界を学習していく、そのようなダイナミックな推論の過程を私たちは手に入れることができました。

 一方で、ベイズ統計学の柔軟さの源泉でもあり、また、弱点ともなりうる諸刃の剣が事前分布と呼ばれる、データを得る前の研究者の知識状態を表した確率分布です。データがたくさん採れているのであれば、事前状態を凌駕して、事後分布はデータによって形状が決まり、事前分布設定の恣意性は払しょくされるわけですが、データが少ないときは、事前分布の影響が無視できなくなります。しかし、それは、結局「データが少ないとき、母集団を推定することは難しい」という当たり前の帰結でもあります。データが少なすぎる時は、研究者はそれ以前の知識に頼らざるを得ないという現実世界で当然生じるジレンマが、数式の上で当然のように生じているわけですから、そういう時は無理せずに母集団に対して「えいや」と強引に一般化するのではなく、「もう少しデータが集まるのを待ちましょう」という謙虚な態度を私たちに思い出させてくれる点で、”一周回って”頼りになる相棒としてベイズ統計学を理解することができる、そんな風に思ってもらえればいいのかなと思います。

Class 10 Stan (Part 1): Intercept Model

12/26/2024

この授業から数回にわたり、Stanというプログラム言語を用いて、様々な統計モデルのパラメータをベイズ推測していきます。とても良い本が出ていますので、この二つの本を読み、指定された箇所を予習したうえで予習動画を視聴してください(このHPの頭でお知らせした二つの本です;下記に再掲します)。

  • 馬場真哉 (2019) 『実践Data Sceinceシリーズ RとStanではじめる ベイズ統計モデリングによるデータ分析入門』. 東京:講談社.

  • 松浦健太郎 (2016) 『StanとRでベイズ統計モデリング (Wonderful R)』. 東京:共立出版.

Reading Assignments

馬場:pp. 79-92 (Rについて)

馬場:pp. 111--124(Stanについて:正規分布の平均と分散)

馬場:pp. 125--140 (MCMCの結果の評価)

             Stan (Part 2): Simple Regression Model

Reading Assignments

松浦:pp. 28--53(Stanについて:単回帰)

馬場:pp. 167--179 (単回帰)

      ​今週のポイント!

 というわけで、今回からベイズ統計学の枠組みでパラメータの推論を行ってくれるプログラミング言語Stanというものの紹介を始めました。プログラミング経験が少ないという方は「たくさん学ばないと!」って思ったかもしれませんね。

 とはいえ、その基礎にあるのは、前期から一緒に何度もやってきた、自分が母集団に想定するモデルを数式で表現するというごくごく当たり前のプロセスです。まず、ノートに自分のリサーチクエスチョンを説くのであれば、どういう母集団の構造を想定しているのだろうかというのを書き表してみましょう。そして、それを数式に変換し、最後にそれをStanの文法に沿って表現してみるという感じになります。

 もちろん、ここでは、切片モデルと単回帰モデルしか扱っていないわけですが、みなさんのリサーチクエスチョンはもっと複雑かもしれませんね。ですので、次回は、これまで習ってきたより発展的なモデルをStanの記法で表現するということにチャレンジしてみましょう!

Class 11 Stan (Part 3): ANOVA & Multiple Regression

01/09/2024

Reading Assignments

馬場:pp. 185--200 (Rのbrmsパッケージ)

松浦:pp. 54--63(重回帰)

馬場:pp. 207--211 (重回帰)

馬場:pp. 201--206 (分散分析)

               Stan (Part 4): Generalized Linear Models

Reading Assignments

松浦:pp. 64--74(ロジスティック回帰)

馬場:pp. 220--227 (ロジスティック回帰)

松浦:pp. 75--78(ポワソン回帰)

馬場:pp. 212--219 (ポワソン回帰)

               Stan (Part 5): Generalized Linear Mixed-Effects Models

Reading Assignments

松浦:pp. 121--147(一般化線形混合効果モデル)

馬場:pp. 245--266 (一般化線形混合効果モデル)

      ​今週のポイント!

 いかがだったでしょうか。なかなか最初は大変ですよね。何度か間違えてしまって、イライラしてしまった人もいるかもしれません。そういう時は、深呼吸です。ゆっくり、しっかり、学んでいけばよいわけですから、焦らず、前に進んでいる自分をほめながら、技術を身に着けていきましょう!

 前回も書きましたが、Stanに強くなるには、自分が母集団に想定するモデルを数式で表現するということが私たちに求められています。先生が黒板に書いているときは、「ふんふん」ってうなずいているのだけれど、いざ、やってみよう、といわれると、「あれ、何から書けばいいのかな」と立ち止まっちゃうんだよね…。

 そんな風に思ったそこのあなた!大丈夫ですよ。みんなそうです(笑)でも、スタート地点では、みんなそうなんですけれども、その後、使えるようになる人と使えないままで終わる人に分かれていきます。じゃあ、使えるようになる人たちはどういう人たちかというと、まず、第一に、なんどもめげずにチャレンジを繰り返して、書けるようになるまで何度もビデオや本を見返した人、そして、第二に、自分の研究のリサーチクエスチョンにつなげていきたいと強い動機を持っている人たち、という感じがします。

​ ですので、みなさんも、自分が解いてみたいと思っているリサーチクエスチョンを意識して、それを解くためにStan使ってみよう!と志高く、チャレンジを繰り返してみてください。そろそろ期末課題の足音も聞こえる時期になってきましたので、ぜひぜひそれも自分が伸びるステップとして活用して大きな飛躍を遂げていってください!

Class 12 ベイズ計算統計学 Bayesian Computation (Part 1)

01/16/2024

gibbs sampler

ノート0:あらすじ

ノート1:マルコフ連鎖モンテカルロ法 Markov-Chain Monte Carlo Methods

      ​今週のポイント!

 さて、Stanに慣れていただき始めたところで、ベイズ統計学の裏側で実際に動いている推定手順について学んでいただくというのが今回と次回の授業の目標です。

 すこし前​​になりますが、覚えているでしょうか、最尤推定法を学んだときに、パソコンは裏側でこんな試行錯誤を繰り返しているよ、という話を紹介しました。今回も同じなんですね。当初、ベイズ統計学の理念は作られたものの、その理念に沿って実際に計算する手段は、あまり発達していない時期がありました。積分が出てきてしまうので、色々面倒だったんですね。

 それが、MCMCが登場して、大きく状況が一転します。Stanの前にもGibbs Samplerを搭載したソフトができたりしていたのですが、Stanが登場してものすごく手軽に推定ができるようになりました。手軽にStanでベイズ推測っていうができる時代にベイズ推測を学べるみなさんは、なんだかちょっと贅沢だなぁって思ったりします。

 で、そのMCMCのポイントは何だったのかというと、ランダムにとりあえずビー玉を詰めてみるという発想、ただし、事後分布の形に近くなるように工夫が施されているというものです。マルコフ連鎖、つまり、一つ前に詰めた場所の近くに詰めるようにするということで、事後分布の盛り上がっているところの近くにビー玉が効率的に集まるように工夫されているということだったんですね。このロジックを押さえてみていただければと思います。

 でも、いつまでビー玉を詰めればいいのでしょう。この問題に立ち向かうために、次回の授業で、収束の判断について学んでみることにしましょう。

01/23/2024

Class 13 ベイズ計算統計学 Bayesian Computation (Part 2)

convergence

ノート2:MCMCの診断 Checking MCMC

      ​今週のポイント!

 Stanを使いこなしてもらうために必要な収束判断について解説をしました。これで、どういう意味だろうと思っていたStanの結果ファイルが読めるようになって、きっと実践でも使えるようになったのではないかなと思います。ぜひ自分の研究の取り入れてみてくださいね。

 さて、というわけで、昨年の4月から始めた言語統計学のツアーもお終いとなりました。4月の最初の授業覚えているでしょうか。統計学は、あくまでもツールだから、リサーチクエスチョンを忘れずに、ついてきてね、そんな話をしていましたよね。リサーチクエスチョンには、探索的なものと検証的なものがあるけれど、検証的なものは、仮説というものを評価する形で進むのだということ、そして、仮説は「○○(独立変数)によって▼▼(従属変数)が変わる」という形で表されるということをお話ししました。で、言語統計学Aでは、この独立変数の種類と数を、一つから二つ以上へ、そして、名義尺度から比率尺度へという形で拡張していき、この言語統計学Bの前半では、従属変数を比率尺度から非比率尺度へと拡大してきたのでした。

 こうして、みなさんは多様な統計モデルを母集団に仮定する力を得たわけですが、せっかく母集団に仮定した統計モデルのパラメータが推定できなければ意味ないですよね。そんなとき、いつもいつでも統一的なやり方で推定ができるベイズ推測はとても魅力的で、特に混合効果が入り、階層構造がモデルに生じる場合にとても強いのだということで、言語統計学Bの後半はベイズ統計学の基礎と、その実践としてStanを、そして、そのStanのからくりを知ってもらうために計算統計学の基礎を学びました。平均とか中央値とかを学んでいた去年の4月から見たら、大きく成長した自分が感じられるのではないでしょうか。

 といっても、統計学がこれですべてかというと、決してそのようなことはありません。個別具体的なリサーチクエスチョンに合わせて、より柔軟で、複雑な統計モデルが母集団に提案され続けています。そうですね…。ここまで成長したみなさんが次に学ぶことになる一連の統計モデルとして、私が思うのは、潜在変数と呼ばれる変数が含まれているモデルかなという気がしています。というのは、この言語統計学AとBで学んできた変数はすべてが、顕在変数(つまり、実際に観測することができる変数)たちからなるモデルだったからです。そこで言語統計学Cでは、実際には研究者が観測することができない潜在変数と呼ばれる別のタイプの変数を統計モデルに組み込んだ様々な応用例を見ていきたいなと考えています。

 その一つの事例として、言語統計学Cへの橋渡しとして、ここでは、トピックモデルという統計モデルを概観して後期の授業のフィナーレとしたいと思います。

言語統計学C

Statistics in Linguistics C

 予定では、15回の授業が2回余るペースになるのですが、この2回は、次のように扱います。

 まず、授業の中で、みなさんの理解が不十分なので、先に行くのが危ぶまれる場合は、「戦略的な足踏み」を行い、その単元で「次週も同じ範囲の復習」をするということにします。

 一方で、特にみなさんの理解に問題がなく、進んだ場合は、さらに発展的なモデルを扱おうかなと思っています(実はこれは、言語統計学Cなるものを開講する機会があればと思って、撮りためているものなのですが ← 言文では教授になるとコマが一コマ増えるので)。そのなかで、修論でも使う人が多いトピックモデルを二回に分けてレクチャーしようかなと考えています。

Lecture 4 潜在変数を持つモデル Models with Latent Variables

Class 15 トピックモデルTopic Models

01/30/2024

Note 1: Mixuture Models

Note 2: Topic Models

Contact

Follow me

© Proudly created with Wix.com
 

  • Facebook Clean
  • Twitter Clean
  • White Google+ Icon
bottom of page