草薙の研究ログ

英語教育関係。でも最近は統計(特にR)ネタが中心。

統計

Menzerath-Altmann法則と一般化ガンマ分布(Eroglu, 2013)

とても興味深いこと。Eroglu(2013)は,Menzerath-Altmann法則と一般化ガンマ分布の関係について説明している。 Eroglu, S. (2013). Menzerath-Altmann law for distinct word distribution analysis in a large text. Physica A, 392, 2775 – 2780 Menzera…

Menzerath-Altmann法則をRのnls関数で

Menzerath-Altmann法則(またはMenzerath法則; e.g., Altmann, 1980; 基本的アイデアはMenzerathが発見,Altmannが定式化)とは,ある言語学的単位の増加が,その単位の構成要素の減少に帰着すること。またはその逆。もっと一般的にいうと,Altmann(1980)…

GAMLSSとBAMLSSで分布をデータにフィット

GAMLSSとBAMLSS 新幹線に乗ってコンビニにいくようなものだけど,GAMLSSとそのベイズ的モデルであるBAMLSSを使って,観測のデータに対して分布をフィットさせる。 GAMLSSというのは,「位置,尺度,形状,それぞれの母数のための一般化加法モデル(Generaliz…

オンライン外国語学習における実測学習時間の格差:ジニ係数とローレンツ曲線

同じ学習教材を与えても,それを使用して勉強するひともいれば,勉強しないひともいる。格差,ということばが正しいかはわからないけど,たとえば大学生が,ある一定期間内において,大学が提供するオンライン外国語学習教材を使用して学習する時間は,ちょ…

JansonとOllssonのイオタ

JansonとOllssonのイオタは,評定変数が多変量で複数評定者間の信頼性ないし一致率を評価する係数。Rでは,irrパッケージのiota関数を使う。 たとえばルーブリックを使用した評定を二人が行い,観点が5つあるとか,そんなときに使用する。 #こんなデータに […

左に歪んだデータへのフィッティング

確率分布のフィッティングでは,右に歪んだデータを対象にすることが多いのだけど,たまに左に歪んだ分布が手に入ることもある(てか私は最近はじめて手にいれた)。いろいろあるんだろうけど,一般化極値分布でいいかな。えっと,こんなデータだとしよう。 …

最尤法を使った逆ガウス分布のフィッティング

このブログへコメントがあったので,こちらで。 逆ガウス分布をデータに対して最尤法を使用してフィットする方法について。 statmodパッケージに逆ガウス分布の関数があって,それをfitdistrplusパッケージで使う。 #使うパッケージ library(statmod) librar…

Principal Component Factor Analysis?

1日に2回この謎の用語を見てしまったので,Google Scholarで検索したら,1万件超えててワロタ。ま,google検索の件数もそんなに信用できるもんじゃないけど。 https://scholar.google.co.jp/scholar?q=%22principal+component+factor+analysis%22&btnG=&hl=j…

モデルってことばが如何に重要か

最近,モデルってことばが思ったよりもすげえ重要だなって思うようになった。自分の分野(外国語教育)だとあまり聞かない用語だから,避けてたけど,これむしろ積極的に使ったほうがいいな。 モデルってのはモデル化したいものそのものじゃない。別にこの世…

Rで混同行列から感度・特異度などの指標

例えば,何かの指標なりモデルを用いて, 二値的に何かの状態がある(陽性)かない(陰性)かを検査する方法を作るとする。 そのパフォーマンスは以下のような真の状態と検査結果の混同行列を見るとわかる。この場合の混同行列は, 真の状態が陽性 真の状態…

わーい!どんなときでも有意差を見つけられるフレンズなんだね!

「思ったように有意差が出なかったんですけどなにかこのデータから言えることはありませんか?」 「どんなデザインですか?」 「処置群・統制群,事前・事後,成果変数は1です」 「そうですね…まずは処置群を恣意的に何パターンかに分割してみましょう!そう…

モデルの中で何が捨象できるかを語らない科学

数理モデルというものは,その記述の仕方の形式性の割には,数理モデルということばに親しみを感じないほとんどのひとが思うより,本来結果主義的で効用主義的なものだ。 モデルは,もちろん現象それ自体ではないし,その現象を大幅に捨象していて,しかしそ…

Rで日付データの処理

自分用のメモ。 #日付クラスへ変換 d<-"2016-1-1" d2<-as.Date(d) class(d2) #日付データの足し引き(日付クラスだとこれができるようになるのが最高) d2-1 d2+1 d2-1000 d2+1000 #基準日から1日毎にログイン回数を累積計算 #datは時間とログイン回数のデー…

一般化パレート分布をデータに当てはめる

一般化パレート分布は所得の分布などに使われるそうだ。 外国語教育研究でもこういった分布になる変数を私はひとつだけ知っている(いわないwww)。Rにいろいろあると思うけど,ここではactuarパッケージとfitdistrplusパッケージを使う。 actuarパッケージ…

MCMCを使って指数正規合成分布(ex-Gaussian)の母数を推定

RのMCMCpackにはMCMCmetrop1Rっていう関数があって,これは任意(自作)の対数尤度の関数をいれてMCMCでサンプリングすることができる。なので,結構手軽にMCMCを使ってデータに好きな分布を当てはめることが可能。ここでは(まったくそんなことはしなくても…

非線形最小二乗法で学習コンテンツ消化曲線をモデル化

まあ結構いろんなことに汎用的に当てはまることだと思うのだけど,ソフトウェアの品質管理とかの分野では,ソフトウェア信頼度成長曲線という手法があるそうだ(古い友人に教えてもらった)。これは,ソフトウェア開発において,バグの発見数や残ったバグの…

混合正規指数合成分布モデル(?)を最尤法で…

聞いたこともないけど,要素数2の混合正規指数合成分布(ex-Gaussian)モデルというのを考えてみる。ま,2つの異なる認知プロセスが混合したときの反応時間の分布だとか,そんなそれっぽいことを考えてみる。そんなものは多分ない。ま,でもこの確率密度関数…

当てはめた分布と推定した母数から平均,分散,歪度,尖度をもとめる

なんかある論文で,分布が強く歪んでいることが理論的に明白だった変数に,ガンマ分布か対数正規分布かなにかを当てはめて,その推定母数と適合度指標のみを(きつい紙幅の関係もあって)報告したときに,「標本の記述統計を報告しないとはけしからん」とい…

混合ガンマ分布モデルをデータにフィットさせる

Rのmixtoolsパッケージでは,混合ガンマ分布モデルもデータへフィットさせることができる。 #λ= .25,.75,α - 4, 10,β= 1, .2が正解 set.seed(0) dat<-c(rgamma(100,4,1),rgamma(300,10,.2)) hist(dat,breaks=20, main="",col="lightblue") model<-gammamix…

単変量混合正規分布モデルをデータにフィットさせる

外国語教育研究では2つの山とか3つの山とかの分布になっているのを見ることがある。こういうときは,混合分布モデルをデータにフィットさせるといいかもだ。Rではmclustもいいけど,mixtoolsというパッケージがある。 #準備 library(mixtools) #数値例の作成…

任意の累積分布関数を仮定した一標本コルモゴロフ・スミルノフ検定

#正規分布の場合 set.seed(0) dat<-rnorm(100,0,1) ks.test(dat,"pnorm") #特定の平均と標準偏差をもつ正規分布 set.seed(0) dat<-rnorm(100,0,1) ks.test(dat,"pnorm",1,1) #ガンマ分布 set.seed(0) dat<-rgamma(100,2,3) ks.test(dat,"pgamma",2,3) #ワイ…

自分で用意した分布をデータへフィットさせる

fitdistrplusパッケージのfitdist関数は,dnorm, pnormのように,dとpの関数が定義されていればどんなものでも指定することができる。自作でもいいってこと。ま,でも殆どの場合,自分程度が思いつくような分布はすでに用意されているってのがR。たとえば,…

単変量の分布母数の推定からあれこれ:fitdistrplusパッケージが便利

ある確率分布を手持ちの単変量データに当てはめ,その母数を最尤推定するという方法があって,Rでは通常MASSパッケージのfitdistr関数を使うのがお手軽なんだけど,fitdistrplusという便利なパッケージが出ていてこれがとてもいいかも。ま,結局はoptimにか…

最尤推定した母数のもとでの確率密度曲線をヒストグラムに描き足す

えっと,リクエストがあったのでここに書く。(SPSSならそれっぽい曲線もつけてくれるのにRはそんなこともできないのか?といわれた)まずはこんなデータがあるとしよう。形状母数が3,尺度母数1のガンマ分布にしたがう300個。 set.seed(0) dat<-rgamma(300,…

野良観測変数?

なんていうんだろ,それが何を測るかは一切分かっていないけど,その変数の利活用を暗に強いられているような変数。 オンライン学習履歴データとかがまさにそうだ。オンライン教材のログイン時間とか。これは何か測定を目指す構成概念がこのデータに先んじて…

オンラインでできるPOS Tagger

なんか最近こういうのやたら多いね。POSってはpart of speech。品詞のこと。 ウェブブラウザでテキスト投げてやればPOSをタグして返してくれるっていうお手軽サービス。 1. Parts-of-speech.Info - POS tagging online 2. NLTK POS Tagging - API & Demo | T…

分散共分散行列を相関係数行列に変換するR関数

自分で関数書けばいいってのもごもっともだし,他にも色々あるんだけど,bayesmパッケージにnmatっていう関数がある。 vcovm<-matrix(c(3,2,2,3),2,2) cm<-nmat(vcovm) matrix(cm,2,2)

手法上の利点とノウハウの違い

手法上の利点,または手法的に優れている(methodologically sound)手法というのは,基本的に適用する対象と独立してその有用性が与えられるものだ。だから,「手法上の」(methodologically)という言葉をつける。 これは主に数理的な,または技術的な意味…

名古屋で討論型ワークショップやります!

12/17の名古屋,外国語教育メディア学会中部支部外国語教育基礎研究部会第4回年次例会で討論型ワークショップやります! このワークショップは,(私の得てしてくだらない話題提供のあと)基本的に参加者同士でグループを組んでもらい,想いの丈を共有し合う…

ベイズ因子をやりたいんだけどRは敷居が高いっていうときの無料統計ソフト:JASP

オランダのWagenmakers先生たちのチームがJASPっていう統計ソフトを開発している。(結構前から)無料で公開中。 JASP | A Fresh Way to Do Statistics https://jasp-stats.org/wp-content/uploads/2016/10/DISCOVER_JASP.pdf まだ開発途中感があるけど,す…