R

研究者の皆様こんばんは

連休中日ですが,元気に研究していますか??
特別休暇3日入れて暦上は9連休だけれど火曜に学科会議入ってて,落ち込んだりもするけれど,私は元気です.
どうせ仕事あるからいいんです.

さて,「Rを使えるようになるための10のこと*1」なんてホッテントリメーカで作ったみたいなタイトルの記事を拝見したので,便乗ついでに自分語りをしようと思いました.


僕とRの出会いは5年前,当時の僕は博士後期課程の1年目で,「若手は算数が出来た方が良い」という師匠の親心で修士までの研究をうっちゃって,そのころ注目されていた某統計手法を自分の専門に適用する!みたいな,まあ,あの,とってもクリエイティブな研究をすることになりました.

その頃の僕のスペックは,使用可能言語・・・日本語,以上.という状況で,まあ今とそう変わりはないです.

工学部とは言っても,情報系じゃないし,(所属研究室が)実験系でもない僕とプログラミングとの接点は,
1)学部1年でポケコンに某教授ご謹製のBASIC数値演算プログラムを突っ込んで最適解を探す(最急降下法だったのかな?今にして思うと),
2)学部3年くらいの某准教授の講義でJavaScript使ってグラフを書いて,そのスクリプトスクリーンショットを提出する(スクリーンショットって何?と思ったことははっきり覚えている.受講に必要な前提知識の設定をちゃんとすれよ.そんなん情報処理(選択,めんどくさくて履修取りやめ×2回.けどマスターのときにT.A.やった)でも習ってねーぞと思った.シラバスに書いてないだろ,そんなん.シラバスなんて読んでないけど.必修科目なんだからさー),
3)卒研生の頃,D1の先輩が始めたJava勉強会(Eclipse使っていたのは覚えているけど,Classはおろか,データ構造までいかない(1次元配列も)うちに終わった)
4)D1進学から一月くらい,くだんの統計手法を使っている隣接分野(学科は同じ)の先生(他大学の教授)に教えを請いに伺い,その先生ご謹製のFortran(多分77)ソースをいただく.ノークレーム・ノーリターンどころかノーサンプルデータ・ノーリファレンスで必死に処理の流れを追うも,数学・数値解析・Fortran全てにおいて知識が足りず,暗中模索・五里霧中ってレベルじゃなかった.「沼」一言で言えばね.

ようやくイントロ書き終わったけど,疲れた.
2011/09/18 20時49分ここまで

Rで科研費獲得額と教員数の関係を見る

科研費獲得額と教員数の関係http://d.hatena.ne.jp/next49/20091103/p1
という記事を読んだ.

色々仕事がたまってきたので現実逃避がてらRでやっつけ仕事.
面倒なこと*1は省略.
グラフ*2を貼るのも面倒なので,興味のある人は実行*3してください.

スクリプト

df <- read.csv("C:/Desktop/kaken.csv")
str(df)  # 読み込んだデータの構造
summary(df)  # 読み込んだデータの要約
# 教員数や採択件数を整数に型変換とか面倒なのでほっとく

# 散布図(教員数と配分額)
# plotの変数名とか図のタイトルとか面倒だからほっとく
plot(df[,3], df[, 8])  # H.16国立大教員数と配分額
plot(df[,4], df[, 12])  # H.17国立大教員数と配分額
plot(df[,5], df[, 16])  # H.18国立大教員数と配分額
plot(df[,6], df[, 20])  # H.21私大教員数と配分額

# 無相関検定
cor.test(df[,3], df[, 8])  # H.16国立大教員数と配分額
cor.test(df[,4], df[, 12])  # H.17国立大教員数と配分額
cor.test(df[,5], df[, 16])  # H.18国立大教員数と配分額
cor.test(df[,6], df[, 20])  # H.21私大教員数と配分額

実行結果

