タグ別アーカイブ: 統計

LME/GLMMで変量効果の相関を外すときのアレコレ

はじめに

線形混合モデル(LME)・一般化線形混合モデル(GLMM)で,変量効果をデザイン上で最も複雑なものにする最大モデルを作って,それでだめなら切片と傾きの間の相関パラメータを除いたモデルにトライする,という提案(Bates et al., 2015)をやろうとするとき,相関を除くのは”||”(double-bar syntax)なんですが,単に”|”を”||”に変えるだけじゃうまくいかないのどうすんだろうなと思っていたら解決策が見つかったぽいというお話です。

ちなみに,この方法はdata-drivenで探索的な側面があり,best practiceというわけではありません。

問題とは

具体的なコードとかは参考のところにも挙げたReduction of Complexity of Linear Mixed Models with Double-Bar Syntaxを見てください。

要するに,

m1 <- lmer (res ~ factorA + factorB + (1+factorA | ID), data =dat)

みたいになってるとして,factorAが因子型だとするじゃないですか。そのときに,「相関を外そう」ということで

m2 <- lmer (res ~ factorA + factorB + (1+factorA || ID), data =dat)

としてもうまくいかないよ,というお話です。これ,私もなんかうまくいかないなと思っていたんですが,解決策わからないので放置してました。「うまくいかない」というのはどういうことかというと,ただ単に”|”を”||”で置き換えるだけだと,切片とfactorAの第一水準(どういうコーディングしたかにもよりますけど)との相関パラメータは排除されるけれども,第一水準と第二水準の相関パラメータは残っちゃいますってことなんですね。でも,本当は全部の相関パラメータをなくしたいわけですね。

解決策

単純で,相関ありでfitさせたモデルの入った変数から,model.matrix()関数を使って変数名を直に取ってくる,ということです。m1という変数に相関ありのモデルが入ってるとすると,

model.matrix(m1)

とやってみます。そうすると,モデルの中に入ってる変数の列がガーッと出てきます。その中で,自分が使いたい列名をモデル式にいれる,ということですね。例えば,factorAが事前,事後,遅延テストという3つの水準からなっているとすると,

pre_post <- model.matrix(m1)[,2] #列番号は適当です
pre_del <- model.matrix(m1)[,3] #列番号は適当です

みたいな感じで一旦変数に代入した上で,

m2 <- lmer (res ~ factorA + factorB + (1+ pre_post + pre_del || ID), data =dat)

のようにさきほど代入した変数を使うと,”||”の指定によって相関パラメータがすべて除外されたモデルが作れるよ,ということのようです。

おわりに

詳しくは下記の参考記事を御覧ください。lme4長いこと使ってますが,知らないことまだまだありますね…。

なにをゆう たむらゆう。

おしまい。

参考記事

The Correlation Parameter in the Random Effects of Mixed Effects Models

Reduction of Complexity of Linear Mixed Models with Double-Bar Syntax

[宣伝] 言語テスト学会(JLTA)第26回全国研究大会でワークショップをやります

はじめに

言語テスト学会の第26回(2023年度)全国研究大会(9/9-10 @ 東北大学)で下記のタイトルでワークショップをやります(私のWSは10日午前です)。

Rを用いた一般化線形混合モデル(GLMM)の分析手法を身につける:言語研究分野の事例をもとに

過去の資料について

資料を準備している中で,私自身が最初にLME関係でウェブに上げた資料がslideshareにあり,それが有料版でないとダウンロードできないことに気づきました。そこで,その資料をそのままspeakerdeckにもアップロードしました。

2014年の資料なのでもう9年前になり,かなり古いですが,全く知らない人にとってはわかりやすいのかなと思います。

その後,2016年には下記のテクニカルレポートを書きました。

田村祐(2016)「外国語教育研究における二値データの分析-ロジスティック回帰を例に-」『外国語教育メディア学会中部支部外国語教育基礎研究部会2015年度報告論集』29–82. [リンク]

Rでロジスティック回帰をやる方法についてコードとともに解説したものです。このレポートをベースにしたワークショップも2019年に行いました。

