13
取扱説明書 スクリプトの内容 1データ形式の変形 順序ロジットモデルによるオンジョイント分析と、条件付きロジットモデルによる選択型 コンジョイント分析の両方を行うためのスクリプトです。選択型コンジョイント分析の場 合、データーは下の表のような形になっています。 no q1 q2 q3 q4 q5 q6 1 1 1 1 1 2 1 2 1 3 2 1 3 3 3 4 4 4 4 4 4 4 2 3 2 2 3 3 5 3 2 2 1 3 3 6 2 1 4 4 4 1 7 2 2 3 3 2 3 最も左の列の no は、回答者の番号です。この例では質問が q1 から q6 まで 6 つあって、各 質問の選択肢の中で何番の選択肢が選ばれたかがが右側の列に記述されています。もちろ んもっと多くの質問があっても構いません。順序ロジットによるコンジョイント分析も選 択型コンジョイント分析も、このデータの形のままで行うことはできません。選択型コンジ ョイント分析では、プロファイルと呼ばれるいくつかの水準を持ったいくつかの属性で構 成される商品やサービスを複数個作って、その中から、最も好ましい商品やサービスを選択 させ、その属性に対する効用値を計算します。やり方によっては、個々の水準に対する効用 値を計算することもできます。つまり、質問に対する回答のデーターだけでなく、各プロフ ァイルの属性ごとの水準のリストが必要です。 そのリストは、下の表にようになっています。 FISH CARB PRICE prof1 100 100 500 prof2 100 50 3000 prof3 100 0 5000 prof4 50 100 3000 prof5 50 50 5000 prof6 50 0 500 prof7 0 100 5000 prof8 0 50 500 prof9 0 0 3000

取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

取扱説明書

スクリプトの内容

1データ形式の変形

順序ロジットモデルによるオンジョイント分析と、条件付きロジットモデルによる選択型

コンジョイント分析の両方を行うためのスクリプトです。選択型コンジョイント分析の場

合、データーは下の表のような形になっています。

no q1 q2 q3 q4 q5 q6

1 1 1 1 1 2 1

2 1 3 2 1 3 3

3 4 4 4 4 4 4

4 2 3 2 2 3 3

5 3 2 2 1 3 3

6 2 1 4 4 4 1

7 2 2 3 3 2 3

最も左の列の noは、回答者の番号です。この例では質問が q1から q6まで 6つあって、各

質問の選択肢の中で何番の選択肢が選ばれたかがが右側の列に記述されています。もちろ

んもっと多くの質問があっても構いません。順序ロジットによるコンジョイント分析も選

択型コンジョイント分析も、このデータの形のままで行うことはできません。選択型コンジ

ョイント分析では、プロファイルと呼ばれるいくつかの水準を持ったいくつかの属性で構

成される商品やサービスを複数個作って、その中から、最も好ましい商品やサービスを選択

させ、その属性に対する効用値を計算します。やり方によっては、個々の水準に対する効用

値を計算することもできます。つまり、質問に対する回答のデーターだけでなく、各プロフ

ァイルの属性ごとの水準のリストが必要です。

そのリストは、下の表にようになっています。

FISH CARB PRICE

prof1 100 100 500

prof2 100 50 3000

prof3 100 0 5000

prof4 50 100 3000

prof5 50 50 5000

prof6 50 0 500

prof7 0 100 5000

prof8 0 50 500

prof9 0 0 3000

Page 2: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

一番左の列がプロファイルです。この例は、生態系サービスに対する支払意志額を調査した

ものなのですが、ここでは、魚と炭水化物をいれたカップ麺を作って、いくらで売るのがも

っともよいかという問題を解決するためのアンケート調査だと思ってください。属性が魚、

炭水化物、価格と3つあって、魚には、0,50,100 の水準があります。魚抽出成分を 0mg,

50mg, 100mg 入れるというようなことをイメージしてください。炭水化物の方も

0,50,100mg の水準がありますが、こちらは何か穀物の抽出物を 0,50,100mg 入れると思っ

てください。こうしてできたカップ麺に、500円、3000円、5000円の値段をつけて商品(プ

ロファイル)をつくって、どれがよいか選んでもらうということです。つまりこの場合は、

