StatsBeginner: 初学者の統計学習ノート

統計学およびR、Pythonでのプログラミングの勉強の過程をメモっていくノート。たまにMacの話題。

Rでパワーアナリシス(検出力・検定力分析)を行う

たとえば重回帰分析とかを行って、効果が「有意ではない」ということを積極的に主張に取り入れたいときは、検出力が十分であったかを確認しなければならない。というのも、わざと出来の悪いモデルを使ったり、サンプルサイズを少なくしたりすれば、有意でな…

Rで必要なオブジェクト以外をワークスペースから削除する時

単なるメモですが、 rm(list=subset(ls(), !(ls() %in% c('hoge', 'hage')))) rm(list=ls()[-which(ls() %in% c('hoge', 'hage'))]) 'hoge', 'hage'のところに、消したくないオブジェクト名を書いておく。 後者のほうが2文字短い。

Rでファイルをダウンロードするかどうか確認させる関数

ネット上にあるcsvファイルをダウンロードしてきて使う場合、read.table()にurlを与えて直接データフレームをつくってしまう場合もあれば、ファイルとしてダウンロードして置いておきたい場合もあります(実行のたびにダウンロードしたくない等の理由で)。 …

Rのsource()関数で呼び出すスクリプトに引数を渡すとき

学生に説明する必要が発生したためエントリ起こしておく。 コマンドライン引数みたいな感じで、source()で呼び出されるスクリプトに呼ぶ側のスクリプトから引数を渡すときは、以下のようにやればよい。 source1.Rからsource3.Rまでのスクリプトを準備してあ…

researchmapのcsv

researchmapのcsv取り込みにクセがありすぎる。 アクションがinsertなのに"invalid_delete_reason,,削除理由が無効です。"というエラーが出るのはバグ? ちなみに削除理由にmineとか設定すると通る。意味がわからん。 そもそも、csvなのにヘッダーの上に"pub…

Stanでよく忘れる、よく間違える書き方

文末の;の忘れ。 ファイルの最後は空の行に forループの範囲の1:NのところのNを、intじゃなくてrealで宣言してしまっている。 transformed parametersのブロックでforループを複数かくとコンパイルエラーになる理由がわからないときある。1つのループにまと…

相関係数の差の検定と、回帰係数の差の検定を、Rでやる

たまに、2つの相関係数が有意に異なるのかや、1つの重回帰モデル中の2つの回帰係数が有意に異なるかを示せると、主張が通りやすいという場面がある。 まぁ、あまり必要になることはないのだが、相関係数の差の検定や回帰係数の差の検定について、日本語で…

「不偏分散の平方根」は不偏標準偏差ではない件(メモ)

不偏分散の平方根を取っても不偏標準偏差にはならないという話があり、私は不真面目な研究者なのでそもそもそんなこと考えたこともなかったですが、知り合いが「数学的な導出はみれば分かるが、“平方根を取っては駄目な理由”が直観的に理解できなくて気持ち…

Rのループ中に進捗率を表示するプログレスバーを作る

Rのループで使えるプログレスバーは、いくつかのパッケージで提供されているみたいなのですが、自分で書くのも簡単なので、単純な関数でつくってみた。 進捗が知りたいのは時間のかかる処理をするときであり、時間がかかるなら無駄な計算は省きたいので、ル…

for、apply、ベクトル演算の処理速度の比較

ツイッターのライムラインで、forループをapplyに置き換えた場合の高速化の話が流れていて(こちら)、気になって検索したところ、applyよりむしろwithを使えと言っている人がいた。 r - apply() is slow - how to make it faster or what are my alternativ…

ggplot2で2軸グラフを描く時の軸スケーリングの作業

ggplot2で2軸のグラフを描くときは、先日のエントリでも書いたように、ggplot2自身は左軸(第1軸)と右軸(第2軸)を別々の情報として持つことはできないので、左軸と右軸の尺度の違いを自分で設定して変換しなければならない。 あとで使いまわすので、この…

折れ線グラフの端っこにラベルを付けるやつ(ggplot2)

最近になって遅ればせながらggplot2を頻繁に使うようになってきました。 で、↑こういうふうに、折れ線の端っこにラベルを置きたいと思いました。白黒の記事原稿で4本もの折れ線を重ねるのは見づらいのでそもそもやめたほうがいいですが、人生いろいろあるわ…

Rで棒グラフと折れ線グラフを重ねた2軸グラフを描く

さっき、Rで棒グラフと折れ線グラフを重ねたものを作ろうとして、けっこう手間取りました。最終的に描いたのは↓のようなものなのですが。 「2軸グラフの書き方」「種類の異なるグラフの重ね方」についていろいろ調べたところ、barplot()とplot()を組み合わせ…

Macでスクリーンショットの保存先をショートカットキーで振り分ける

ツイッターで尋ねられて、自分でも気になったので設定してみました。 Macでスクリーンショットを撮るときに、ショートカットキーを工夫して、保存先を振り分ける設定です。 Macのスクリーンショットは、じつはいろいろオプションがあって、ウィンドウ単位で…

Pythonでよく忘れる、よく間違える書き方

Pandasのデータフレームは、=でコピーしようとすると、コピーじゃなくて参照渡しになるので、コピーしたつもりのdfを処理すると元のdfも処理されてしまう。df2 = df1.copy()とするのを忘れないように。 Pandasで要素がNaNかどうかを判定させようとする時、要…

Rでジニ係数を算出