田村祐(2019) 「統計ワークショップ」JACET英語語彙・英語辞書・リーディング研究会合同研究会. 早稲田大学. (2019年3月9日)[資料]

そして,2021年にはこれまでに書いたり話したりしたものよりももう少し違う視点からの講演も行いました。

今回の内容

今回のワークショップは,2019年にやったロジスティック回帰がメインですが,もう少し「泥臭く」,実際に出版された次の論文のデータを使って,下処理のところからモデリングのところまでをやる予定です。

Terai, M., Fukuta, J., & Tamura, Y. (2023). Learnability of L2 collocations and L1 influence on L2 collocational representations of Japanese learners of English. International Review of Applied Linguistics in Language Teachinghttps://doi.org/10.1515/iral-2022-0234 

この論文のデータはOSFで公開されているものですので,どなたでもアクセスできます。

Terai, M., Fukuta, J., & Tamura, Y. (2023, June 7). Learnability of L2 Collocations and L1 Influence on L2 Collocational Representations of Japanese Learners of English. https://doi.org/10.17605/OSF.IO/ZQE56

この研究の分析ではカテゴリカル変数は使っていないのですが,カテゴリカル変数も扱いたいなと思ったので,データは Terai et al. (2023)ですが,論文中に行っている分析とは異なる分析をする予定です。

当日使用する資料は下記のページにまとめています(当日ギリギリまで投影資料は微修正すると思います)。

https://github.com/tam07pb915/JLTA_2023_WS

投影資料を直接ウェブでご覧になりたい方は,下記のURLで投影資料をご覧いただけます。

https://tam07pb915.github.io/JLTA_2023_WS/

一応前半は理論編,後半は実践編となっていて,Rのコードをアウトプットに文章の解説を入れています。ごちゃごちゃして見にくいかもしれませんがご容赦ください。

今回のWSは3時間ですが,たぶんそれだけでは消化不良になると思うので,私が過去に公開している他の資料と合わせて読んでいただくと良いのではと思います。

おわりに

統計関係の話は専門家ではないのですが定期的にお声がけいただき,そのたびに勉強し(なおし)ているような気がします。

仙台までお越しになれないという方も,学会ウェブサイトにて動画が後日公開されるようですので,そちらをご覧いただければと思います。また動画が公開されましたらこのブログ記事にも追記します。

なにをゆう たむらゆう。

おしまい。

追記(2023年9月13日)

動画が公開されたようです。前後半に分かれています。

基礎研論集2015の論文に修正を加えました

むかしむかし,D2のときに,下記のテクニカルレポートを出しました。

田村祐(2016)「外国語教育研究における二値データの分析-ロジスティック回帰を例に-」『外国語教育メディア学会中部支部外国語教育基礎研究部会2015年度報告論集』29–82.

外国語教育研究って,二値データを扱うことが結構多いのにそれを全部割合だったりに変換して線形モデル使ってるけど,ロジスティック回帰したほうがよくないですか?という話を,Rのコードとサンプルデータとともに分析の流れを紹介したものです。

当時はまだまだコードとデータを共有するというのが一般的ではなく,researchmapの「資料公開」という場所にデータとコードを置いて,そのリンクをbit.lyをかませて論文中の附録としてつけて,読者が実際にコードを走らせながら分析を学べるようにしていました。とはいっても,私は統計の専門家ではないので,当時自分が学んだことをまとめたかったことと,分析の相談を受けた際に「これ読めばできます」と言って済ませたかったのでした。

最近,知り合いから,リンクが死んでるんだけど,どっかに移した?みたいな連絡を受けて,そんなはずはないけどなと思って確かめてみると,確かに論文中のリンクからはアクセスできなくなってしまいました。おそらくですが,researchmapの仕様変更でURLが変わってしまったためかと思われます。それはちょっとまずいなと思い,コードとデータをOSFに移行し,そちらのリンクを論文中に貼り付けたものを訂正版として,編集委員長にお願いして訂正版のPDFを公開してもらいました(bit.lyのリンク修正は有料でないとできなかったので断念。またOSFのほうが利便性高そうなので)。一応もとのPDFにもアクセス可能です。編集委員長様,迅速な対応ありがとうございました。