> df <- read.csv("C:/Desktop/kaken.csv")
> str(df) # 読み込んだデータの構造
'data.frame': 96 obs. of 22 variables:
$ 大学名 : Factor w/ 96 levels "お茶の水女子大学",..: 2 40 4 6 12 7 3 55 52 53 ...
$ 種別 : Factor w/ 2 levels "国立","私立": 1 1 1 1 1 1 1 1 1 1 ...
$ 平成16年度教員数 : num 466 656 277 663 510 390 988 664 186 560 ...
$ 平成17年度教員数 : num 453 648 279 661 503 461 961 666 182 549 ...
$ 平成18年度教員数 : num 269 643 268 644 503 461 955 651 175 536 ...
$ 平成21年度教員数 : num NA NA NA NA NA NA NA NA NA NA ...
$ H16採択件数 : num 56 166 85 144 122 97 279 132 35 57 ...
$ H16配分額.千円. : num 75500 440000 202300 324200 251600 ...
$ H16間接経費.千円.: num 0 31500 3120 26220 9870 ...
$ H16合計.千円. : num 75500 471500 205420 350420 261470 ...
$ H17採択件数 : num 52 160 84 147 118 93 271 127 35 69 ...
$ H17配分額.千円. : num 74000 432700 204700 381400 256600 ...
$ H17間接経費.千円.: num 0 23790 3060 23040 8520 ...
$ H17合計.千円. : num 74000 456490 207760 404440 265120 ...
$ H18採択件数 : num 48 180 77 158 118 36 270 128 34 79 ...
$ H18配分額.千円. : num 55350 422480 218820 338270 256710 ...
$ H18間接経費.千円.: num 0 4680 2790 13500 7320 ...
$ H18合計.千円. : num 55350 427160 221610 351770 264030 ...
$ H21採択件数 : num 48 152 66 164 139 127 311 157 NA 68 ...
$ H21配分額.千円. : num 58070 283510 177240 391050 251960 ...
$ H21間接経費.千円.: num 17001 68853 34812 105015 67998 ...
$ H21合計.千円. : num 75071 352363 212052 496065 319958 ...
> summary(df) # 読み込んだデータの要約
大学名 種別 平成16年度教員数 平成17年度教員数
お茶の水女子大学: 1 国立:87 Min. : 66.0 Min. : 13.0
愛知教育大学 : 1 私立: 9 1st Qu.: 281.5 1st Qu.: 265.5
愛媛大学 : 1 Median : 605.0 Median : 589.0
旭川医科大学 : 1 Mean : 763.4 Mean : 762.2
一橋大学 : 1 3rd Qu.: 901.0 3rd Qu.: 911.5
茨城大学 : 1 Max. :3969.0 Max. :4182.0
(Other) :90 NA's : 9.0 NA's : 9.0
平成18年度教員数 平成21年度教員数 H16採択件数 H16配分額.千円.
Min. : 15.0 Min. : 469 Min. : 9.00 Min. : 20300
1st Qu.: 268.5 1st Qu.: 674 1st Qu.: 69.25 1st Qu.: 175975
Median : 583.0 Median :1091 Median : 150.50 Median : 346500
Mean : 760.5 Mean :1473 Mean : 305.36 Mean : 1203122
3rd Qu.: 931.0 3rd Qu.:2121 3rd Qu.: 311.00 3rd Qu.: 816425
Max. :4254.0 Max. :2767 Max. :2676.00 Max. :19788700
NA's : 9.0 NA's : 87 NA's : 10.00 NA's : 10
H16間接経費.千円. H16合計.千円. H17採択件数 H17配分額.千円.
Min. : 0 Min. : 22820 Min. : 13.0 Min. : 31100
1st Qu.: 3098 1st Qu.: 186560 1st Qu.: 76.5 1st Qu.: 163125
Median : 16950 Median : 362835 Median : 156.0 Median : 346786
Mean : 111935 Mean : 1315057 Mean : 322.1 Mean : 1221449
3rd Qu.: 49560 3rd Qu.: 873073 3rd Qu.: 309.8 3rd Qu.: 808775
Max. :2312970 Max. :22101670 Max. :2812.0 Max. :17941955
NA's : 10 NA's : 10 NA's : 10.0 NA's : 10
H17間接経費.千円. H17合計.千円. H18採択件数 H18配分額.千円.
Min. : 0 Min. : 33290 Min. : 14.00 Min. : 38460
1st Qu.: 3382 1st Qu.: 165683 1st Qu.: 73.75 1st Qu.: 120803
Median : 15270 Median : 361381 Median : 160.00 Median : 332750
Mean : 113777 Mean : 1335227 Mean : 335.40 Mean : 1227949
3rd Qu.: 51548 3rd Qu.: 875840 3rd Qu.: 313.25 3rd Qu.: 758925
Max. :2169600 Max. :20111555 Max. :2860.00 Max. :17765839
NA's : 10 NA's : 10 NA's : 10.00 NA's : 10
H18間接経費.千円. H18合計.千円. H21採択件数 H21配分額.千円.
Min. : 0 Min. : 38460 Min. : 13.0 Min. : 28020
1st Qu.: 4132 1st Qu.: 132465 1st Qu.: 80.0 1st Qu.: 158000
Median : 12135 Median : 343175 Median : 158.0 Median : 324040
Mean : 113437 Mean : 1341387 Mean : 328.9 Mean : 1135181
3rd Qu.: 40980 3rd Qu.: 775853 3rd Qu.: 311.0 3rd Qu.: 786216
Max. :2203680 Max. :19969519 Max. :2896.0 Max. :17601349
NA's : 10 NA's : 10 NA's : 1.0 NA's : 1
H21間接経費.千円. H21合計.千円.
Min. : 8406 Min. : 36426
1st Qu.: 41745 1st Qu.: 202685
Median : 83622 Median : 411172
Mean : 263326 Mean : 1398507
3rd Qu.: 191363 3rd Qu.: 984000
Max. :3723135 Max. :21324483
NA's : 1 NA's : 1
> # 教員数や採択件数を整数に型変換とか面倒なのでほっとく
>
> # 散布図(教員数と配分額)
> # plotの変数名とか面倒だからほっとく
> plot(df[,3], df[, 8]) # H.16国立大教員数と配分額
> plot(df[,4], df[, 12]) # H.17国立大教員数と配分額
> plot(df[,5], df[, 16]) # H.18国立大教員数と配分額
> plot(df[,6], df[, 20]) # H.21私大教員数と配分額
>
> # 無相関検定
> cor.test(df[,3], df[, 8]) # H.16国立大教員数と配分額

