スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

線形単回帰分析

今日は線形単回帰分析。

線形回帰分析:説明変数(x)を用いて目的変数(y)を説明する統計モデル(y=f(x))をデータから求める分析手法。
例えば、「車のスピード(x)」と「ブレーキをかけた後に止まるまでの距離(y)」の関係を数式(y=f(x))で表すことが出来る。この関係を数式で表すことにより、時速50kmで車が走ってきたときに約何mくらいで止まるのかという予測が出来るようになる。

■処理ステップ


線形回帰分析は大まかに下記の5ステップで実施。
1.説明変数と目的変数の相関関係を確認
2.回帰式の算出
3.回帰式の精度を確認
4.回帰係数の検定
5.信頼区間と予測区間の算出

で、線形回帰分析の概念自体は特に難しい話ではないので、実際にRに標準で用意されているデータセットcarsを使って線形回帰分析に挑戦。

1.説明変数と目的変数の相関関係を確認


無相関のデータに対して線形回帰をやっても意味がないので、「車のスピード(x)」と「ブレーキをかけた後に止まるまでの距離(y)」相関係数を算出。
cor(cars$speed, cars$dist)


▼cor(cars$speed, cars$dist)の結果
0.8068949

0.8なので、「車のスピード(x)」と「ブレーキをかけた後に止まるまでの距離(y)」の間には強い正の相関があることを確認。

2.回帰式の算出


cars.lm <- lm(dist~speed, data=cars)
summary(cars.lm)

lm()は線形回帰分析の関数で「dist~speed」は目的変数distを説明変数speedで説明することを表しています。「data = cars」は分析対象のデータセットはcarsであることを表しています。

▼summary(cars.lm)の結果
Call:
lm(formula = dist ~ speed, data = cars)

Residuals:
Min 1Q Median 3Q Max
-29.069 -9.525 -2.272 9.215 43.201

Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) -17.5791 6.7584 -2.601 0.0123 *
speed 3.9324 0.4155 9.464 1.49e-12 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 15.38 on 48 degrees of freedom
Multiple R-squared: 0.6511, Adjusted R-squared: 0.6438
F-statistic: 89.57 on 1 and 48 DF, p-value: 1.49e-12

「Residuals」は残差の最小値、第1四分位数、中央値、第3四分位数、最大値がそれぞれ表示されています。ちなみに、残差は回帰直線とデータとの誤差のこと。
t値とp値は係数が回帰モデルにやくだっているかどうかに関する統計量で、p値が大きいほどその係数が役にたっていないことを表している。いろいろと出てきているが一番知りたいのは作成した予測モデルがどれだけフィットしているか。で、それを表すのが決定係数、調整済み決定係数。これが1に近づくほどフィットしているとこを表します。
この回帰直線はy=3.9324x-17.5791のモデルで表現できるようです。

値だけでみててもよくわからんので、とりあえず散布図を作成。

plot(cars) # 散布図の作成
abline(cars.lm, lwd=2) # 回帰直線の作成

▼散布図と回帰直線
Rplot01.png
それらしい回帰直線が引かれている。

3.回帰式の精度を確認


残差を視覚的に分析するために、回帰診断図を表示する。
par(mfrow=c(2,2)) # 2x2のマトリックスで回帰診断図を表示
plot(cars.lm) # 回帰診断図を描画

▼回帰診断図
回帰診断図

よくわからない図が出現。。。図の見方を調べてみる。

■残差とフィット値のプロット(左上)
横軸が予測値、縦軸が残差をあらわしており、残差の全体像を外観するときに使用。

■残差の正規Q-Qプロット(右上)
データの正規性を確認するための図。Q-Qプロットはデータが正規分布に従うと点が直線上に並ぶ。回帰分析では、残差が標準正規分布に従うことを仮定しているため、Q-Qプロットを使用することで

■残差の平方根プロット(左下)
残差の変動状況を考察するための図。

■残差と影響力プロット(右下)
モデルの当てはまりへの影響力を測るための図。横軸は梃子値で、縦軸は標準化した残差。点線でクックの距離0.5を示している。クックの距離が0.5を超えると影響力あり、1を超えると特異に大きい。


■参考
分かって使う統計学 -相関と回帰分析-


