草薙の研究ログ

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

r

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

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

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

このブログへコメントがあったので,こちらで。 逆ガウス分布をデータに対して最尤法を使用してフィットする方法について。 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,…

負の二項分布に関する2つのパラメーター化の方法

負の二項分布(negative binomial distribution)は,(a)その母数を成功回数(ないしサイズ母数)rと,成功確率pとする場合(こっちに親しみ)と,(b)サイズ母数rと平均μとするときの二種類があるんだそうだ。パラメーター化の方法が違うってのは,ガン…

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

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

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

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

対数変換したあとの値の記述統計を報告?vs.対数変換する前の値の記述統計を報告?

外国語教育研究では強く歪んだ分布をもつ連続型確率変数を扱うときがある。 学習時間,ある変数上でのテスト成績,心理学的な実験における反応時間,読解時間などがそう。場合によっては,これを正規分布にしたがう確率変数にすることを目的に対数変換すると…

R連携アプリ開発関係メモ(1):Rscriptでbat実行するときに,コマンドプロンプトを表示しない簡単な方法はVBScript

美しいリレーの話。 まずはRのスクリプトファイル(.r)を用意する(a.rとする)。 それでこのスクリプトファイルをRscriptで実行するバッチファイル(b.bat)を用意する。 このバッチファイルを実行するVBScript(c.vbs)を用意する。 vbsは,コマンドプロ…

そのメタ分析なんだかな

そういう論文ってどれだけの数あるかわからないのだけど,こんなメタ分析があるって考える。 (潜在変数としての)英語の力と(同じく潜在変数としての)国語(母語?)の力の関係をメタ分析でもとめる,という話にしよう。基本的に,英語の力(の推定値)は…

2変量正規分布の片方の変数を平均でぶった切ってもう片方の変数の値の平均差を検討する?

