タグ

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

  • 実践 統計モデリング入門 【1. 概要・目次】 - ほくそ笑む

    【宣伝】2016/09/14 このページに来た方へ。あなたが求めているはこれです。 StanとRでベイズ統計モデリング (Wonderful R) 作者: 松浦健太郎,石田基広出版社/メーカー: 共立出版発売日: 2016/10/25メディア: 単行この商品を含むブログ (10件) を見るまずこれを予約してから下記を読むといいです。 【宣伝終】 はじめに 統計モデリングは今後ますます重要になってくる技術です。 現在、Web 上には統計モデリングに関する様々な優良記事があります。 それらの記事は、完成したモデルをスマートに提示しているものが多いようです。 しかし、実際の統計モデリングの現場は決してスマートなものではなく、様々な泥臭い試行錯誤を行いながら地道にモデルを構築していきます。 この一連の記事では、最終的なモデルの完成形をいきなり提示するのではなく、モデル構築の手順をスッテプバイス

    実践 統計モデリング入門 【1. 概要・目次】 - ほくそ笑む
    yuiseki
    yuiseki 2015/05/12
  • マイナーだけど最強の統計的検定 Brunner-Munzel 検定 - ほくそ笑む

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

    マイナーだけど最強の統計的検定 Brunner-Munzel 検定 - ほくそ笑む
    yuiseki
    yuiseki 2015/02/17
  • 欠測データの相関係数の推定法について発表しました - ほくそ笑む

    先日行われた BUGS/stan勉強会 #3 で発表させていただきました。 タイトルは「Stan で欠測データの相関係数を推定してみた」です。 欠測データに対して相関係数を求めるとき、普通のやり方では実際の値より小さい値になってしまいます。そこで、片側だけしか観測できていない不完全データを用いて推定精度を上げる方法を紹介しています。 スライドは下記にアップしています。 Stan で欠測データの相関係数を推定してみた from hoxo_m 最終的なコード全体はこちらに載せています。 Stan の勉強にあたっては、ごみ箱さん、beroberoさん、伊東さんにアドバイスを頂きました。ありがとうございます。 hoxo_mさんのバイアスの掛かったデータの相関係数の問題、よく使われる統計手法からの発展としてすごくいい例だし、片方しか観測されていないデータを使ってもあれほど改善するとは驚いた。#Tok

    欠測データの相関係数の推定法について発表しました - ほくそ笑む
    yuiseki
    yuiseki 2014/07/16
  • log 変換する?しない?AICでモデル比較するときの注意点 - ほくそ笑む

    データを分析にかける前に、出力変数を log 変換する、というのはよくあることだと思います。 次のデータを見て下さい。 このデータ、線形モデルに当てはめる前に log 変換したほうがよさそうだなーというのが見てとれます。 それもそのはず、このデータは次のように作っています。 N <- 100 x <- runif(N, min = 1, max = 2) y <- exp(x + rnorm(N, sd = 0.3)) data <- data.frame(x, y) それでは、log 変換しないバージョンと、するバージョンでモデルを作成して、AIC を比較してみましょう。 model <- lm(y ~ x, data) model.log <- lm(log(y) ~ x, data) aic <- AIC(model, model.log) print(aic) ## df AIC

    log 変換する?しない?AICでモデル比較するときの注意点 - ほくそ笑む
    yuiseki
    yuiseki 2013/12/24
  • 統計的消去で擬似相関を見抜こう! - ほくそ笑む

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

    統計的消去で擬似相関を見抜こう! - ほくそ笑む
    yuiseki
    yuiseki 2013/07/11
  • ブートストラップ法で信頼区間を求めるときの注意点 - ほくそ笑む

    1. はじめに ブートストラップ信頼区間について調べていたんですが、理論的な求め方は教科書などに載っているのですが、実践的な情報が少ないように思います。 今回、少し調査してみて、実際に適用する際に注意が必要だなと感じたことについて書いておきます。 2. ブートストラップ信頼区間 ブートストラップ法は、理論的に求めるのが難しい統計量を、経験分布からのシンプルなリサンプリングによって推定できるという手法です。 ブートストラップ法では、推定された統計量に対して、その信頼区間を求めることもできます。 このような信頼区間をブートストラップ信頼区間といいます。 ブートストラップ信頼区間を求める方法については色々議論があるようですが、主な手法は次の5つです。 正規分布近似法 ベーシック法 パーセンタイル法 BCa法(bias-corrected and accelerated percentile me

    ブートストラップ法で信頼区間を求めるときの注意点 - ほくそ笑む
    yuiseki
    yuiseki 2013/05/24
  • Shiny アプリをワンクリックで起動するやつ作った - ほくそ笑む

    先日、RStudio から Shiny がリリースされ、早くも話題になっています。 Shinyを使って、RだけでWebアプリケーション - ixixixixixixi Shinyで5分でできる株価チャートウェブアプリ - はやしのブログ Rev.3 shinyでシャイニイイイイイイイイイイイイイイイイイイイイイイイイイ - 盆栽日記 Shiny は、R だけで手軽に Web アプリケーションが作れるということで、早速試してみましたが、これはすごいです。 解析結果を埋め込んだインタラクティブな Web アプリケーションを非常に簡単に作成することができます。 実際どういうのができるのか知りたい人は、デモページがあるので触ってみるといいでしょう。 Spark and Glimmer Users – RStudio Spark and Glimmer Users – RStudio Spark a

    Shiny アプリをワンクリックで起動するやつ作った - ほくそ笑む
    yuiseki
    yuiseki 2012/11/23
  • 統計言語 R の公式ヘルプでさらっと目を通しておくと良いトピックまとめ - ほくそ笑む

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

    統計言語 R の公式ヘルプでさらっと目を通しておくと良いトピックまとめ - ほくそ笑む
    yuiseki
    yuiseki 2012/11/11
  • 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 っぽい色を出す - ほくそ笑む
    yuiseki
    yuiseki 2012/07/04
  • 三次元散布図をRで描くのに画期的な新機能がRGLパッケージに加わった - ほくそ笑む

    以前、三次元散布図をRで描いてみたという記事で紹介したRGLパッケージに画期的な新機能が加わったので紹介します。 (情報源:R: Interactive 3D WebGL plot of time-space cube with RGL | geolabs) RGLパッケージの良いところは、3次元プロットをマウスドラッグでグリグリ動かせるところなのですが、いざ、ファイル出力しようとすると、静止画か動画でしか保存できず、インタラクティブな3次元プロットをそのままファイルに保存することができないというのが欠点でした。 しかし今回、新機能として、WebGL で動く HTML ファイルとして保存できる機能が付加されたようです。 さっそく試してみましょう。 install.packages("rgl") library("rgl") data(trees) plot3d(trees) writeWe

    三次元散布図をRで描くのに画期的な新機能がRGLパッケージに加わった - ほくそ笑む
    yuiseki
    yuiseki 2012/04/26
  • 統計解析でよく使われる言葉「Qモード」「Rモード」とは何を指すのか - ほくそ笑む

    主成分分析のQモードとRモードの違いについて調べていたんですが、ネット上にほとんど情報を見つけられませんでした。 クラスター分析とか相関係数にもQモードとRモードがあるみたいで、統計では結構一般的に使われている言葉みたいなのですが、これだけ日語情報が少ないとなるとちょっと困りますね。 統計言語Rのメーリングリストにちょうど次のような質問が寄せられていたので、一部翻訳してみました。 こんにちは。 どなたか主成分分析のQモードとRモードの違いについて教えていただけないでしょうか。 それぞれ prcomp() と princomp() 関数に対応しているようなのですが。 by Lívio Cipriano こんにちは Livio、 prcomp のヘルプファイルにはこんなことが載ってるよ: この計算はデータ行列の特異値分解によって行われます。共分散行列の固有値は使用されません。これは一般的に、

    統計解析でよく使われる言葉「Qモード」「Rモード」とは何を指すのか - ほくそ笑む
    yuiseki
    yuiseki 2012/04/24
  • 「子供に解けて大人に解けない問題」を統計的に無理やり解いてみた - ほくそ笑む

    今日は、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 なかなか面白い問題です。 答えはここでは書きませ

    「子供に解けて大人に解けない問題」を統計的に無理やり解いてみた - ほくそ笑む
    yuiseki
    yuiseki 2012/04/16
  • Benjamini-Hochberg法の原理 - ほくそ笑む

    はじめに FDR(False Discovery Rate)は多重検定を行う際の有意水準指標の一つです。 FDR を制御する最も簡単な方法は BH法(Benjamini-Hochberg法) です。 詳しくは下記をご覧ください。 Bonferroni法、Holm法、False Discovery Rate | 大阪大学腎臓内科 さて、BH 法は FDR の有意水準を 0.05 のようにあらかじめ決めてから行うのですが、実用上これは不便です。 なので、q-value という p値のように扱うことのできる FDR の指標をそれぞれの帰無仮説に対して求めるのが普通です。 BH 法を用いた q-value の求め方は以下の通りです。 N個の帰無仮説を、p値の小さい順に並べます()。 を に対して求めます。 かつ に対して、 ならば とします。 q-value は、 に対応する帰無仮説を とすると、

    yuiseki
    yuiseki 2012/04/15
  • 主座標分析について簡単に紹介するよ! - ほくそ笑む

    今日は主座標分析(Principal Coordinate Analysis; PCoA)の紹介を簡単にしたいと思います。 主座標分析は古典的多次元尺度構成法(Classical Multidimensional Scaling; CMDS)とも呼ばれる統計解析手法です。 この解析手法を使用する主な目的は、高次元のデータを2次元や3次元に落として視覚化したいという時に使います。 以前紹介した主成分分析と同じような感じですね。*1 主成分分析との違いを簡単に言うと、主成分分析はユークリッド距離をなるべく保ちながら低次元に落とす方法ですが、主座標分析はユークリッド距離だけでなく、他の距離や類似度*2が使えるという点にあります。 例えば、ユークリッド距離の代わりに相関係数を使えば、相関の高いもの同士が近い配置になるようなプロットを作ることが可能です。 データを用意する さっそくやってみたいのです

    主座標分析について簡単に紹介するよ! - ほくそ笑む
    yuiseki
    yuiseki 2012/03/14
  • Twitter Bootstrap で編集不可なテキストエリアを使いたいとき - ほくそ笑む

    最近、Twitter Bootstrap という CSS フレームワークを使ってみたのですが、非常に便利です。 今作っているサイトに使うために色々といじくってみているのですが、とても簡単にかっこいい Web ページを作ることができます。 ところが、編集不可のテキストエリアを使おうとしたとき、問題が起こりました。 編集不可のテキストボックスは "uneditable-input" というクラスを使えばできたのですが、編集不可のテキストエリアとして "uneditable-textarea" が実装されていなかったのです。 そこで、編集不可のテキストエリアを使うために、色々と調べてみました。 その結果を「http://dl.dropbox.com/u/432512/20120307/UneditableTextarea.html」という記事にまとめたので公開します。 このページは Twitte

    Twitter Bootstrap で編集不可なテキストエリアを使いたいとき - ほくそ笑む
    yuiseki
    yuiseki 2012/03/08
  • 統計を学びたい人へ贈る、統計解析に使えるデータセットまとめ - ほくそ笑む

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

    統計を学びたい人へ贈る、統計解析に使えるデータセットまとめ - ほくそ笑む
  • 主成分分析が簡単にできるサイトを作った - ほくそ笑む

    あけましておめでとうございます。 年もよろしくお願いいたします。 主成分分析 さて、昨年の終わりごろから、私は仕事で主成分分析を行っています。 主成分分析というのは、多次元のデータを情報量をなるべく落とさずに低次元に要約する手法のことです。 主成分分析は統計言語 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] *

    主成分分析が簡単にできるサイトを作った - ほくそ笑む
  • 三次元散布図をRで描いてみた - ほくそ笑む

    この記事は R Advent Calendar 2011 の8日目の記事です。 はじめに さて、仕事で三次元散布図を描く必要がでてきました。 R は統計言語として有名ですが、グラフィクスに関しても得意分野です。 R なら三次元散布図も簡単に描けるだろうということで、少し調べてみました。 scatterplot3d どうやら R には scatterplot3d という三次元散布図を描くためのパッケージがあるようです。 試しにそれを使ってみましょう。 今回はデータとして trees データを使用します。 install.packages("scatterplot3d") library("scatterplot3d") data(trees) scatterplot3d(trees) 簡単に描けました。さすが R。 しかし、これだけでは物足りません。 三次元散布図は角度によって見え方が変わり

    三次元散布図をRで描いてみた - ほくそ笑む
    yuiseki
    yuiseki 2011/12/09
  • 簡単にヒストグラムを作成できるサイトを作った - ほくそ笑む

    私は仕事でマイクロアレイの統計解析をやっています。 お客様からデータを頂いて、それを統計解析にかけるわけですが、マイクロアレイのデータ解析で一番最初にやることというのは、ヒストグラムを作ることです。 データの分布っていうのは統計解析をやる上では一番最初に見ておきたいものですよね。 それで、ヒストグラムを作るわけですけど、お客様から頂くデータはほとんどの場合 Excel です。 ところが、Excel にはヒストグラムを作ってくれる機能が無いわけです。*1 そんなわけで、私の場合は統計ソフト R を使ってヒストグラムを描くわけですけど、これがもう超簡単です。 hist(data) って打つだけで、ヒストグラム作れちゃう。 階級数とか階級幅とか、なんかいい感じにしてくれる。 めんどくさい設定一切なし。 というわけで、R サイコー!ってなわけなんですが、一つだけ欠点があります。 Excel のデー

    簡単にヒストグラムを作成できるサイトを作った - ほくそ笑む
    yuiseki
    yuiseki 2011/11/11
  • JavaScript の即時関数パターンはどんなときに使うのか? - ほくそ笑む

    知ってて当然?初級者のためのJavaScriptで使う即時関数(function(){...})()の全て この記事長すぎ。。。 即時関数パターン JavaScript では、 (function() { // なんらかの処理 })(); と書くことで、なんらかの処理をその場で実行できます。これを即時関数パターンと呼ぶそうです。 どういうときに使うの? ブロックスコープを疑似的に作りたいときに使います。 JavaScript では、ブロックの外と中でスコープが同じです。 どういうことかというと、 var message = "hoge"; if(message === "hoge") { var message = "fuga"; alert(message); // fuga と表示される } alert(message); // fuga と表示される if(){} ブロックの中で v

    JavaScript の即時関数パターンはどんなときに使うのか? - ほくそ笑む
    yuiseki
    yuiseki 2011/08/27