3属性各 3水準でできたプロファイルによるコンジョイント分析です。

プロファイルの形式には、いろいろあって、上記のプロファイルを以下のようにも書けます

FISH50 FISH100 CARB50 CARB100 PRICE

prof1 0 1 0 1 500

prof2 0 1 1 0 3000

prof3 0 1 0 0 5000

prof4 1 0 0 1 3000

prof5 1 0 1 0 5000

prof6 1 0 0 0 500

prof7 0 0 0 1 5000

prof8 0 0 1 0 500

prof9 0 0 0 0 3000

これは、魚の属性について、一つの水準、たとえば 50 がそうであれば、1 そうでなければ

0を与えています。魚の属性 100についても、炭水化物 50、炭水化物 100についても同様

です。属性には様々なものがあって、定量性のない属性もあります。例えば、果物の場合、

色が、赤いとか青いとか黄色いというような場合です。また、多ければ多いほど良いのでは

なくて、適切な水準が最も好まれるという場合もあります。こういう場合は、属性一単位の

効用という概念は無意味です。一般的なコンジョイント分析では、こういう場合の方が多い

でしょう。そこで、この profileを profile1タイプ 1のプロファイル形式として、前に示し

たものを profile2の形式とします。

次に質問の形ですが。9プロファイルの中から1つを選ばせるのではなく、プロファイルを

いくつか並べて、選んでもらい、、それをいくつか繰り返します。そうすることによって、

回答者がどの属性についてどの水準を望んでいるのかがわかります。全部並べて1つを選

んでもらうと、どの属性を回答者が重視しているのかがわかりません。各質問でどのプロフ

ァイルが選択肢になっているのかという情報が必要です。

この情報は、下の表のようになっています。

Q1 Q2 Q3 Q4 Q5 Q6

Page 3: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

1 1 1 4 1 7 1 1 1 5 1 7

2 2 2 5 2 8 2 4 2 2 2 3

3 3 3 6 3 9 3 9 3 8 3 6

この場合は、それぞれの質問に、選択肢が 4つあって、4つ目の選択肢が、3つの中からど

れも選ばないです。この例では、質問 1の選択肢の1番目がプロファイル 1、2番目がプロ

ファイル 2、3 番目がプロファイル 3 で、質問6の選択肢の1番目がプロファイル 7、2 番

目がプロファイル 3、3 番目がプロファイル 6 です。実際には、、この組み合わせは重要で

すから、もう少し工夫した組み合わせが必要ですが、形式的にはこのような形です。

必要なのは、この3つのデータなのですが、もう一つ、それぞれの属性の各水準をどのよう

に呼ぶかというラベルも作っておきましょう。これがないと、コンピュータが図表を作って

くれても意味が分かりません。

0

50

100

0

50

100

500

3000

5000

上から、魚 0、魚 50、魚 100、炭水化物 0、炭水化物 50、炭水化物 100、価格 500、価格

3000、価格 5000 という風にラベルを付けました。つまり、、プロファイルの票の左側から

順番に上下に属性を並べ、その中に小さいほうからラベルをつけるということです。ラベル

のつけ方を間違えると、計算結果を示すグラフの表示が間違って出ますから、プロファイル

の表とラベルの表が一致するようにつけることが必要です。

このシステムでは、一つのデータセットから、順序ロジットと、条件付きロジットの2つの

分析が可能になるように形式の異なる2つのデータの入力形式を作ります。一つは順序ロ

ジットの形式です。もともとのデータは、条件付きロジットを使った選択型のコンジョイン

ト分析をするために取られています。通常、順序ロジットによる分析をする場合、すべての

プロファイルを並べて、好ましさの順番を回答者につけてもらうとか、好ましさの程度を表

す得点を、例えば、好ましくない 0、どちらかと言えば好ましくない 1、どちらでもない 2、

どちらか言えば好ましい 3、好ましい 4、のような程度を表す評価点をつけてもらったりし

ます。ここでは5段階評価ですが、何段階評価でも構いません。もともとのデータが、この

形式でとられていれば、データを加工しなくても、そのまま分析が可能ですが、ここでは、

