3分で試す回帰分析(ブラウザのシェア予測)
投稿者: attowave 日付: 金, 2008-12-12 12:39
「ブラウザ、検索エンジン、OS、画面サイズ のシェア」
に掲載している通り、ここ辺境の地において、Firefox が順調にシェアを拡大しています。
このままのトレンドが継続すれば、2009年暮れぐらいには 50%越えを果たしそうです。
一方の IE は、2009年半ばには 40%を割り込むという、これまた信じがたい予測を得ました。
この予測には
回帰分析
を使用しました。
本稿ですることは難しくありません。
下図のように、計測データ(実線で示す)に対して「最もあてはまりの良い」近似直線(点線で示す)を引くだけですから。
この近似直線のことを、格好良く言うと回帰直線と言います。
実習には R を使用します。
R による実習
回帰直線をプロットするには、その直線を表す 1次式を求める必要があります。
それには lm関数を使用して、最小二乗法による計算を行います。
この計算結果(1次式の情報が含まれている)をプロットするには abline関数を使用します。
残りのほとんどのコードは、グラフの見栄えに関連するものです。
$ R
R version 2.8.0 (2008-10-20)
> br = read.csv("browser.csv")
>
> t = seq(1, nrow(br))
> fx = lm(br$fx ~ t) # 最小二乗法 - Firefox
> ie = lm(br$ie ~ t) # 最小二乗法 - IE
>
> par(bg="grey95", ann=F, mar=c(2.3,2.3,1.3,1.3))
> plot(br$fx, pch=20, type="o", xlim=c(0,40), ylim=c(30,60), col="brown")
> par(new=T)
> plot(br$ie, pch=20, type="o", xlim=c(0,40), ylim=c(30,60), col="navy")
>
> abline(fx, lty=3, col="brown") # 回帰直線 - Firefox
> abline(ie, lty=3, col="navy") # 回帰直線 - IE
>
> abline(h=c(40,50), lty=3, col="grey60") # 水平線2本(40%, 50%)
> abline(v=c(1,27,38), lty=3, col="grey60") # 垂直線3本(2006.09, 2008.11, 2009.10)
>
> text( 2, 60, "2006.09", col="black")
> text(27, 60, "2008.11", col="black")
> text(38, 60, "2009.10", col="black")
> text(29, 49, "Firefox", col="brown")
> text(30, 42, "IE", col="navy")
>
> q()
$
|
計測データ
上の作業で、最初に読み込んでいるデータを掲載します。
1行目はヘッダで、データが「計測年月」「Firefoxのシェア」「IEのシェア」の順に並んでいることを示しています。
browser.csv
yyyymm,fx,ie
200609,34.68,57.19
200610,37.87,53.53
200611,37.28,55.06
200612,37.33,55.50
200701,35.48,56.72
200702,37.96,54.61
200703,59.88,33.27
200704,45.63,47.31
200705,45.43,47.03
200706,43.48,48.28
200707,41.98,49.32
200708,43.58,47.72
200709,43.36,48.19
200710,44.17,46.74
200711,44.69,46.79
200712,45.02,46.25
200801,44.48,46.78
200802,42.82,47.68
200803,39.47,50.67
200804,43.27,46.35
200805,43.83,45.81
200806,44.76,44.91
200807,46.98,43.84
200808,48.51,42.45
200809,45.39,42.56
200810,46.04,42.57
200811,45.99,41.66 |
更新履歴
| 日付 |
内容 |
| 2008-12-12 |
初版 |
R による実習 |
「回帰分析 」
関連の書籍を探す(Amazon)
|