多次元尺度構成法(MDS)

今日は多次元尺度構成法(Multi-Dimensional Scaling)のお勉強。

MDSは多次元データを2次元もしくは3次元上に可視化するための手法。


【処理ステップ】
●距離を求める。
●座標値を求める
●2~3次元上で個体を配置する(散布図を作成する)。
●信頼性について考察する

自己組織化マップ(SOM)

今日はSOMについて。

SOM(Self Organizing Map)はニューラルネットワークの一種で高次元データを2次元平面上に非線形射影する教師なしのデータ解析手法。非線形の主成分分析+クラスター分析みたいなものらしい。
このサイトの巡回セールスマン問題のデモが非常にわかりやすい。

多次元データをSOM解析することによって下記の結果を得ることが出来る。
● 多次元野データを2次元空間上にマッピング
● 似た特徴のデータは近い場所にマッピング
● 異なる特徴のデータは遠い場所にマッピング
● 視覚的に理解しやすい

【SOMの処理ステップ】
1.入力ベクトルと出力層のすべてのユニットを比較し、最も類似しているユニットを勝者ユニットとする
2.勝者ユニットとその近傍のユニットの重みベクトルを更新
3.すべての入力ベクトルに対して1〜2を繰り返す

【RでSOM】
では早速、RでSOMを使ってみる。


library(som)

# サンプルデータをロードします
rm(chooseData)
chooseData <- read.csv(file.choose())
val <- chooseData[, 1:9] # 数値データ
lab <- chooseData[, 10] # 分類(正解)
tag <- as.numeric(lab) # 正解データをプロットするための識別タグ

# 数値データを利用して10 X 10ピクセルの出力層を用意します
model <- som(val, xdim = 10, ydim = 10)

# 出力層をプロットします
lab.cod <- as.numeric(chooseData[,10])
plot(model)

# 実際のデータがどの座標にプロットされているかを表示させます
points(model$visual$x, model$visual$y, pch = tag, col = tag, cex = 2)
text(x=model$visual$x, y=model$visual$y, labels=lab)

# 重なりすぎてわからないので、ラベルだけをプロット
out.new <- model$visual[,1:2]
plot(out.new[,1:2], pch=unclass(lab))
text(x=model$visual$x, y=model$visual$y, labels=lab)




【応用】
実データでは、データ数が多くなってしまうため、計算時間やマップ上での表現が難しくなる。また、SOM自体は統計額をもとにして作られたアルゴリズムではないので、統計的な観点を取り入れた手法で様々な応用がされているらいいs。
プロセス解析,制御,検索システム,顧客セグメンテーション、経営のための情報分析などに応用されているらしい。

【参考】
子供でもわかる「自己組織化マップ」
Miyazawa’s Pukiwiki 公開版
Rで行うSOM解析
http://www.brain.kyutech.ac.jp/~furukawa/note/som/som.html#6
自己組織化マップ Self-Organizing Map(SOM) の学習メモ

Pythonのインストール

統計とかRの勉強をするも、どうもやる気が出てこないのでAndroidのアプリ開発と絡めて統計の勉強をしてみようと思う。
Web解析してアプリの情報を解析したいけど、RだけだとやりにくそうなのでPythonを使って解析することに。

ちなみにPythonを選んだ理由は
・統計用のライブラリが充実
・初心者にも取っ付きやすい(って書いてる記事が多かった)
・Rみたいに統計に特化していないため、普通にプログラミングができる
といったところ。

一般的にもデータサイエンティストが使う言語はRからPythonに移り変わっていっているらしい。
http://readwrite.jp/archives/2534

【Install】
とはいったものの、Pythonは始めてなのでInstallから始める。
開発環境はMacなので、このサイトを参考に環境構築してみる。
上記サイト通りに進めると問題なくInstallが完了。

Pythonについてはこちらのサイトでお勉強。

【IDE】
モチベーションをあげるためにvimでガリガリ書くのではなく、IDEを導入してみる。
で、どんなIDEを使うかというと。「Light Table 0.4」を使ってみようかと思います。
なぜ、このIDEかというと・・・凄そうだから!!ww
インストールしようとすると、OSX10.7.5以上じゃないとつかえないらしい。。。自分のMacがOSX10.7.4だったので一旦断念してソフトウェアアップデートをかけます。
ソフトウェアアップデート後、再度インストールを実施。
立ち上げると黒基調のエディタが出現。pandasなどの後からインストールしたパッケージはパスを通さないと使えない模様。これについてはまた後日。