選択型として取られたデータから、順序、評価のデータ形式に作り替えます。その変形には

Page 4: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

何らかの方法が必要です。ここで使っている方法は星取表です。つまり、一回の選択を1回

の勝負と考えて、その勝ち数を数えます。そのためには、すべてのプロファイルが質問軍群

中で同じ回数だけ選択肢に含まれていることが必要です。そのように、プロファイルと質問

群が作られていることが前提です。今回示した例で確かにそうなっていることを確認して

ください。この例では、各プロファイルが2回出てきます。つまり、出てきた質問群で2回

とも選ばれれば、そのプロファイルの順序の値は2です。一回も選ばれなければ0です。つ

まり、回答者ごとに、各プロファイルに対して 0,1,2という評価点(順序)が与えられると

いうことです。その結果、下の表のような、データの入力の形が出来上がります。

no prof1 prof2 prof3 prof4 prof5 prof6 prof7 prof8 prof9

1 2 1 0 1 0 0 2 0 0

2 2 0 0 0 0 2 0 2 0

3 0 0 0 0 0 0 0 0 0

4 0 1 0 1 0 2 0 2 0

5 1 0 1 0 1 1 0 2 0

このデータ票の意味は、回答者1は、プロファイル 1 とプロファイル 7 を2回選び、プロ

ファイル 2とプロファイル 4を1回選んだということです。

このスクリプトでは、元のデータ、プロファイルの表、質問の表、水準のラベルの表の 4津

の表を入力すれば、Rの中でこのデータの形に作り替えて、コンジョイント分析をして、そ

の結果を返してきます。

選択型コンジョイント分析も、元のデータ形式ではできません。

STR RES ASC FISH50 FISH100 CARB50 CARB100 PRICE

101 1 1 0 1 0 1 500

101 0 1 0 1 1 0 3000

101 0 1 0 1 0 0 5000

101 0 0 0 0 0 0 0

102 1 1 1 0 0 1 3000

102 0 1 1 0 1 0 5000

102 0 1 1 0 0 0 500

102 0 0 0 0 0 0 0

103 1 1 0 0 0 1 5000

のような形式、あるいは

STR RES ASC FISH CARB PRICE

101 1 1 100 100 500

101 0 1 100 50 3000

Page 5: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

101 0 1 100 0 5000

101 0 0 0 0 0

102 1 1 50 100 3000

102 0 1 50 50 5000

102 0 1 50 0 500

102 0 0 0 0 0

103 1 1 0 100 5000

のような形式にする必要があります。どちらにするかは、分析の目的によります。このそれ

ぞれは、プロファイルの形式 profile1と profile2に対応しています。

1列目の数字は、回答者と質問を識別するための数値で、1行目からは 4行目の 101は 1番

目の回答者の 1 番目の質問に対する回答という意味です。この例の場合、いずれも選択し

ないを含めると選択肢が 4 つあるので、4 行分が 101 に充てられます。選択肢が 5 つあれ

ば 5 行必要ということです。この例では選択肢が4つで質問が 6 個あるので、一人の回答

者について 24行必要です。STRの値は、回答者番号×100+質問番号です。RESは response

で、その選択肢が選らばれなければ 0 です。ASC は切片でどれも選ばない以外については

普通 1にします。その右側は選ばれたプロファイルの属性です。

こうしたデータの加工はとても複雑で手作業でやると、時間がかかる上に、入力ミスが出ま

す。そうしたことを考えると、手作業でやるよりは、コンピュータの中でコンピュータにや

らせる方が安全で速いでしょう。このスクリプトでは、この作業も Rがやります。

2.回答者の仕分け

なぜ、2つの方法で、コンジョイント分析をやるのかを説明します。2つの方法は、それぞ

れ弱点があるのです。詳しくは統計のところのコンジョイント分析の解説を読んでもらい

たいのですが、簡単に言えば、条件付きロジットモデルによる選択型の分析では、ガンベル

分布が使われていて、確率統計的にはその方が妥当だと考えられます。選択型コンジョイン

ト分析では、全体として、属性の水準になっている量的な大きさの1単位に対する支払意志