7年も前のコードで(D2が7年前という衝撃),当時学びたてだったdplyrなんかは今と書き方が異なる部分も多いので,おそらく今の環境では動かなくなってしまっているコードも結構あるのではと思いますが,それも全部書き直すだけの余裕はちょっとなかったので,それはしていません。ただ,読み直していたら表番号の参照がずれているのに気づき,それは直した上で後ろに正誤表をつけました。

何年ぶりかにファイルを開いたら,Word上での見た目がなぜか公開されているPDFファイルの見た目と異なり,ページの設定は同じはずなのに行送りが微妙にずれていたりして若干もとの論文とページ数が異なる箇所がありますが,内容は変わっていません。researchmapを見ると,コードは300件以上,論文中のサンプルスタディ1は600件以上のダウンロードがあり(この差はなんで?),LET中部のサイト上にある論文PDF自体も400件近くダウンロードされています。

おそらくですが,附録のリンクが機能せず,「なんやねん!しばくぞボケ!」ってなった方も100人くらいはいらっしゃるのではないかと思います。申し訳ありません。データとコードは私のresearchmapの「資料公開」にあります。また,OSFは以下のURLです(余談ですが,researchmapはURLに日本語が含まれているのでそれまじでやめてほしい)。

https://doi.org/10.17605/OSF.IO/2FS9B

別に引用はされないですけれども(そもそもこの論文が引用されていても通知も来ないしわからないと思います),今でも閲覧しようと思う人(まあ知り合いなんですが)がいるというのは,あのとき頑張ってよかったなぁとなんとなく思います。時間があったからできたことではあるのですけれど。

最近はRT(not retweet but reaction time)使う分析しかしていないので,ロジスティック回帰はやっていませんが(…とまで書いて,共著でロジスティック回帰使っている研究が先日リジェクトされたことを思い出したんですが),この論文のRコードのアップデートはなかなか難しそうなので,ロジスティック回帰やってる論文が出たらそのときはおそらくRのコードとデータも当然公開すると思いますので,そちらでご勘弁ください。

余談

