草薙の研究ログ

英語の先生をやってます。

r

全国英語教育学会紀要掲載論文が"effect"をタイトルに使う確率

この学会はほんとうに効果(effect)が好きだなあという印象 調べてもほらやっぱ効果ばっかじゃんね! この学会はほんとうに効果(effect)が好きだなあという印象 わたしは全国英語教育学会という学会の会員でして,この学会は会員が2,000人弱(たぶん…)で…

青い目の人形の現存率

青い目の人形 青い目の人形ってのは,1927年に日米友好のために,アメリカから日本に送られた人形のこと。当時の日米間は緊張状態にあった。日本人の移民がアメリカでの職を奪っている,という見方の下で,日系人排斥の機運が高まっていた。いわゆる黄禍論み…

マルチレベルのROC曲線

状況 信号検出モデルのおはなし ある信号の有無について多段階評定法(5段階)でデータを取る 横軸にFA(率),縦軸にH(率)を描くとこうなる(ROC曲線) このデータを100人について取るとする もちろん,この曲線にも個人差がある ところで,FA率,H率をz…

分散分析結果の可視化例

よく指導法の効果の検証っていうような目的でこんなグラフを見る。これ,カーネルとか使ってこんな感じでいいじゃない? 名前なんていうかわからんけど。 これパッケージにしたら需要あるんだろうか? 流行ったらいいな。 または,これでもいいな。 library(…

brmsパッケージでカーブフィッティング

計量言語学のMenzerath-Altmann法則をbrmsで。(a) s<-1:5 m<-c(3.1,2.53,2.29,2.12,2.09) dat <- data.frame(s, m) my.prior <- prior(normal(0,3), nlpar = a) + prior(normal(0,1), nlpar = b) + prior(normal(0,1), nlpar = c) fit <- brm(bf(m ~ (a*s^…

AtomからRを使うための設定(Ubuntu系OS)

お気に入りのエディタからなにがなんでも出たくないという病気。 ここ3年はAtom推しなので,今回はAtomからRを使用する環境を作る。環境は,Lubuntu 18.04 LTS。 でも別にこのOSがなにか特別なわけじゃない。これまでAtomからRを使うときは,Atomのパッケー…

RでABAB計画のグラフ

応用行動分析(ABA)とかで行われるABABデザイン(外国語教育研究では単一事例分析として知られる)の結果について可視化するグラフを描く必要がある。行動系の論文でよくみるこんなやつ。 えっと,ここではABAB計画(baseline - treatment - baseline - tre…

RでKendall距離,Hamming距離,Cayley距離,Ulam距離

r

順序間の距離を表す,(編集型の)上記の距離をRでもとめる。PerMallowsパッケージというのを使う。 library(PerMallows) x<-c(1,2,3,4,5,6,7,8,9,10) y<-c(2,1,3,4,6,5,7,9,8,10) distance(x,y,"Kendall") distance(x,y,"Hamming") distance(x,y,"Cayley") …

私の一日とチャップマン=コルモゴロフ方程式

授業がない日のわたし,たとえば出張のない土日とか,10時から22時まで学校にいるとして,大抵は以下のような状態を自由に遷移している。 研究関係のお仕事:論文の執筆,資料・論文・書籍を読む,データ分析,調査・実験の準備,やりたくない査読,共同研究…

Stanでカーブフィッティング:Menzerath-Altmann法則

もうしつこいのはわかっているけど,また,Menzerath-Altmann法則のはなし。この法則はよく知られた言語法則のひとつで,言語的構成要素の大きさは,その構成要素の大きさの関数だという観察で,具体的には,(a)という関数がよくフィットすることが知られ…

カーブフィッティング+ブートストラップ

また懲りずにMenzerath-Altmann法則の話。こんなデータがあって, Morpheme Length(Syllables) Syllable Length(Phonemes) 1 3.10 2 2.53 3 2.29 4 2.12 5 2.09 Gabriel Altmann (1980). "Prolegomena to Menzerath's law". Glottometrika. 2: 1–10. こ…

言語法則とベイズ的なカーブフィッティング

続きもので書いていたつもりだったのだけど,放置しすぎて前回からの更新間隔がえげつないことになってしまった。前回は,Menzerath-Altmann法則をRのnls関数で - 草薙の研究ログっていう話だった。えっと,「ある言語学的単位の平均長(y)は,その構成要素…

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…

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

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

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,…