額が計算できます。しかし、条件付きロジットモデルは、人々の選択に対する揺らぎの幅(分

散)はすべて等しいという前提に立っています。これがこの分析の制約ですが、これはかな

り不自然な制約です。実務的にはそれでは、個人の様残な属性に対する効用値が得られませ

ん。順序型では、個人が順序付けする時の確率的揺らぎは、どの順序付けでも等しいと考え

ているだけなので、個人別にプロファイルの属性に対する特性値が出せるのです。それを使

って、クラスター分析で回答者をいくつかのグループに仕分けることができます。個人をグ

ループに分けてから、選択型のコンジョイント分析をする方が良いかもしれません。という

ことで、2つのコンジョイント分析を組み合わせることにしました。

Page 6: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

このスクリプトでは、順序ロジットによるコンジョイント分析の後に、クラスター分析を行

います。クラスター分析をする関数は、package(conjoint)に用意されているのですが、おそ

らく、非階層的なクラスター分析です。非階層的なクラスター分析も時に有効ですが、階層

的なクラスター分析の方が良い場合もあります。そこで、このスクリプトでは、

package(conjoint)の外に出て、package(psych)の関数を使って、クラスター分析をします。

3.効用値に対して回答者の何らかの属性が交互作用を追っている可能性

選択型コンジョイント分析では、回答者揺らぎは一定という過程なのですが、回答者の持っ

ている属性が、回答者が受ける効用に何らかの影響を与えている可能性があります。そこで、

回答者の持っている属性(たとえば、収入、体の大きさ、性別など)を組み込んで、その交

互作用を調べるシステムを組み込んでいます。使えますが、、外側からデータを再入力する

必要があり、利便性が不十分でまだ未完成です。

4.プロファイルと質問の設計

コンジョイント分析では、プロファイルや質問の設計が問題になります。そこで、プロファ

イルと、質問を構成するためのスクリプトを付け加えました。プロファイル設計は

package(conjoint)にありますが、package(conjoint)には、質問の設システムがありません。

Package(conjoint)は順序ロジットのために作られていますから、もともとその必要はない

のです。そこで、実験デザインの package(AlgDesign)で乱数を使って、プロファイルと質

問を構成するスクリプトを作りましたが、ところどころマニュアルで操作する必要があり、

これもまだ利便性は不十分です。将来、改善します。でも一応は使えます。

操作手順

1.R studioの準備

インストールしておく必要がある packageは、conjoint、AlgDesign、psych、stats、proxy、

survivalです。

R studioを起動して、デフォルトの画面で左上の consoleのところに、wordフィルのスク

リプトをコピーして貼り付けます。Console の上部左側の File をクリックすると、様々な

作業リストが出てきますが、その中の Save asをクリック、コンピュータ上の作業ディレク

トリーが見えるので、そこに conjoint のようにわかりやすい適当な名前を付けて保存しま

す。

2.データの読み込み

読み込むデータは、エクセルで作るのが普通でしょう。他のソフトでも作っても良いのです

が、それらを作業ディレクトリーに CSVファイルとして保存します。元データ、プロファ

イルの表(profile1の形式、profile2の形式)質問の表、ラベルの表のファイルが必要です。

Page 7: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

サンプルデータでは、TT10、profile1、profile2、question、TTlevelがそれに相当します。

次に、作業ディレクトリー上のデータを R に読み込みます。R studioのデフォルトでは、

右上のある、source の部分を使いって読み込みます。source の上の部分にある、Import

Datasetをクリックすると、from local fileと from webURLの2つの選択肢が出てきます

から、from local fileを選択します。作業ディレクトリーが見えます。そこで、必要なデー

タファイルをクリックします。データが見えますが、データの読み込みの形が訊かれます。

Heading の部分ですが、普通、エクセルでは第一行目に、その列を識別するラベルが書か

れていますから、Yesをクリックします。もちろん、1行目からデータが書かれていれば No

です。次にその下の Row nameについては、様々な場合がありますが、profile1,profile2の

ように、明確に第一列が行のラベルである場合には use first columnを選択します。そうで

なければ Automaticを選べばよいでしょう。データ取り込みの小さな画面の下の Importを

クリックすれば、console上に取り込んだデータが見えます。必要な形式になっていること

