PC::Software::Statistics Feed

2013年7月29日 (月)

モデルを図示してくれるようになったMplus 7

共分散構造分析のためのソフトウェアMplus 7の新機能として、モデルを図示してくれる機能(Mplus Diagrammer)が加わっている。従来のごく簡単なコマンドを使ってモデルを指定すれば、数表だけでなく、図の形でも推定結果を表示してくれる。ドラッグ&ドロップで変数の位置調整も可。

Mplus
Mplus 6が手元にあったのだが、これのためだけにMplus 7を買ってしまった。従来はこういう図を紙に手書きしてイメージを掴んでいたのだが、ずいぶん便利になったと思う。

2012年2月27日 (月)

SPSSでバブルプロットを作る時のバッド・ノウハウ

メニューから「グラフ」「グラフボードテンプレート選択」と進み、「詳細」タブで「散布図」を選ぶ。「バブル図」ではなく「散布図」を選ぶのがコツ。「散布図」を選んでも「大きさ」のところに変数を指定すればバブルプロットになる。さらに、「散布図」を選んでおくと、作成後にバブルの大きさを調整できる。これが「バブル図」ではなぜか調整できなくて、何か操作を見落としてるのかと結構悩んだが、どうもそういうものらしい。

ちなみにSPSSの散布図は、ドット(バブル)のラベル同士が重ならないようになかなか上手く配置してくれる。Rでもこれくらいうまくラベル配置をしてくれるライブラリが出ると良いのだけれど。

2010年6月26日 (土)

SPSSの欠損値の扱い

ものすごく今更ながらだが、結構、ややこしい。

このあたりはまだ良い:
2 * 3 = 6
2 * missing = missing

これもまぁ、当然だろう:
1 + 2 + missing = missing

だが、こういう特殊な扱いがあるので注意:
0 * missing = 0
0 / missing = 0

関数でも注意が必要:
sum(1, 2, missing) = 3
sum(missing, missing, missing) = missing

sumやmeanのような統計関数では、missingは除外して計算が行われる。3つとも数字がそろっている場合だけ計算して欲しい時には、関数名の後ろに「.3」を付ける。

「.n」を活用:
sum.3(1, 2, missing) = missing

あと、論理演算も結構ややこしい。

true AND missing = missing
true OR missing = true
missing OR missing = missing

「欠損値(missing)が式の中に入った場合には、問答無用で結果も欠損値(missing)」というふうになっていれば分かりやすいのだが、そうならない場合がチョイチョイあるので注意が必要だ。どういう場合に結果が欠損値(missing)にならないのかという、規則性というか考え方というかについて、もうひとつ確信が持てない。変数の計算(compute)をするときには、慎重に確認するしかないか。

2010年2月22日 (月)

カイ2乗値と自由度からp値を

カイ2乗値と自由度があたえられて、そこからp値を出したいとき。Rだと以下のように打つのが楽そう:

1 - pchisq(カイ2乗値, 自由度)

Excelではこう:

=CHIDIST(カイ2乗値, 自由度)

すごく小ネタだけど、いちいち調べ直すのも面倒なのでメモ。

2009年11月27日 (金)

Web調査

Webページ上で質問に答えてもらうWeb調査。既存のWebサービスを利用しても、そこそこいけるらしい。例えばREASとかSurveyMonkeyとか。REASは国内初なので、携帯の各キャリアにも対応しているというのが素晴らしい。携帯でたくさんの質問に答えてもらうのは厳しいだろうけど、質問の数を絞り込める場合にはおもしろそうだ。

このブログで度々取り上げているLimeSurveyみたいなものだと、Webサーバーを調達して、そこにインストールする必要がある分だけ、少し面倒だ。けれどその代わりに、フリーソフトウェア(自由ソフトウェア)の利点を活かして、完全に自由にカスタマイズ/修正できるのが利点。

Geekなら当然後者を選びたいわけだけど、普及という点では苦しいかもしれない。でもLimeSurveyは良くできたソフトだから、これからも是非頑張って欲しい。

2009年8月17日 (月)

LimeSurvey(1.82+)によるSPSS用データの出力

Web上でアンケートを行うためのフリーソフトウェア「LimeSurvey」には、得られた回答をSPSS形式で(シンタックスファイル+テキストファイルを)出力する機能がある。

この機能には、1-0の2値変数の1が、誤って「Y」と出力されるバグがあったので、export_data_spss.phpを「続き」部分に示すように直すことで修正。

