2016年6月8日水曜日

フィッツの法則の実験・検証をするWebアプリ

(昨年facebookでポストしたものですが、記録のためこちらにも残します)

今年もHCIの講義でフィッツの法則を教える季節になりました。


T = a + b log2(1+D/W)

私は毎年、Processingで作ったWebアプリを使って実験し、Excelで検証する課題を出しています。所要時間はおよそ30〜40分です。

以下が学生に与える課題説明です:

以下のリンクから、実験用のプログラムを実行できます。

https://dl.dropboxusercontent.com/u/7988399/FittsLawTest/index.html

(ちなみにこれはprocessingというJavaに似た言語で書きました。とても簡単に作れます。)

このプログラムを実行すると、白い円が表示されます。これをデスクトップ上のアイコンのようなものだと思って、なるべく早くそれをクリックしてください。クリックすると白い円が別の位置に表示されます。

またその円をなるべく早くクリックします。これを何度も繰り返します。

最低50回は繰り返してください。適当なところでやめます。すると画面下に以下のようなデータがたまっていると思います。

#distance,diameter,time_sec
450.70834,71,1.026
308.1769,99,1.065
391.21478,37,1.000
324.87076,71,0.965
301.42496,88,0.932
(以下略)

先ほど何度も行った円のクリック課題の結果が1行ずつデータになっています。

①課題開始時のマウスカーソル位置から円の中心までの距離(ピクセル単位),②円の直径(ピクセル単位), ③クリックにかかった時間(秒単位)

というデータの集まりです。

フィッツの法則の式で、Tが③, Dが①, Wが②です。

このデータをすべてコピーして、テキストエディタに貼り付けて、fitts.csvという名前で保存し、これをExcelで開きます。

(注意!:コピーしたデータを直接Excelに貼り付けてはダメです!カンマ区切りのデータが、ひとつひとつセルに入らなくなります。)

ちゃんとデータが3列目まで入っていることを確認したら、得られたデータをもとにExcelをつかってフィッツの法則の式の定数aとbを求め、どのくらい法則通りになったかを議論します。

 以下の手順で進めます。

D列目の1行目に log(D/W+1)と書いて、D列の2行目以降にそれぞれの行で 2を底とした log(D/W+1)を計算した値を計算させてください。

(念の為:Excelで対数をつかうやり方は以下を見て学んでください http://excel.onushi.com/function/log.htm )

フィッツの法則の式でlog(D/W+1)=Xとおくと、 T = bX + a という一次方程式になります。つまりフィッツの法則は、TとXが直線関係にあることを示しているのです。

ここで、TとXの実際のデータが大量に与えられた状態でaとbを決定する分析方法を回帰分析と言います。

Excelで回帰分析を用いて、定数aとbの値を求めなさい。また、回帰分析の当てはまりの良さを表す「決定係数 R^2  (←Rの2乗)」を求めなさい。

回帰分析: http://ja.wikipedia.org/wiki/%E5%9B%9E%E5%B8%B0%E5%88%86%E6%9E%90

決定係数: http://ja.wikipedia.org/wiki/%E6%B1%BA%E5%AE%9A%E4%BF%82%E6%95%B0

回答の形式:

a = xxxx

b = xxxx

R^2 = xxxx

ヒント:これには2通りのやり方があります。

(1)TとXの散布図を書いて、「線形近似曲線」を追加する

http://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/office2007/excel15.html

http://office.microsoft.com/ja-jp/excel-help/HA102809798.aspx

(2)「データ分析」の「回帰分析」を用いる

http://keijisaito.info/econ/jp/excel_ols/tool.htm


WindowsでもMacでもできるのは、(1)のやり方です。(2)はWindowsではできることを確認しましたが、少なくとも大学のMacではできませんでした。

0 件のコメント:

コメントを投稿