を確認してください。サンプルデータでは、TT10、profile1、profile2、question、TTlevel

を読み込んでください

分析の準備

Console の上部にファイルや R のスクリプトが並んでいますから、必要なスクリプト(こ

の例では(conjoint)を選択します。スクリプトが出てきますから、必要なスクリプトの書き

換えを行います。書き換えは以下の通りです。

8-11 行目 分析するデータを代入します。赤字が取り込むデータファイル(データフレー

ム)の名称です。実際には自分で取り込んだデータファイルを記入します。

data<-TT10

prof<-profile2

ques<-question

levn<-TTlevel

29-33行目

(ここは条件分岐するところです)このスクリプトは選択肢の数が 5 まで対応できます。

もっと選択肢が増えた場合には以下のように書き換えます。5以下ならば必要ありません。、

"1"=pr<-ques[1,count2],

"2"=pr<-ques[2,count2],

"3"=pr<-ques[3,count2],

"4"=pr<-ques[4,count2],

"5"=pr<-ques[5,cojunt]

"6"=pr<-ques[6,cojunt]

Page 8: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

のように選択肢の数分だけ、選択肢によって分岐するスイッチを増やしてください。

56行目 57行目

ここは、作業ディレクトリーにデータを書き出すところです。書き出されたデータがどんな

内容のものかわかるように識別性の良い名前を付けてください。caPは、個人の部分効用で

す。クラスター分析の、素材になる重要なデータです。

write.table(caT,"TT10data.csv",sep=",")

write.table(caP,"TT10person.csv",sep=",")

73行目

これは、総当たり相関行列の書き出しです。識別性の良い名前を付けてください。

write.table(cordat,"TT10cor.csv",sep=",")

99行目

クラスターの仕分け結果の書き出しです。識別性の良い名前を付けてください。

write.table(class,"cluster.csv",sep=",")

115-117行目

選択型コンジョイント分析のためのデータ入力をしなおします。サンプルデータでは次の

ように入力します。実際には、それぞれ必要なデータを入力してください・

data<-TT10

prof<-profile1

ques<-question

194-199行目

条件分岐のところです。選択指数が 5までならば、書き換えの必要はありませんが、それ以

上ならば、

"1"=cn<-1,

"2"=cn<-2,

"3"=cn<-3,

"4"=cn<-4,

"5"=cn<-5,

"6"=cn<-6

"7"=cn<-7

のように、選択肢の数より一つ多いところまで、スイッチの数を増やしてください。

223行目

選択型コンジョイント分析の形に書き換えたデータのリストです。必要になるかもしれま

Page 9: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

せん。識別性の良い名前を付けて書き出してください

write.table(data1,"STRTT10.csv",sep=",")

227行目、

ここは、選択型のコンジョイント分析をどのような属性についてやるかを決めるところで

す。Profile1の形式ならばこのままで書き換える必要はありません。。

clogit(RES~ASC+FISH50+FISH100+CARB50+CARB100+PRICE+strata(STR),data=da

ta1)

もし、profile2の形式ならば、

clogit(RES~ASC+FISH +CARB +PRICE+strata(STR),data=data1)

この例のように、プロファイルの属性のとおりに書きます

229 行目の clogout1 で分析結果が、出ますが、これを作業ディレクトリーに書き出す方法

がわかりません。現在は、結果を wordにコピーして、置換機能を使って、空白をタブ文字

に変換して(オプションであいまい検索を消す)、それをさらにエクセルにコピーしていま

す。

分析の実施

Consoleに書かれた実行したい部分をドラグすると、その部分が青色に変わります。その状

態で、consoleの右上の Runをクリックすると、青色部分が実行されます。

まず、1から 47行目までを実行します。左下の environmentのところに。

#プロファイルの表示

> print(prof)

FISH CARB PRICE

prof1 100 100 500

prof2 100 50 3000

prof3 100 0 5000

prof4 50 100 3000

prof5 50 50 5000

prof6 50 0 500

prof7 0 100 5000

prof8 0 50 500

prof9 0 0 3000

> #各水準のラベルの表示

> print(levn)

Page 10: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

V1

1 0

2 50

3 100

4 0

5 50

6 100

7 500

8 3000

9 5000

> print(prefm)

prof1 prof2 prof3 prof4 prof5 prof6 prof7 prof8 prof9

1 2 1 0 1 0 0 2 0 0

2 2 0 0 0 0 2 0 2 0

3 0 0 0 0 0 0 0 0 0

4 0 1 0 1 0 2 0 2 0

5 1 0 1 0 1 1 0 2 0

というデータの編集結果がでます。一番下の表が、実際に分析に使われるデータです。

次に、順序ロジットによるコンジョイント分析を実行します。48-57行を選択して、Runで

実行してください。左下の environment, etcのところに結果が出ます.

出てくる表は、回答者個人の、切片も含めて各属性の選択水準に対する効用値です。..

intercept 0 50 100 0 50 100 500 3000 5000

[1,] 0.667 0.000 -0.333 0.333 -0.667 -0.333 1.000 0.000 0.000 0.000

[2,] 0.667 0.000 0.000 0.000 0.000 0.000 0.000 1.333 -0.667 -0.667

[3,] 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000

[4,] 0.667 0.000 0.333 -0.333 0.000 0.333 -0.333 0.667 0.000 -0.667

[5,] 0.667 0.000 0.000 0.000 0.000 0.333 -0.333 0.667 -0.667 0.000

[6,] 0.333 0.000 0.000 0.000 -0.333 0.000 0.333 -0.333 0.333 0.000

[7,] 0.667 0.000 0.000 0.000 0.333 0.333 -0.667 -0.333 0.667 -0.333

[8,] 0.111 -0.111 -0.111 0.222 -0.111 -0.111 0.222 0.222 -0.111 -0.111

[9,] 0.556 -0.222 -0.222 0.444 -0.556 0.111 0.444 0.444 0.111 -0.556

[10,] 0.667 0.333 -0.333 0.000 0.000 0.000 0.000 -0.667 1.000 -0.333

一番左側の列が、回答者の番号で、その右側に並んでるのが、各水準に対する効用です。切

Page 11: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

片も含めてその総和が、プロファイルを選択する確率のロジットです。

いくつか右側にグラフが出ますが、一つ一つ確認すると、何のグラフかわかると思います。

次に、このデータを使ってクラスター分析をします。58行から 106行です。自動的に結果

が、作業ディレクトリーに書き出されますが、書く出されるのは、階層的クラスター分析の

結果だけです。非階層クラスター分析の結果は、environment に書く出された結果をコピ

ーしてください。

ただし、クラスター分析はこのままで作業を終われません。右下のプロットのところに、多

次元尺度法による、データの分布が見えているはずです。プロットエリアの左上にある左向

きの矢印をクリックすると、ユークリッド距離によるデンドログラムが出てきます。さらに

左向きの矢印をクリックすると、マハラノビス距離によるデンドログラムが見えます。二つ

のデンドログラムを見て、クラスターをいくつに分けるのが妥当かを考えます。デフォルト

では、クラスターを 5 つに分けていますが、クラスターを6つに分けることが妥当だと考

えれば、91行目、92行目の 101行目、102行目、107行目を

(mclster<-cutree(edc,k=6))

(eclster<-cutree(edc,k=6))

kmeans(mdist, 6, iter.max = 200, nstart = 1, algorithm = c("Hartigan-Wong"))

mclsep<-kmeans(mdist, 6, iter.max = 200, nstart = 1, algorithm = c("Hartigan-Wong")

caSegmentation(prefm,prof,6)

と書き替えて、90行目から 107行目を再実行します。

もし、クラスターの数が 6、以外が適当だと判断したら、6ではなくてその数を赤字のとこ

ろに入れて再実行します。。

以上で、順序ロジットによるコンジョイント分析と、クラスター分けは終了です。

条件付きロジットによる選択型コンジョイント分析は、112 行目から、229 行目までです。

まず、データ形式の書き換えですが、112 行目から 223 行目がそれに相当する部分です。

112行目から、223行目までを実行してください。223行目の、

write.table(data1,"STRTT10.csv",sep=",")

で、作業ディレクトリーに変形された入力データがコピーされます。そのことを確認したう

えで、224行目から、229行目のコンジョイント分析を実施してください。

左下の environmet,etcに

clogit(RES ~ ASC + FISH50 + FISH100 + CARB50 + CARB100 + PRICE +

strata(STR), data = data1)

coef exp(coef) se(coef) z p

ASC -2.36e-01 7.90e-01 1.64e-01 -1.43 0.152

Page 12: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

FISH50 8.43e-02 1.09e+00 1.57e-01 0.54 0.591

FISH100 2.80e-01 1.32e+00 1.51e-01 1.85 0.065

CARB50 3.06e-01 1.36e+00 1.47e-01 2.07 0.038

CARB100 1.41e-01 1.15e+00 1.34e-01 1.05 0.293

PRICE -1.61e-04 1.00e+00 2.76e-05 -5.84 5.3e-09

Likelihood ratio test=59.7 on 6 df, p=5.21e-11

n= 2400, number of events= 600

のように計算結果が出ます。下から 2 行目の p の値を見れば、この分析結果が有意である

ことがわかります。

これは作業ディレクトリには自動的に書き出されません。Wordを経由するなどして、エク

セルにコピーしてください

coef exp(coef) se(coef) z p

ASC -0.236 0.79 0.164 -1.43 0.152

FISH50 0.0843 1.09 0.157 0.54 0.591

FISH100 0.28 1.32 0.151 1.85 0.065

CARB50 0.306 1.36 0.147 2.07 0.038

CARB100 0.141 1.15 0.134 1.05 0.293

PRICE -0.000161 1 0.0000276 -5.84 5.30E-09

という感じの、エクセルシートになります。

coefの列が、効用係数で、単位は/unitです。価格のところは/円ということになります。

価格は普通マイナス効用です。それぞれの1ユニットに対する支払意志額は、それぞれの係

数を価格の係数で割ったもの符号の正負をいれかえたものですから、例えば、

FISH50に対する支払意思額は、-(0.0843-0.000161)=523.603円になります。

一番最後の列が有意水準(危険率)です。

この例について支払意志額をすべて計算すると

FISH50 523.6024845

FISH100 1739.130435

CARB50 1900.621118

CARB100 875.7763975

ただし、5%優位で考えると、有意な値は CARB50のみということです。

とはいっても、計算結果の

Likelihood ratio test=59.7 on 6 df, p=5.21e-11

n= 2400, number of events= 600

を見ると、全体としては、有意と言えます。

Page 13: 取扱説明書 - Future fisheries...の表を入力すれば、r の中でこのデータの形に作り替えて、コンジョイント分析をして、そ の結果を返してきます。

これを profile2の形式でやると、

Call:

clogit(RES ~ ASC + FISH + CARB + PRICE + strata(STR), data = data1)

coef exp(coef) se(coef) z p

ASC -1.69e-01 8.45e-01 1.45e-01 -1.16 0.244

FISH 2.65e-03 1.00e+00 1.52e-03 1.74 0.081

CARB 1.41e-03 1.00e+00 1.30e-03 1.08 0.279

PRICE -1.60e-04 1.00e+00 2.75e-05 -5.81 6.2e-09

Likelihood ratio test=56.1 on 4 df, p=1.93e-11

n= 2400, number of events= 600

のように計算結果が出ます。これをエクセルシートに書くと

coef exp(coef) se(coef) z p

ASC -0.169 0.845 0.145 -1.16 0.244

FISH 0.00265 1 0.00152 1.74 0.081

CARB 0.00141 1 0.0013 1.08 0.279

PRICE -0.00016 1 0.0000275 -5.81 6.20E-09

となって、支払意志額は

FISH 16.5625

CARB 8.8125

となりますが、これは、この例の場合、それぞれ魚抽出物 1mg炭水化物抽出物 1mgに対す

る支払意志額です。

230行から、238行は、将来、回答者の属性との関係を調べたくなったとこのために作った

ものです。まだ完成品ではありませんが、興味があれば動かしてみてください。

244行目以下は、プロファイルと質問の選択肢づくりのためのシステムです。未完成で利便

性はよくありません。しかし結構使えます。試してみてください。