それから、これはバグと言うよりも使い方のミスだが、数値(選択肢の値)が全角で入力されていると、SPSS形式のデータでは「文字列変数」になってしまう。これについては、(1)シンタックスファイルとテキストファイルに含まれる全角の数値をすべて半角に置換して、(2)シンタックスファイルの「A2」を「F1」に置換してしまえばなんとかなる。

最後に、シンタックスファイルとテキストファイルの文字コードをShift-JISに変換すれば、日本語文字列も正常に読み込める。

ついでに、読み込んだ後は、回答者が答えなかった部分=欠損値のチェックが必要なようだ。「欠損値」という概念が無いか、あってもひどく曖昧なようで、「欠損値」になって欲しい部分にも問答無用で「0」が入力されているらしい。この「0」を一括して「欠損値」に直すようなシンタックスを書けば良いのか。まぁ、作業量としては大したものではないか。

それでも、ちょっと、面倒な感じかな。以上の手順を分かってて順にクリアしていけばどうということはないんだけど…。

続きを読む »

2009年7月21日 (火)

クラスターの数

クラスター分析をするときに悩めるポイントの1つとして、データ中からいくつの群(クラスター)を検出するのかという、クラスター数の指定がある。

その点、k-meansの変形手法として「x-means」(リンク1リンク2)というのがあって、この手法ではBICを使って、いくつの群(クラスター)に分割するのが最適なのかを判断してくれるらしい。なかなか良さそうなんだけど、k-means同様、距離係数はユークリッド距離固定なんだろうか。自由に距離係数を選べると面白そうだけど、wekaなんかで実装されている手法としてはユークリッド距離だけらしいので今回は試さず…。

次に、樹状図(デンドログラム)を描く階層的クラスター分析の方では、どの類似度で樹状図を切り離すのか、人間が判断するというのが昔ながらのオーソドックスなやり方だ。それに対して、一律の類似度で切り離すよりも、より良いクラスター検出/クラスター数決定の方法として、Dynamic Tree Cutpvclustが提案されているらしい。ただ、手元の非常に汚いデータを相手にちょっと試してみた感じでは、パラメーターの調節が上手くないせいか、なかなか、難しいようだ。

そのまま自作ソフトに取り入れて使えるようなものとなると、まだちょっと見あたらないようだ。もちろん、単に探し方が悪いのかもしれないが…。

2009年6月 2日 (火)

LimeSurvey 1.82+

Web上でアンケートを行うためのフリーソフトウェア「LimeSurvey」を1.82+にアップデートしてみたところ、やはり1.80の時と同じ点に注意が必要だった。

なお今回は、ドロップダウンリストに表示される質問文の末尾(短縮のために切り落とした箇所)が文字化けするバグや、その他の些細なバグを修正した。

これらは1.80の時から気になっていたバグだ。こうしたバグがなかなかフィックスされないところを見ると、最近は、日本人もしくはマルチバイト文字を使う国の人が開発陣に入っていないか、あるいはあまりアクティブに活動していないのかもしれない。頑張って英語のバグレポートとか送ってみるか、な?

ともあれ、以下に修正点をメモ。

続きを読む »

2009年5月25日 (月)

ラベル付きの散布図

かつてラベル付きの散布図を作ろうとしたら、意外に作業が面倒で驚いた記憶があるけれど、最近では少し事情が変わってきている模様。現在のソフトならば、昔(5~10年前)ほどは苦労せずに、散布図を作成できるようだ。以下、簡単にメモ。

続きを読む »

2009年5月 9日 (土)

Rのパッケージ「gputools」

CPUではなく、GPUを使って分析を行うパッケージ「gputools」が先月の18日に公開されていた。階層的クラスター分析をはじめとして、いくつかの計算・分析に対応。

GPUを使った処理は、内容によってはCPUの数倍から数百倍の速度がでるという、夢を感じる技術だ。これまで、ちょっと大きなデータを放り込むと、クラスター分析には5分・10分・それ以上といった時間がかかっていたので、期待に胸が高まるところ。

しかし、今のところWindows版のバイナリが配布されていないので、試すことができない。とても残念。Windows版をはやく出してくれないものか…。(Windows上でのビルドはやったことがないし、環境も整っていないので、1からのチャレンジにはちょっと勇気が要る。そんなわけで、当面は他力本願…)