LET中部支部は新しいウェブサイト(https://letchubu.org/)が動いているので,いずれ今の基礎研論集のページのURLも変わったりするのかなと思いつつ,これ全部移行するの業務委託とかじゃなく誰かがやるのだとしたら100万くらいもらっていいのではと思ったり(LET関西支部もウェブサイト再構築検討中ですが委託です)。

なにをゆう たむらゆう。

おしまい。

11/6に連続公開講座「データサイエンス時代の言語教育」(2)で講演します

2021年11月6日土曜日に,名古屋大学大学院人文学研究科英語教育分野主催の連続公開講座『データサイエンス時代の英語教育』(2)で『一般化線形混合モデルの実践 — 気をつけたい三つのポイント』というタイトルの講演をします。

名古屋大学大学院人文学研究科は私が所属していた研究科ではありませんが,大学院の再編があり私がお世話になった先生方が所属している研究科であり,私の後輩にあたる院生も人文学研究科に所属しています。そういう縁もあってお話をいただきました。私が統計の話をするというのはかなりハードルが高い(統計の専門家ではないですし知識と技術に自信があるわけでも正直ない)と思ったのですが,こういう機会をいただくことでまた自分の知識を更新し,さらにレベルアップする機会にもなると思ったので,お引き受けすることにしました。

フライヤーに要旨も載っていますが,私が名古屋大学大学院国際開発研究科博士後期課程に進学した2014年にNagoya.Rというイベントで『一般化線形混合モデル入門の入門』というタイトルで発表をしました。

ちょうど2012年に下記のレビュー論文が出ていて,それをもとにRでどうやってやるかというのをただただ紹介したみたいな感じでした。

Cunnings, I. (2012). An overview of mixed-effects statistical models for second language researchers. Second Language Research, 28(3), 369–382. https://doi.org/10.1177/0267658312443651

一般化線形混合モデルという発表タイトルでしたが,実際は一般化ではなく線形混合モデルのやり方で,私はその後の院生生活で,反応時間を扱う研究ではガンマ分布や逆正規分布,容認性判断のような二値データを扱うデータでは二項分布を使った一般化線形混合モデルを扱うようになっていきました。

7年前はそこまでウェブ上でも特に日本語では資料が多くなかったこともあり,分野を問わず上記のスライドシェアの資料は結構閲覧されていて,D2で学振の申請書を書いたときには「Googleで一般化線形混合モデルというキーワードで検索すると上に来るのは私の資料です」みたいなことを書いたこともありました(笑)

2016年にはおもにロジスティック回帰に焦点をあてたテクニカルレポートを書きました。

田村祐(2016)「外国語教育研究における二値データの分析-ロジスティック回帰を例に-」『外国語教育メディア学会中部支部外国語教育基礎研究部会2015年度報告論集』29–82. [リンク]

そして,このテクニカルレポートで書いた内容をもとにして2019年には統計のワークショップ講師をしたこともありました。

https://github.com/tam07pb915/JACET-SIG_GLMM-Workshop

そういった流れのなかで,一般化線形混合モデルのレビュー論文のようなものもいくつか新しく出版されているので,そうしたものをまとめた内容にしようと思っています。今回はワークショップではなく「講演」なので,ハンズオンで実際に分析ができるようになるということを目指すわけではなく,(1) 分析の方法,(2) 分析結果の報告,(3) 再現性の確保,という3つの観点から一般化線形混合モデルという分析の手法について話すつもりです。(3)の再現性については,昨今の再現可能性という問題を意識してのものであり,特にこの分析手法だけに当てはまるものではありません。ただ,自分が特に強い関心を持っているのであえて今回の話に盛り込むことにしました。特に,国内の学会紀要などはこういったデータ・マテリアルの公開・共有に関してガイドラインの設定がされていません。このことは今後の研究の発展を大きく阻害すると思いますので,そういったメッセージも入っています(資料はまだアウトライン程度しかできていませんが)。

資料ができたらこの記事の最後に資料へのリンクを追記する予定です。

参加申込は下記のURLから可能で,申込みの締め切りというのは特に設けられていないということです。

https://forms.gle/Ez4GmQC2JpS4j2R49

興味のある方はぜひご参加ください。よろしくお願いします。

なにをゆう たむらゆう。

おしまい。


2021.11.07 追記

当日の資料です。

[R] mutateとacrossでデータの下処理を少しだけエレガントに

まえおき

私はdplyrは5年前くらいから使っていて,自分が扱うようなデータについて自分がやりたいことを(その表現方法のエレガントさは別として)表現することはできていました。ただ,近年dplyrはアップデートを重ねていました。昔覚えたやり方でやろうとしても,その関数は使えませんとか,その表記方法は違いますとか言われることが増えました。分析の下処理でやりたいことは基本的に研究が変わらないので同じです。よって,過去に自分が書いたスクリプトのコピペをすることが多いわけです。それができなくなっていたと。

特に,最近の更新でacross()という関数が導入されたことが変更として大きいなと思います。まだまだこのacross()に関する記事も少なかったので,自分が使うにあたって覚えたことをメモ代わりに書いておきます。ここでは,mutate関数と一緒に使うケースです。つまり,ある特定の列について,ある処理を施して,その処理を施した列をデータフレームに追加するという作業です。単純に列に対して処理を施すだけというのは結構記事があったんですが,列を追加することについては全部列挙するみたいな方法しか見つかりませんでした。そこでacross関数の出番というわけですね。

やりたいこと

例えば,今やってる研究のデータでは,データフレームの中に頻度のデータが入っています。これをログ変換したいとします。すると,これまでは以下のように書いていました。

log(dat$ColFreq)->dat$ColFreq_log #コロケーション頻度
log(dat$AdjFreq)->dat$AdjFreq_log #コロケーション内の形容詞の頻度
log(dat$NounFreq)->dat$NounFreq_log #コロケーション内の名詞の頻度
log(dat$MIScore)->dat$MIScore_log #Mutual Information Score

別にコピペ&書き換えみたいなことをしながらやればいいし,これでだめだってことはないんですけど,複数の列について

  1. 同じ関数を適用
  2. 列を追加する

という同じ動作をしているわけなので,これは一気にできたほうが応用可能性があがります。私は手作業でやるの無理みたいな列数のデータを扱うことはないんですが,もし仮にそういうデータを扱う場合には何十行も使うのは好ましくないし無駄な作業だといえます。そこで列に対して処理を施して追加するという機能があるmutate関数と,それを複数列に適用する際に便利なacross関数を組み合わせます。

やりかた

ちなみに,なんだかんだでdplyrのパッケージのPDFが一番わかりやすかったです(pp. 3-6のacross関数のセクションとpp. 43-46のmutate関数のセクション)。across関数の引数は,列(.cols),関数(.fns),追加する列の名前(.names)という3つの引数があります。よって,今回のケースで言えば列のところで頻度情報が入ってる列を選択し,関数はlogを選べばOKです。ただ,.namesがないと情報を上書きしてしまいます。.namesのところは手書きで全部列名指定してやらなかんのかと思いましたが,そんなことはありません。”{.col}”を使えば,もとの列名を使えます。これにあとは自分で好きなタグのようなものをつけてあげればいいですね。”{.fn}”というのも使えて,これは使った関数名が入ります。

ということで,以下のようにすれば頻度情報にログ変換して列追加という作業ができます。

dat%>%
  mutate(across(c(ColFreq, AdjFreq, NounFreq, MIScore),log,.names = "{.col}_log"))->dat

.namesの部分は”{.col}_log”としていますが,”{.col}_{.fn}”でも同じです。dat$ColFreq_log, dat$AdjFreq_log,dat$NounFreq_log,dat$MIScore_logという4つの列が追加されます。ちなみに,列指定の部分は列の数値(e.g., 1, 2)でも可能です。頻度の情報が5~8列目にあるなら,次のように書くこともできます。ある特定の文字列が含まれる列を選ぶcontains()関数starts_with()関数とかも使えるはずです(こういうのは調べれば結構例があります)。

dat%>%
  mutate(across(5:8,log,.names = "{.col}_log"))->dat

ちょっと応用

さて,mutate関数とacross関数でたいぶすっきりしたコードを書くことができました。そこでふと,私がもう一ついつも下処理で複数列に適用する作業を思い出しました。それは,変数の標準化です。いつもなら次のようにしてました。

dat$z.oqpt <-scale(dat$oqpt)[,1] #Oxford Placement Testの点数の中心化
dat$z.rating <-scale(dat$rating)[,1] #評定値の中心化

これも別に2行だけなので大したことないんですが,やってることは先ほどのログ変換と同じですので,これもmutate関数を使って書き直してみましょう。次のようになります。

dat%>%
  mutate(across(c(oqpt,rating),scale,.names = "z.{.col}"))->dat

これでうまくいっているようにも見えますが,実はscale関数って出力された結果がベクトルではありません(データ型を調べるとmatrix型なのがわかります)。よって,大抵の場合は分析に問題はありませんが,あとで(私の場合だと分析結果の図示とか)ベクトル形式が求められる関数に渡した際に問題が発生することがよくあります。データフレームをただ眺めるだけではそのことはわからないので,次のように工夫してあげる必要があります。

dat%>%
  mutate(across(c(oqpt,rating),~scale(.x)[,1],.names = "z.{.col}"))->dat

さきほどと関数部分の書き方が変わっているのがわかると思います。このように”~”をつける書記法はpurrr-styleと呼ばれるそうですが,これは一般的には関数内の引数を指定する場合によく用いられます。例えば,~mean(.x, na.rm=T) のように使います。”na.rm=T”は欠損値は外して関数を適用するという設定のようなものです。今回は引数の設定ではなく,~scale(.x)[,1]としています。”[,1]”とすることで,行列の1つ目の要素(つまりこれは標準化された数値のベクトル)だけを出力してくれます。ちなみに,この方法で.namesに{.fn}をつかって次のようにすると,出力される列名はoqpt_1, rating_1のようになりました(理由は不明)。

dat%>%
  mutate(across(c(oqpt,rating),~scale(.x)[,1],.names = "{.col}_{.fn}"))->dat

おわりに

というわけで,改良されているんだろうけれども前のやり方に慣れてるこっちからしたらアップデートたびにコードを書き換えるのまじで面倒…って思っていたのですが,調べてみるとやっぱり便利でしたというお話でした。

またこういう系のことで新しく覚えたことがあれば記事に書こうと思います。

なにをゆう たむらゆう。

おしまい。

3/9に東京で統計のワークショップをやります

直前の宣伝になってしまいましたが,きたる2019年3月9日(土)に,JACET英語語彙・英語辞書・リーディング研究会合同研究会にて代打で統計のワークショップ講師を担当することになりました。下記が場所と日時です。

日時:2018年3月9日(土)12:00-17:00(時間は予定)
場所:早稲田大学 11号館 4階 会議室
参加費:500円(予約不要)

下記のリンク先から詳しいプログラムも見れます。

https://sites.google.com/site/jacetlex/

Rを使う予定ですが,Rの操作等についてやっている時間はなさそうなので,基本的にはRを自力で扱うことはできる人が対象になるかと思います。GLMとかGLMMをやってみるというような内容で,基本的には下記のテクニカルレポートで書いたものがベースになります。

田村祐(2016)「外国語教育研究における二値データの分析-ロジスティック回帰を例に-」『外国語教育メディア学会中部支部外国語教育基礎研究部会2015年度報告論集』 29–82.

統計に詳しくない私が講師ですので,末端ユーザーかつ初心者によるワークショップだと思っておいてもらって間違いありません。

当日に使用する資料,Rコードなどは下記のGit Hubにアップロード予定です。

https://github.com/tam07pb915/JACET-SIG_GLMM-Workshop

よろしくお願いします。

なにをゆう たむらゆう。

おしまい。

[R] sjPlotパッケージのバージョンアップ

Rで回帰モデルの図示をするときに私が使うパッケージは主に2つあって,1つはeffectsパッケージ,もう一つはsjPlotパッケージです。前者については,以前NagoyRで発表したことがあります。

effectsパッケージを用いた一般化線形モデルの可視化

後者は,lm, glm, lmer, glmerなどの関数で作った回帰モデルの結果が入ったオブジェクトを渡すと,その結果をggplot2に渡して可視化してくれます(その他にもいろんな可視化が可能ですが,私が使うのは主に回帰モデルの可視化です)。昔(数年前)までは,sjp.lm,sjp.glm,sjp.lmer,sjp.glmerなど,もとの回帰モデルに合わせて図示する際の関数を選ぶ仕様になっていました。そして,交互作用図を描きたいときは,sjp.int関数を使うというような。それが,最新版のsjPlotパッケージでは,これらの関数がなくなりすべてplot_modelという関数に統一されているようです(下記のサイトによると2017年10月にこの変更があったようです)。使用例は以下のサイトが参考になります。

„One function to rule them all“ – visualization of regression models in #rstats w/ #sjPlot

交互作用図は,type引数でintにするか,またはtypeをpredにして,termsで交互作用を指定するようです。

plot_model(fit, type=”int”)

or

plot_model(fit, type =”pred”, terms =c (“test”, “group”))

みたいな感じです。これについては,下記のページが参考になります。

 

Plotting Interaction Effects of Regression Models

より詳細な引数の説明などは以下のページに書いてあります(RDocumentationのページ)。

plot_model function | R Documentation

D院生のときに書いたスクリプトではGLMMの結果の可視化にsjp.glmerとかsjp.intを使っていたので,それらが動かなくなっていました。調べたらこういう仕様の変更があったと。一つの関数で,引数の組み合わせで色々な図が描けるというのは便利でいいですね。ただ,テーブル形式(HTML)で回帰モデルの結果を出力するsjt.lm系の関数は,lm, glmなどと組み合わせて,sjt.lm, sjt.glm, sjt.glmer, sjt.lmerなどのままのようです。

それから,最近lme4のモデル式の書き方でstanを使ったベイズ推定ができるbrmsというパッケージを知った(遅い)のですが,plot_model()はbrmsパッケージのモデルにも対応しているようです。まだ試してはいないので,いつかまたブログに書こうかなと思います。

では。

なにをゆう たむらゆう。

おしまい。

回帰やろう?

Studies in Second Language Acquisition(SSLA)に,ANOVAじゃなくて回帰やろうぜ?っていう論文が出ていた。著者はL2の効果量の大中小基準作ったったぜ論文で有名なPlonsky and Oswaldだ。

Plonsky, L., & Oswald, F. L. (2016). Multiple regression as a flexible alternative to ANOVA in L2 research. Studies in Second Language Acquisition. Advance Online Publication. doi:10.1017/S0272263116000231

連続データなのにカテゴリカルに無理矢理分けっちゃっちゃーだめよんという指摘は私も半年前くらいにしているのです(実は)↓

田村祐(2016)「外国語教育研究における二値データの分析—ロジスティック回帰を例に—」『外国語教育メディア学会中部支部外国語教育基礎研究部会2015年度報告論集』29–82. [リンク]

私の論文は重回帰やろうよというよりはデータの特性に合わせて一般化線形(混合)モデルを使いましょうよというような提案だったので,SSLAの論文とは若干論点は違うんですけどね。でもまぁ今さら「重回帰やらないと!」とかいう論文がSSLAという一応prestigiousなジャーナルに載っちゃうのっておいおい大丈夫かいなという気がしてしまう。

そんな金曜日の夜。

なにをゆう たむらゆう

おしまい。

LMM?

Language Teaching ResearchでTaskの特集号が出ていました(裏話によると後づけで採択された論文を集めた特集号らしい)。そこで,とある論文を見たら,”linear mixed model analysis (LMM)”が使われたと書いてありました。

Focus on form through task repetition in TBLT

いわゆるLMEのことかな?と思いつつ読んでいると,固定効果とランダム効果をいれたモデルでうんぬんと書いてあるのでやっぱりそうかと。general linear modelというのは一般線形モデルなので普通の回帰分析や分散分析と同じだけれど,ランダム効果をいれたものは(general) linear mixed-effects modelと呼ばれる(ただし普通GLMMはgeneralized linear mixed-effects model)。つまりmixed effectsとつくものは変量効果をいれたもの。ちなみにgeneralized modelというのは確率分布が正規分布以外のもの。

結果のところを読んでいると,なんかF値とか報告されています。3つの2次交互作用と1つの3次交互作用がモデルに入っていると書いてあるのに交互作用項がどうなったのかとかの報告が一切ありません。そしてランダム効果の推定値も報告されていません。分析に用いたソフトウェア(RなりSPSSなりSASなり)の報告もありません。

??????????????????????????????????????

え?ていうかこれただ分散分析やっただけじゃないのか?

ちなみに,「GLM (general linear model)で分析しました」みたいなことが書いてある論文も以前みたことがあります。それって結局ただの分散分析ですよねみたいな。普通GLMはgeneralized linear modelの略です(APA第6版のp.119にもそう書いてある)。別に分散分析やったなら分散分析やったでいいからそう報告してほしいですね。なんか変にかっこつけてるのかなんなのか知らないですけど素人騙しでmixed-model使ったとかそういうの本当にやめてほしいです。ていうか査読でチェックされなかったんかいなこれっていう…

あまりLTRをdisると同じ号に載ってる先輩の論文にまで飛び火するのでこの辺にしておきましょう(※彼の論文は何も悪くありません)。

 

なにをゆう たむらゆう。

おしまい。