タグ

ブックマーク / hoxo-m.hatenablog.com (13)

  • A/Bテストと統計的検定の注意点(その1) - ほくそ笑む

    素晴らしい記事が上がっていたので言及したい。 仮説検証とサンプルサイズの基礎 - クックパッド開発者ブログ この記事では、A/Bテストにおいて、意味のある差が出たかどうかを統計的検定を用いて判断する方法を説明しています。 Web上にある多くのA/Bテストの記事と異なるのは、単に検定手法にデータを突っ込んでp値を出すのではなく、 意味のある差とは何かを事前に決定する サンプルサイズを事前に決定する という統計的検定のフレームワークに則ったまともな方法で判断を行っているという点です。 よく言われる統計的検定は無意味だなどという言論の多くは、このフレームワークを使っていないだけに過ぎず、不確実な事象に対する科学的な検証方法として、統計的検定のフレームワークの強力さはいまだ健在です。 さて、統計的検定のフレームワークについては上の記事および記事中で紹介されている参考文献にお任せするとして、ここでは

    A/Bテストと統計的検定の注意点(その1) - ほくそ笑む
  • ベイズ最適化についての入門記事を書きました - ほくそ笑む

    ベイズ最適化 (Bayesian Optimization) についての入門記事をマイナビのサイトに寄稿しました。 第3回 機械学習のためのベイズ最適化入門|Tech Book Zone Manatee ベイズ最適化は大域的最適化手法 (Global Optimization) の一種であり、これをグリッドサーチの代わりに使うことで、効率的に機械学習のハイパーパラメータ探索ができる、という内容です。 この記事ではベイズ最適化の基的な部分についてポイントを絞って説明したつもりです。 R言語にはベイズ最適化のためのパッケージ rBayesianOptimization があり、この使い方については下記の記事が詳しいです。 {rBayesianOptimization}パッケージによるベイズ最適化で機械学習パラメータチューニングをお手軽に - 六木で働くデータサイエンティストのブログ また、

    ベイズ最適化についての入門記事を書きました - ほくそ笑む
  • データ分析のプロを目指すエンジニア必読の書 - ほくそ笑む

    福島真太朗『データ分析プロセス』を読みました。 データ分析プロセス (シリーズ Useful R 2) 作者: 福島真太朗,金明哲出版社/メーカー: 共立出版発売日: 2015/06/25メディア: 単行この商品を含むブログ (2件) を見る 「データ分析」とひとことで言っても、色々な人たちが色々な考え方で「データ分析」をやっていると思います。 その一大勢力として挙げられるのが「Excelで集計だけしてる人たち」です。これは特にマーケター出身の人が多いのではないでしょうか。*1 一方、最近のデータ分析界隈に増加していると思われるのが「機械学習ツールにデータを入れるだけ」の人たちです。 特にエンジニア出身の方が、上司に「データ分析が流行ってるみたいだから今日からデータ分析やって」と言われて泣きながらやっているケースが多いのではないかと。 そういう人たちは、機械学習についてある程度理解してお

    データ分析のプロを目指すエンジニア必読の書 - ほくそ笑む
  • データの不備を統計的に見抜く (Gelman's Secret Weapon) - ほくそ笑む

    リクルートの高柳さん、Yahooの簑田さんと共同で翻訳したが出版されます。 「みんなのR」(原題:R for Everyone)です。 みんなのR -データ分析と統計解析の新しい教科書- 作者: Jared P. Lander,Tokyo.R(協力),高柳慎一,牧山幸史,簑田高志出版社/メーカー: マイナビ発売日: 2015/06/30メディア: 単行(ソフトカバー)この商品を含むブログ (7件) を見る このは、統計言語 R のインストール・基的な使い方から始まり、統計解析の基礎からちょっと高度な話題まで、幅広く取り扱っています。 特徴としては、 RStudio の使用を推奨 グラフィクスはすべて ggplot2 を使用 plyr, data.table, stringr といった、モダンな便利パッケージを使用*1 説明に使用されるデータはすべて Web からダウンロード可能 R

    データの不備を統計的に見抜く (Gelman's Secret Weapon) - ほくそ笑む
  • マイナーだけど最強の統計的検定 Brunner-Munzel 検定 - ほくそ笑む

    対応のない 2 群間の量的検定手法として、最も有名なのは Student の t 検定でしょうか。 以前、Student の t 検定についての記事を書きました。 小標問題と t検定 - ほくそ笑む しかし、Student の t 検定は、等分散性を仮定しているため、不等分散の状況にも対応できるように、Welch の t 検定を使うのがセオリーとなっています。 ただし、これら 2つの検定は分布の正規性を仮定しているため、正規性が仮定できない状況では、Mann-Whitney の U検定というものが広く使われています。 Mann-Whitney の U検定は、正規性を仮定しないノンパラメトリック検定として有名ですが、不等分散の状況でうまく検定できないという問題があることはあまり知られていません。 今日は、これらの問題をすべて解決した、正規性も等分散性も仮定しない最強の検定、Brunner-

    マイナーだけど最強の統計的検定 Brunner-Munzel 検定 - ほくそ笑む
  • 統計的消去で擬似相関を見抜こう! - ほくそ笑む

    今日は初心者向け記事です。 はじめに ある範囲の年齢の小学生32人を無作為に選び、算数のテストを受けてもらい、さらにその身長を測定しました。 身長に対する算数の点数のグラフは次のようになりました。 なんと、身長の高い子供の方が、算数の点数が高いという結果になりました! 身長が算数の能力に関係しているなんて、すごい発見です! しかしながら、結論から言うと、この結果は間違っています。 なぜなら、抽出したのは「ある範囲の年齢の小学生」であり、年齢の高い子も低い子も含まれているからです。 年齢が高いほど算数能力は高くなり、年齢が高いほど身長も高くなることは容易に推測できます。 この関係を図で表すと次のようになります。 つまり、年齢と算数能力に相関があり、年齢と身長にも相関があるため、身長と算数能力にも見かけ上の相関が見えているのです。 このような相関を擬似相関と言います。 統計解析では、このような

    統計的消去で擬似相関を見抜こう! - ほくそ笑む
  • 小標本問題と t検定 - ほくそ笑む

    統計を学び始めると「t検定」というのが最初のほうで出てくると思います。 t検定は、20世紀前半に活躍した統計学者、ウィリアム・ゴセットによって「小標問題」というのを解決するために考案されました。 小標問題とは、正規分布の平均値の検定に正規分布を用いると、サンプルサイズが小さい場合にαエラーを過小評価してしまうという問題です。 今日はこの小標問題とそれを解決する t検定について R によるシミュレーションを使って説明してみたいと思います。 正規分布の平均値の検定 確率変数 が正規分布に従うとき、その平均値もまた、正規分布に従います。 数式で書くと、 となります。(分散が されていることに注意) なので、正規分布の平均値の検定には正規分布を使用すれば良いように思われます。 これを R でシミュレートしてみましょう。 # 正規分布を使用して平均値が 0 と等しいかの p値を求める norm

    小標本問題と t検定 - ほくそ笑む
  • 統計言語 R の公式ヘルプでさらっと目を通しておくと良いトピックまとめ - ほくそ笑む

    『アート・オブ・Rプログラミング』の日語訳が出たので早速買いました。 細かい仕様の解説が多くちりばめられていて結構いい感じです。 プログラミング初心者向けではないですが、他の言語になじんでる人が R に入門したい場合には、他の入門書よりもこっちを読んだ方が手っ取り早いのではないかと思います。 例えば、下記のように、他言語との比較による解説が各所に見られます。 他のスクリプト言語の経験がある読者は、Python での None や Perl での undefined などの「存在しない」値を知っているかもしれません。実は、R にはこのような値が2つあります。NA と NULL です。 http://www.amazon.co.jp/gp/product/4873115795 さて、今日はこのの 1.7.4 節からの話題です。 統計言語 R には、公式ヘルプが付属しており、例えば平均値を計

    統計言語 R の公式ヘルプでさらっと目を通しておくと良いトピックまとめ - ほくそ笑む
  • 統計を学びたい人へ贈る、統計解析に使えるデータセットまとめ - ほくそ笑む

    はじめに 統計解析の手法を学ぶのに、教科書を読むのは素晴らしい学習方法です。 しかし、教科書で理論的なことを学んだだけでは、統計手法を使いこなせるようにはなりません。 統計解析手法を身につけるには、実際のデータについて手法を適用し、パラメータを変えるなどの試行錯誤を行い、結果を考察するというような経験を積むことが大切です。 それでは実際のデータをどうやって手に入れましょうか? 実験や調査をして実際のデータを得るのは大変でお金もかかります。 幸運なことに、世の中には適度なサイズの自由に使えるデータがたくさん存在します。 例えば、統計言語 R には、100以上ものデータセットがデフォルトで付属しています。 ただし、不幸なことに、それらのほとんどは英語で説明が書かれています。 英語は、いつかは乗り越えなければならない壁ですが、最初のうちはちょっと避けて通りたいところです。 というわけで、今日は、

    統計を学びたい人へ贈る、統計解析に使えるデータセットまとめ - ほくそ笑む
  • R で Excel っぽい色を出す - ほくそ笑む

    仕事をしていると思いもよらない要求がお客さんから出たりするものです。 先日、あるグラフをお客さんに提出したところ、「色がカラフルすぎる。Excel っぽい地味な色にしてほしい」という要求が出ました。 そういえば R が生成する色って原色系が多いのかなーと思ったり。 例えば rainbow() はこんな感じの色を出してくれます。 n <- 20 pie(rep(1, n), col=rainbow(n), clockwise=TRUE, border=NA, labels=NA, lty=0) 確かにカラフルです。 で、Excel で同じものを描くと 地味です。 お客さんも「絶対 Excel っぽくしてほしい」というわけではなかったのですが、面白そうだったので R で Excel っぽい色を出す関数を作ってみました。 excel.like.color <- function(n) { n <

    R で Excel っぽい色を出す - ほくそ笑む
  • 「子供に解けて大人に解けない問題」を統計的に無理やり解いてみた - ほくそ笑む

    今日は、R-bloggers に面白い記事が上がっていたので、それを紹介してみようと思います。 問題 「子供にはすぐに解けて、大人にはなかなか解けない不思議な問題」をご存知でしょうか? 最近ネットで割と話題になりました。 その問題は、次のようなものです。 8809 = 6 7111 = 0 2172 = 0 6666 = 4 1111 = 0 3213 = 0 7662 = 2 9312 = 1 0000 = 4 2222 = 0 3333 = 0 5555 = 0 8193 = 3 8096 = 5 7777 = 0 9999 = 4 7756 = 1 6855 = 3 9881 = 5 5531 = 0 2581 = ? https://twitter.com/#!/yappyJP/statuses/172086299099004928 なかなか面白い問題です。 答えはここでは書きませ

    「子供に解けて大人に解けない問題」を統計的に無理やり解いてみた - ほくそ笑む
  • 主成分分析が簡単にできるサイトを作った - ほくそ笑む

    あけましておめでとうございます。 年もよろしくお願いいたします。 主成分分析 さて、昨年の終わりごろから、私は仕事で主成分分析を行っています。 主成分分析というのは、多次元のデータを情報量をなるべく落とさずに低次元に要約する手法のことです。 主成分分析は統計言語 R で簡単にできます。 例として iris データで実行してみましょう。 data(iris) data <- iris[1:4] prcomp.obj <- prcomp(data, scale=TRUE) # 主成分分析 pc1 <- prcomp.obj$x[,1] # 第一主成分得点 pc2 <- prcomp.obj$x[,2] # 第二主成分得点 label <- as.factor(iris[,5]) # 分類ラベル percent <- summary(prcomp.obj)$importance[3,2] *

    主成分分析が簡単にできるサイトを作った - ほくそ笑む
  • SVM のチューニングのしかた(2) - ほくそ笑む

    さて、前回は交差検証の説明で終わってしまいましたが、今回はちゃんと SVM のチューニングの話をします。 チューニングの手順としては、 グリッドサーチで大雑把に検索する。 最適なパラメータがありそうなところを絞って再びグリッドサーチを行う。 という2段階のグリッドサーチを行います。 1段階目:グリッドサーチで大雑把に検索する SVM のチューニングは tune.svm() という関数を用いて行います。 チューニングのやり方は、単純にグリッドサーチを行っているだけです。 パラメータの値をいろいろ変えてみて、正答率の一番いい値をベストパラメータとして出力します。 プログラムは下記のようになります。 gammaRange = 10^(-5:5) costRange = 10^(-2:2) t <- tune.svm(Species ~ ., data = iris, gamma=gammaRan

    SVM のチューニングのしかた(2) - ほくそ笑む
  • 1