WEB開発に役立つ!統計解析ツールRをLinuxマシンに導入

Rとは何か

unyou_1day

Rはオープンソースの統計解析の実行環境です。OSに拘らず、様々な環境で実行できます。統計解析業務に当たっている人では知らない人はいないほどメジャーなツールです。WEBマーケティングに必要な重回帰分析はもちろんのこと、以下のような解析環境を提供しています。

  • ベクトル、配列、行列、データフレーム(テーブルに相当)、リスト、時系列、などの動的型付けデータ型。(後出「データ型」参照)
  • 高階関数(データとして関数を操作する関数)を、ベクトル処理として記述可能。
  • 『モデル式』の導入により、複雑な統計モデル記述と曲線あてはめ等のモデルフィット指示を、簡潔で統一的に表現可能。
  • 無限大・非数・欠損値定数。集合計算や複素数計算の実装。
  • d(確率密度) p(累積確率) q(分位点) r(乱数生成) の4機能と分布名を組合せる命名規則を持つ、多次元確率分布機能関数。 RjpWiki/Rにおける確率分布
  • sample関数による数値・複素数・文字列などの標本抽出(サンプリング)記述。
  • オブジェクト指向。関数・代入式もオブジェクト。(後出「オブジェクト指向」参照)
  • 単純な構文、データ型宣言不要、名前空間。(後出「仕様」参照)
  • 文字列・式の相互変換やパターンマッチング検索・編集などの文字列操作。
  • 対話的処理だけでなくバッチ処理も可能。
  • 解析手法の比較検証には欠かせない「定番の検証用データ集」
  • 画像処理・音声合成・GIS・テキストマイニングなどCRAN(後述)によって日々強化される拡張機能。

RをLinuxにインストールするには

RはWindows版もあるのですが、私のメインマシンはLinuxなので、Linuxマシンにインストールする方法を解説します。

RのRPMはCRAN(The Comprehensive R Archive Network)から入手できます。CentOSの場合、el5までしか提供されていないようですが、CentOS6.3でも正常動作しました。openSUSEは12.2までパッケージが用意されています。

openSUSEはワンクリックインストールも出来ますが、CUIでのインストール方法も解説します。

$ sudo zypper addrepo -f \ 
http://download.opensuse.org/repositories/devel\:languages\:R\:patched/openSUSE_$VERSION/ \
R-patche

$ sudo zypper install R-patched R-patched-devel

これでopenSUSEにRをインストールできます。

Rの実行

Rの実行は単純です。コンソールでRと打てば、入力モードになります。

まず単純な計算を行わせてみましょう。

> 1+1
[1] 2
> x &<- 1
> y &<- 2
> x+Y
[1] 3
> result &<- (x+y)*10
> result
[1] 30
> result*10
[1] 300
> sum(1,2,3,4,5,6,7,8,9,10)
[1] 55
> sum(1:10)
[1] 55

基本的な統計解析

Rを使って基本的な統計解析を行う例を示します。

> x <- c(7.4, 7.2, 6.5, 7.0, 7.6, 6.8, 7.8, 7.3, 7.7, 7.5, 7.1, 7.7, 7.1, 6.8, 7.3, 6.9, 6.7, 7.1, 7.2, 7.6, 7.6, 7.5, 7.8, 7.5, 7.2, 7.4, 7.0, 7.1, 7.3, 7.6)
> y <-c(0.056, 0.059, 0.046, 0.052, 0.059,
0.056, 0.063, 0.058, 0.063, 0.047,
0.044, 0.048, 0.050, 0.045, 0.061,
0.053, 0.046, 0.050, 0.055, 0.055, 
0.058, 0.052, 0.059, 0.056, 0.043, 
0.047, 0.046, 0.057, 0.054, 0.063)
> sum(x) #総和
[1] 218.3
> mean(x) #平均
[1] 7.276667
> median(x) #中央値
[1] 7.3
> var(x) #不偏分散
[1] 0.1149540
> sd(x) #標準偏差
[1] 0.3390487
> max(x) #最大値
[1] 7.8
> min(x) #最小値
[1] 6.5
> range(x)
[1] 6.5 7.8 #範囲(最小値と最大値)>/pre<
>pre<< var(x) #xの不偏分散
[1] 0.1149540
> var(y) #yの不偏分散
[1] 3.720575e-05
> var(x,y) #xとyの不偏共分散
[1] 0.001143333
> cor(x,y) #相関係数
[1] 0.552848

このように簡単に相関係数を導き出すことができます(参考:Rで統計)。

RのWEB開発・WEBマーケティングへの応用

今やWEBシステム開発やWEBマーケティングにおいては、統計学は必須の知識になろうとしています。重回帰分析くらいまではエクセルでもできますが(↓)、

kaiki1

より高度な統計分析の演算を行うならば、Rはエンジニアにとってもマーケッターにとっても必須のツールになってくると思われます。