Pearson's product-moment correlation

data: df[, 3] and df[, 8]
t = 16.4594, df = 84, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8121455 0.9159965
sample estimates:
cor
0.873683

> cor.test(df[,4], df[, 12]) # H.17国立大教員数と配分額

Pearson's product-moment correlation

data: df[, 4] and df[, 12]
t = 18.3889, df = 84, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.8429725 0.9304357
sample estimates:
cor
0.8949968

> cor.test(df[,5], df[, 16]) # H.18国立大教員数と配分額

Pearson's product-moment correlation

data: df[, 5] and df[, 16]
t = 5.5497, df = 84, p-value = 3.264e-07
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
0.3438181 0.6576629
sample estimates:
cor
0.5179617

> cor.test(df[,6], df[, 20]) # H.21私大教員数と配分額

Pearson's product-moment correlation

data: df[, 6] and df[, 20]
t = 1.7839, df = 7, p-value = 0.1176
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
-0.1671315 0.8919919
sample estimates:
cor
0.5590414

結果の読み方
p-valueが0.05以下なら,有意水準0.05で2変数間に有意な相関がある.
データから計算される(標本)相関係数はsample estimatesの下の数字

ということで,やっつけ結果では

相関あり 国立大学(H.16),国立大学(H.17)
相関なし 国立大学(H.18),私立大学(H.21)

となりました.

22:23追記 正規化もしてない...誰かがscale関数で正規化してくれると思う.

*1:気になる人は青木先生のサイトで勉強してください.http://aoki2.si.gunma-u.ac.jp/lecture/index.html

*2:Rで素敵グラフが作れます.http://bm2.genes.nig.ac.jp/RGM2/index.php

*3:本家サイトはこちら.http://www.r-project.org/

LaTeXで使うEPS画像を作るときのメモ

Rで作成したグラフ類は特に問題ないのだけれど,PPTやVisioで作成した
図をIllustratorに貼り付けてEPS保存すると,たまにDvioutbmp
作成できない図がある.
理由はよく分からない(調べる時間がない)ので,とりあえずの解決方法を
メモしておく.

方法は簡単で,VisioなりPPTなりをDistillerでPDF化→Illustratorで編集し,
EPSで保存するだけ.

バッチファイルでまとめて実行

一つ一つgsviewから実行したり,コマンドプロンプトでファイル名を打ち込む
のはしんどいので,
バッチファイルを作成する.
ファイル名 eps2emf.bat で内容は以下の通り
>>
for %%i in (%1) do "C:\Ghostgum\pstoedit\pstoedit.exe" -f emf %%i %%i.emf<<

2011/01/19修正

for %%i in (*.eps) do "C:\Ghostgum\pstoedit\pstoedit.exe" -f emf %%i %%i.emf

これをEPS画像が入っているフォルダに入れて,
コマンドプロンプトでそのフォルダに移動し,

eps2emf *.eps

を実行すればOK.ただし,「*.eps」の「*」はワイルドカード

英語は大丈夫だけれど,日本語がパス化される...
まあ,とりあえずはいいや.

EPSをEMFに変換する

LaTeX用に作成したEPS形式の画像をEMF形式に変換する方法を色々調べた.
pstoeditを使うのが一般的らしい.

前提
あべのり氏のインストーラTeXをインストールしている.
基本的に全てデフォルト設定.
ただし,gsviewのインストール先は以下
C:\Ghostgum\gsview

pstoeditをインストールする.
http://www.helga-glunz.homepage.t-online.de/pstoedit/
Windowsバイナリで良いと思う.
インストール先は
http://www.geocities.jp/ne_o_t/GMT-USE/sonota/pstoedit.htm
を参考にして(gsviewからも使いたかったので),
C:\Ghostgum\gsview\pstoedit