めちゃくちゃ簡単なしょうもない内容ですが、あとで個人的に使うので、ジニ係数を出す簡単な関数をメモしておきます。 ここでは例として、都道府県の人口データのジニ係数を出してみます。 データを小さい順に並べて、都道府県数の累積(これは単順番を表すi…

肺炎死者数の月別データで季節調整を試してみる(RからX-13ARIMA-SEATSを利用)

Rでの季節調整をやってみます。 季節調整は、arima関数のseasonal引数を指定したSARIMAモデルや、stl関数でできてそっちは簡単なのですが(参考1・参考2・参考3)、一般的にアメリカ商務省センサス局の「X-12-ARIMA」とか「X-13ARIMA-SEATS」とかが有名なの…

四半期GDP成長率の「年率換算」はどれぐらいブレるのか?

GDPは「四半期速報値」というのが作成されており、前の四半期との比(たとえば2019年7-9期と10-12月期の比)を4乗したものが、「年率換算」の成長率として報道などで使われている。最新の速報では、2019年10-12月期の実質GDPが、年率換算でマイナス7.1%と大…

Macのパーティションがおかしくなった場合の対処

Mac

Mac OS(最近はmacOSというらしいが)のディスクユーティリティでパーティションを変更しようとするとき、よくわからない現象に直面することがたまによくあります。 下記の記事のように、一部のボリュームが消してくても消せない(マイナスボタンがない)状…

対数尤度が正で、AICが負になるケース

初歩的な話ですが、今日学生から訊かれたので例を考えてみました。 AICがマイナスの値になってもいいんだっけ?みたいな話です。 AICがマイナスに 統計モデルの最尤推定をする場合、尤度は1より小さい場合が多く、したがって対数尤度が負である場合が多いと…

researchmapに投入するデータをExcelからCSVに変換するスクリプト(Pythonとbash)

以前、reserchmapにCSVでデータを投入するときの注意点を書きました。 researchmapにCSVで論文のデータを投入するときの注意点 - StatsBeginner: 初学者の統計学習ノート 私は論文の業績はあまり無いので(笑)管理が楽なのですが、一般の雑誌に書いてる文章…

Rでピボットテーブル

学生の分析を手伝っていたところ、突然、Rでピボットテーブルみたいな集計をしたくなりました。 度数分布表はtable関数でつくれますが、ピボットテーブルってどうやるのかな、と。 ググるといろいろやり方が出てきますが、とりあえず、{dplyr}のgroup_byと{t…

Rで動学的パネルデータ分析:plm、panelvarパッケージをつかったGMM推定

plmパッケージとpanelvarパッケージ 最近、パネルデータを扱うことが増えてきたのだが、パネルデータで動学的な(つまりt-1期とかのラグ項が出てくる)分析をやろうとすると最小二乗法ではなくGMM推定量を用いる必要がある。 備忘として、動学的パネルデータ…

Rでよく忘れる、よく間違える書き方(随時追記)

よく忘れることのメモです。 NAかどうかの判定にはx==NAとかではなくis.na(x)を使う 要素に含まれるかどうかの判定は、%in%かis.element()を使う。これはデータ全体の中から何かを抽出するときの条件を複数条件にしたい場面でも使えるときがある。(たとえば…

[メモ]Mac版のRでパッケージのインストールに失敗(X Codeのアプデが必要だった)

さっきハマったエラーを解決したので、備忘のためのメモです。 RStudioとRの両方で試したのですが、{panelvar}というパッケージをインストールしようとしたら、依存パッケージのコンパイルのエラーがでて進めなくなりました。 最初、Rの古いバージョンでやっ…

Macで画像ファイルをまとめてPDF化する(ただし名前順にソート)

Macで画像ファイルをまとめてPDFにしたいとき、従来はAutomatorを使ってワークフローを組んでいました。 ところが、いつからか知らないですが、OSに標準でそういう機能が付けられていたようです。 ついさっき、ある人から、とある論文のPDF入手を頼まれたの…

言語学への関心は衰退している?

とある雑誌の連載記事に、 言葉というものは曖昧かつ不安定で捉えにくい対象であることもあって、とりわけ現代思想ブームが終焉し実証的社会科学が隆盛を極めているここ三十年ほどの間は、言語理論への関心は総じて低調であったと言える。「言語論的転回」は…

メモ:Rのts型のインデックス(年・四半期・月情報)を文字列として取り出す

Rのts型(時系列型)のデータについているインデックス("1980 Q1"みたいな)を、文字列情報として取り出す方法が、ぱっとググって分からなかったのですが、とりあえず以下のようにしたらできました。 > library(vars) > data(Canada) > > t <- as.yearqtr(i…

なぜ「p < .05」で「統計的に有意」なのか?――5%基準の由来について

以前も書いたんですが、p値が0.05を下回るかどうかにとらわれる慣習を問題視する人が最近は増えてきていて、たしかにその理由はよく理解できる一方で、p値が過剰にバッシングされている気もします。しかしそんなことより、個人的には、なぜ統計的有意性の判…

Macでひらがな・カタカナの濁点・半濁点が分離してしまったのを元に戻すスクリプト

昨日のエントリで、テキストエディタの「CotEditor」のスクリプト機能の使い方を書きました。その機能をつかって、濁点・半濁点が分離してしまったテキストを元に戻すツールを作ります。 こういうやつをなんとかしたいわけです。 原因がよくわからないし、悩…