これ,どうやってご説明差し上げたらいいか迷ってたけど,説明用のグラフ用意した。 当たり前だけど相関係数と密接な関係がある(なのであまり操作としてよくない) 相関が十分に高いとき,それぞれ分割した変数の方は当然正規性が満たされなくなる(←これが…

質的成果指標に関する後ろ向き研究:相対危険度とその信頼区間

ある質的な成果指標(ある試験の合格・不合格)がある。テストが終わったあとに,合格した人と不合格だった人に,どの教科書(A,B)を使っていたかそれぞれ聞く。すると以下のようなクロス集計が得られる。このとき,使用した教科書と合格・不合格の関係を…

層別データの可視化:plot関数が思ったより賢い件

何故か知らんかった。plot関数って思ったより賢い。(いや,plot関数が賢いのは昔から当たり前なんだけど)ひとつのグループ化変数とひとつの連続量を入れたデータフレームがあるとする。こんなふうにして作ろう。 group<-c(rep("a",25),rep("b",25)) score<…

こなした問題数,学習時間,オンライン教材へのログイン時間といったデータの分析

オンライン教材へのログイン時間といった学習履歴は,現在の外国語教育現場では容易に得られるようになってきていて,(主に探索的な目論見で)分析に組み込まれることが多くなってきている。しかし外国語教育研究ではこういったデータの分析の歴史は浅く,…

層別の記述統計

あるテストを実施したとき,クラスごとに合計得点をもとめたいとか,そういうことって外国語教育ではよくある(そういうことしかない気もする)。 男女とか,3クラスとかだったらね,記述統計をエクセルでそれぞれ手動でもとめてもいいかもだけど,20クラス…

オッズ比からテトラコリック相関係数への近似変換

テトラコリック相関係数でメタ分析したいときに,先行研究がオッズ比で報告してたりするからどうするんだって話があるそうな。もちろんクロス集計があればいいのだけど,それがないときはどうするか。オッズ比からテトラコリック相関係数の近似値を求める方…

t検定に取って代わるベイズ推定:BESTパッケージ

今更だけど,BESTっていうパッケージなんだって。Bayesian Estimation Supersedes the T-testということでBESTパッケージ。うむうむ。https://cran.r-project.org/web/packages/BEST/vignettes/BEST.pdf CRAN - Package BESTなるほどね。基本はまずJAGSでMCM…

Rの図の中の字をTImes New Romanにしたい?

…という矢の問い合わせ。基本図の中はサンセリフでいいと思うんだけど,わざわざこういう指定のジャーナルもあるんだそう。 なるほど。 windowsFonts(TNR = windowsFont("Times New Roman")) par(family="TNR") x<-data.frame("How about"=rnorm(100),"this"…

信号検出理論の弁別力と対数オッズ比とベイズ因子と

信号検出理論における被験者反応を4つに分けて(H, Miss, FA, CR)2×2表にしたときの対数オッズ比は,0.6倍すると信号検出理論における弁別力指標d'にまあまあ近似する。なので,大雑把にいえば互いに代用できなくもない。 #データを作る dat<-matrix(c(100,…

処理速度と反応時間はまったく違うものだってこと

背景 日本の外国語教育研究では,先達のたゆまぬ努力によって1990年代から認知心理学的な研究手法が欧米より徐々に輸入されはじめ,2000年代後半から広く一般化し,今に続く研究の流れを形成した。認知心理学といっても,特に外国語の語彙処理に関わる研究が…

MANOVAをしたときの効果量

なぜか一部の人はMANOVAを嫌うのだけど,MANOVAしたほうがいい場合っていっぱいあると思う。 で,ある統計の相談案件で効果量はどう報告したらいいのっていう話になった。「そういやあまり聞かない」…というのは国内の外国語教育研究で概説が見当たらないっ…

じわじわくる理屈

私たちの友達グループ ある友達のグループで,これまでの人生で付き合ってきたひとの数を集計してみたら,大体真ん中(50%点)ぐらいが12人だったという。世では4人くらいを「普通」だといっているんだけど,私たちの友達グループでは12人を「普通」と呼ぼう…

多変量上の群間の中心差に関する効果量としてのマハラノビス距離と情報量?

ある指導法Aの効果をみたいとする。 NEGD(群間計画)を組めたとする。 処遇後における処置群と統制群の中心傾向の差をもって効果と考えたい。 このとき,結果変数として2変数もっているとする。 文法テストと語彙テスト。 このとき,効果量としてもちいるべ…

【R】マハラノビス距離のもとめ方と判別

Rでマハラノビス距離をもとめるためには,mahalanobis関数を使う。 勉強用に書いてみた。マハラノビス距離自体は,やっぱり英語のwiki先生が詳しい。Mahalanobis distance - Wikipedia, the free encyclopedia #2変量のマハラノビス距離をもとめる #数値例の…

Rで逆正規分布の確率密度関数,累積分布関数,乱数発生

逆正規分布(逆ガウス分布,Inverse Gaussian Distribution)は,反応時間の分析で使ったりすることがあるらしい。歪んでいるので。2母数の連続型分布で,形状パラミタ(λ)と平均(μ)をもつ。 相変わらず英語のwiki先生は統計と数学に詳しい。Inverse Gaus…

Rで反応時間データの基礎的処理まとめ

これで外国語教育でやるような処理は大体できると思う。ご自由にどうぞ。 library(retimes) #ない場合はインストールすること library(MASS) library(ks) x<-rexgauss(1000,300,200,500) #数値例の生成 #基礎 x<-x[!is.na(x)] #欠損の除外(ここにはない) s…

Ex-Gaussian分布の累積分布関数:Rコード

前よくわからないから 積分でやったんだけど,調べたらwikipediaにあったから関数作ったった。wikipediaすげえな。でも700円のコーヒーを飲む層ではないんだ俺。 pexgauss<-function(x,mu,sigma,tau){ tau<-1/tau u<-tau*(x-mu) v<-tau*sigma phi1<-pnorm(u,…

検定力についてわかったようなわからないような人がもっとわかったというようなグラフ

Ex-Gaussian分布の累積分布確率

r

Ex-Gaussian分布の累積分布確率をもとめる方程式が分からないので(わたしが馬鹿だというのと調べるのがメンドイ),retimesパッケージの確率密度関数dexgaussで出したのをintegrate関数で数値積分して出してしまえ的な。 でもretimesは使ってない。このまま…

1/0の正誤データから信号検出理論:Rの自作関数

背景 手元に判断課題のデータがあって,信号検出理論の指標を出したいとする。大概の信号検出理論指標は計算が簡単なのでExcelでもできるのだけど,大量データだと結構面倒くさい。 信号検出理論では,反応を4種類に分ける。 Hit, Miss, CR, FA。 これを数え…

効果量(Cohen's d)と分布の重なり:RでCohen's dから共有面積への変換スクリプト

r

背景 効果量のCohen's dは2変数の分布の重なりの程度だとも解釈できる。 こういうこと。 くわしくは浦野先生(2013)など。 LET2013 workshop | ひとりごと ただし,これは(想定上の)母集団についての話。 さらにCohen's dは,プールされた標準偏差を使う…

【FAQ】2×2のクロス集計への検定,標準回帰係数

r faq

最近受けた統計の質問。 カイ二乗じゃなくてG検定をやれ? これはこの前行われたCELESの,私のワークショップのときに,ある先生からご質問頂いたのだけれども,ちょっと事例が個別すぎたので,その場ではお答えできなかったもの。こちらから連絡差し上げら…

Cliff's deltaや共通言語効果量(common language effect size)などを計算するRパッケージ:"orddom"

これはすごい便利。エンドユーザー向けでだれでも使えそう。 orddomというの。ordinal dominance statisticsの略かな。 共通言語効果量とか,Cliff's deltaとか一気に出してくれる。 対比較とかこれで結構いける的な。 Rogmann, J. J. (2013). Ordinal Domin…

外れ値を含むデータに対する効果量:正規化四分位区間と中央値を使ったほんのちょっとだけ頑健な方法

背景 こんなデータを作ります。対応なしの2群のデータ(x, y)です。 xは,平均50,標準偏差10の正規分布に従う乱数39個です。 yは,平均55,標準偏差10の正規分布に従う乱数39個です。 なので,理論的には,こんな感じになり, 効果量(標準化平均差)は0.5…

どう見ても違うものを同じという怖さ

どう見ても違う 直球でいこう。こういうこと。 てい! 効果量の値は同じ!でもどうみてもぜんぜん違う! 情報の集約あれこれ雑感 最近よく, みたいな表を見るようになった。*1 情報の集約として,別に悪いとは思わない。*2 集約の程度が大きい,ということ…

カーネル密度推定からその後:ksパッケージ

背景 正規分布を逸脱したデータの累積分布曲線を描きたい。 たとえば,こんなデータってことにしよう。 このデータは, c(rnorm(100.-5,1),rnorm(100,5,1))->dat こうやってつくろう。 Nが200もあれば,quantile関数で, で,こんな感じにできる。 でもこれ…

項目関連構造分析(item relational structure analysis)メモ

項目関連構造分析(item relational structure analysis)っていうのがあって,すごくアルゴリズムが簡単みたいなので,教育現場でも使えればいいとおもう。でも簡単に使えそうな道具がない。Excelでもできるのだけど… すぐ見れそうな関連論文は… CiNii 論文…

部分積率(partial moment)を使った教育的処遇の効果検証

背景:教育的処遇の効果をみるさまざまな方法 (某先生を真似して会話形式で) 教師:ちょっと工夫した指導をして,事前事後のデータとったった。 平均差を見る専門家:おお!10点平均点が伸びてる!これは効果的な指導法だ! 統計的仮説検定をする専門家:…

クロス集計をあえて散布図みたいに可視化する:Rの関数つき

背景 たいていの質問紙の項目に対する回答は,離散的な値を取る。 1, 2, 3, 4, 5みたいな。リッカート尺度みたいな場合ね。 ここである質問項目iの回答と質問項目jの回答をみたい。 5件とか7件のリッカート尺度だと,(ピアソンの)相関係数を出したりするこ…