【パッケージのインストール】
Pythonの強みといえば何と言っても強力なパッケージ!!
ということで、数値計算ライブラリの「Numpy」や数値解析ライブラリの「Scipy」を導入してみます。
で、このサイトでライブラリのインストールをしようとすると以下のエラーが発生してインストールできない!!
調べてみるとXCodeがインストールされていないためにpipがインストールできていない模様。

■XCodeのインストール
Python は、ライブラリを作る時に、C/C++ コンパイラと Fortran コンパイラを必要を使うらしい。これを出来るようにするために、Mac OSの開発環境であるXcodeをインストールしておきます。
※Xcodeのダウンロードには、Apple IDの登録が必要です。
Apple Developer
https://developer.apple.com/jp/

XcodeをInstall後、下記コマンドを実行してPythonのパッケージ管理ツールであるpipをInstall。

# sudo easy_install pip

続いてNumpyをInstall。

#sudo pip install Numpy

「error: library dfftpack has Fortran sources but no Fortran compiler found」というエラーが出てFortranのコンパイラーがないとおこられる。Fortranのコンパイラーをインストール。

# sudo pip install gfrotran

PythonからRを呼び出せるようにRPy2のライブラリをInstall。
# sudo pip install rpy2

Pythonでデータ解析を行うときにRのデータフレームを使えるようにPandasライブラリをInstall。
# sudo pip instal pandas


以上で環境整備は終わり。次回からは、Pythonを使って統計の勉強を進めていきたいと思います!!

Album Wallの使い方

icon.png
自分のお気に入りの画像を設定するだけで、デジタルフォトフレームのように設定した画像が切り替わるLive壁紙です。

ダウンロードはこちら(クリックしてください。)

『Album Wall』の使い方を簡単に説明します。

『Album Wall』では
  ①表示画像枚数の設定
  ②画像切替時間の設定
  ③背景画像の設定
  ④表示画像の設定
を設定し、自分だけのライブ壁紙を作成することが出来ます。
メニュー(cutdown)


①「表示画像枚数の設定」ではライブ壁紙上に表示する画像オブジェクト数を設定します。
画像オブジェクトは1〜3まで設定できます。
基本設定>表示画像枚数設定
表示画像枚数設定(cutdown)
1枚、2枚、3枚で設定した場合の画像はのようになります。
サンプル1-1(cutdown) サンプル2-1(cutdown) サンプル3-1(cutdown)


②「画像切替時間の設定」ではオブジェクトに設定した画像の切替時間を設定します。
基本設定>画像切替時間設定
画像切替枚数設定(cutdown)


③「背景画像の設定」ではライブ壁紙の背景画像を設定します。
『Album Wall』では様々なタイプの背景画像を用意しています。(順次追加予定。)
画像設定>背景画像設定
背景画像タイプ選択画面(cutdown)
背景画像のタイプを選択すると、背景画像の設定画面に遷移します。
背景画像選択画面(cutdown)
画面中央部に表示されている画像が背景に設定されている画像です。
好きな背景画像を選択すると選択した画像が画面中央部に表示されます。


④「表示画像の設定」では画像オブジェクトにお気に入りの画像を設定していきます。
画像設定>表示画像設定
設定した画像オブジェクトを選択すると、表示画像の選択画面に遷移します。
表示画像設定画面(cutdown)
画面上部に表示されている画像が設定している画像オブジェクトに表示される画像を表しています。
画像設定1(cutdown)

【補足】
画像を1枚表示対象から削除する場合
画面上部の削除対象の画像を長押し>OKをクリック
画像1枚削除(cutdown)

オブジェクト内の全画像を表示対象から削除する場合
画像全削除(cutdown)  画像1枚削除(cutdown)
Smart Phoneのメニューボタンをクリック>Delete>OKをクリック



プロフィール

HitTips

Author:HitTips
FC2ブログへようこそ!

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。