R

フリーの統計解析ソフト。普通にこの手のソフトを買うと10万円とかとられるので懐にやさしい(stata価格, EViews価格)。かなり高機能。

ダウンロード

以下のCRAN(The Comprehensive R Archive Network)ミラーのうち、お好きなところで(提供をやめてしまったところが多い)。

インストール・使い方

以下を参照。「R-x.x.x-win.exe」のような名前のファイル(Windowsの場合)をダウンロードして実行するだけ。

まず、デスクトップ用のアイコンを右クリック-プロパティで起動オプションを設定しておこう。「リンク先」の最後に「 --no-save」を追加すると、最後の保存確認が省略される。「作業フォルダー」はデータやスクリプトを置く場所になるので、適当に設定しておこう。

次に、メニューの 編集-GUIプリファレンス からFONTをMS Gothicに変更してSave...を押すと、Rconsoleというファイルが保存される。これをテキストエディターで編集して

MDIsize = 800*600+100+50

のような行を追加する。これで起動時のウィンドウサイズ・位置を調整できる(「800*600」がサイズ、「+100+50」がウィンドウの左上の位置)。

追加パッケージのダウンロード先(CRANミラー)の設定はC:\Program Files\R\R-x.x.x\etc(例)にある「Rprofile.site」に

local({r <- getOption("repos")
 r["CRAN"] <- "https://cran.ism.ac.jp/"
 options(repos=r)})

と追記しておく(統計数理研究所にアクセスする場合)。

また、RコマンダーというGUI環境が用意されているので、使いたい場合は

install.packages("Rcmdr")
library(Rcmdr)

のように入力(インストールは初めてのときのみ)するとRコマンダーが起動する。最初の起動には分析に必要なパッケージを沢山ダウンロード&インストールするので、多少時間がかかる。Rコマンダーについては

を参照。

オンライン・ドキュメント(PDF)

他にもぐぐるといっぱい出てくる。CRANには他にもマニュアル等が

あたりに置いてある。英語が多いが、日本語・中国語などのもあり。本については

を参照。

データの操作

データの読み込み

「data.csv」というcsvファイルを「dataframe」という名前で読み込む。

dataframe <- read.csv("data.csv", stringsAsFactors = FALSE)

データの書き出し

data.csvという名前で保存する場合、以下のようにする。

write.table(dataframe, "data.csv", sep=",", na="", quote = T, col.names = T, row.names = F, append = F)

データの抽出

column列が「hoge」となっている行を抽出。

dataframe2 <- subset(dataframe, column == "hoge")

データフレームの指定

  • 「with」という関数を使うと、関数中で使うデータフレーム名を1回書くだけで済む。
    with(dataframe, ・・・)
  • 回帰ではdataオプションをつけられる。
    kaiki.kekka  <- lm(y ~ x,  data = dataframe)
  • attach(dataframe)とdetach(dataframe)の間ではデータフレームが固定される。

カテゴリカルデータ

アンケートデータでは数値自体の意味がないことが多い。

n <- ncol(origdata)
idx <- 1:n
factordata <- lapply(origdata[idx], as.factor)

参照

欠損値の処理

参照

空白の処理

「gsub」を使う。

参照

プログラミング

演算子

多重ループ

「expand.grid」や「outer」を使うといいらしい。

分散分析

Wilcoxson検定(Mann-Whitney検定)

標準のwilcox.testは近似計算になるらしいので、

install.packages("exactRankTests")
library(exactRankTests)
wilcox.exact(A群,B群)

のようにすると正確な値が出る。
これも古くなったらしく、代わりに

install.packages("coin")
library(coin)
wilcox_test(c(A群,y) ~ factor(c(rep("A群",length(A群)),rep("B群",length(B群)))), distribution = "exact")

とするらしい。

カイ二乗検定

dataframeのvar1とvar2でカイ二乗検定したい場合、まず「xtabs」で分割表(クロス表)に集計する。分割表をMtrxとすると、以下のようになる(「addmargins」で合計欄を付加して表示させている)。

Mtrx <- xtabs(~var1 + var2, data = dataframe)
addmargins(Mtrx)

カイ二乗検定は「chisq.test」で分割表(行列形式)を指定してやる(使用するのは合計のない方)。

chisq.test(Mtrx)

参照

計量経済

分析毎に必要なパッケージ類が

でまとめられているので、これをインストールすれば楽。計量経済学のためには

を入れる。入れ方は

install.packages("ctv")
library(ctv)
install.views("Econometrics")

でおけ。

Robustな標準誤差

以下のように書く。

kaiki <- lm(y ~ x1 + x2 + x3, data = hogedata)
coeftest(kaiki, vcov=vcovHC(kaiki, type = "HC1"))

オプションのデフォルトはHC3。HC1にすると「回帰では」Stataと同じ結果を得る(Stataではregでvce(robust)オプション)。

順序Logit

summary(kaiki)だとt値しか出力してくれないので、screenregで有意かどうかを*で出している。

library(MASS)
kaiki <- polr(y ~ x1 + x2 + x3, data = hogedata, method = "logistic")
library(texreg)
screenreg(kaiki)

パネルデータ分析

plmを使う。モデルはwithin, random, ht, between, pooling, fdを指定できる。ランダム効果モデルではswar(標準), amemiya, walhus, nerlove, kinlaの5つを指定できる。

library(plm)
outcome <- plm(y ~ x1 + x2, data = hoge, model = "random", random.method = "amemiya")

のように書く。

欠損値について

分析結果の出力

ログの保存

ファイル - ファイルの保存 で保存できる。

わかりやすく書くために

ChromebookでR

LinuxでRをインストールすればいいが、RStudioまで入れれば見た目もWindowsで動かすのと変わりない。ただし、パッケージのインストールには(コンパイル作業があるようで)Windowsより時間がかかる可能性がある。時間があるときにパッケージのインストールだけやっておくのがよさそう。

  • ChromebookのLinuxにRStudio Desktopをインストールしてみた 20240208 https://www.youtube.com/watch?v=MazQiLXnJQ8 これの通りでできる。ただし、追加パッケージで入らないのがある(tidyverseとか)ので、
  • R package の devtools をubuntuにインストールした時に発生したエラー ~ had non-zero exit status を解決する。 https://qiita.com/Yuuki-Osada/items/1f50c3e865ba4ef0d37f を参考に。

    実は、丁寧に解決策の案を提示してくれています。
    解決策の案に従って、足りていないソフトウェアをインストールしましょう。
    これを何度か繰り返せば問題なくインストールできました。
    以下、devtoolsのインストールエラーを解決するためにインストールした時のコマンドです。

    sudo apt install libssl-dev libfontconfig1-dev libcurl4-openssl-dev libxml2-dev
    sudo apt install libharfbuzz-dev libfribidi-dev
    sudo apt install libfreetype6-dev libpng-dev libtiff5-dev libjpeg-dev

その他

適当なリンク。


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2024-10-31 (木) 17:32:29 (649d)