## 第8章 消費者の選択と離散選択モデル
## 顕示選好の理論
Kreps (1988) "Notes on the Theory of Choice"に基づいて,単一個人意思決定モデルの基礎的な考え方を説明します。
<span class="markp">「選択」(choice)という現象は,ある集合$A$がある個人にとっての実際に選択可能な選択肢の集合であったときに,その中から個人によって1つの選択肢$a \in A$が選ばれる,という現象</span>をいいます。
ここに,<span class="markp">「選ぶ」というのは,第三者に観察できる行為として選ぶ,ということに限って用いられます。</span>
また,問題となっている集合$A$の各要素$a \in A$を「選択肢」(alternative)と呼びます。
選択現象を問題にしている選択肢$a$が確率的構造を持っているとき,その選択肢をとくに**クジ**(lottery)と呼びます。
説明するべき対象を選択肢とします。
$$
X \supseteq A \mapsto a
$$
ここで$A$は選択肢の集合で,$a$はその選択肢を選んだ結果となります。$X$は整合性を問題にできる選択肢集合のいちばん最大のもの,となります。
$X$上の,この人の選択関数
$$
C : X \subseteq A \mapsto C(A) \subseteq X
$$
が安定的に存在すると仮定します。
ここで$C(A)$は,$A$の中からこの人が選んだ選択肢集合を表します。
$X$を考察する選択行動で,選択の対象となりうる潜在的な選択肢を集めた集合を表す。
選択集合とは,ある$A \in \mathcal{P}(X)$が実際に選択可能な選択肢の集合であったときに,その中から1つの選択肢が選ばれる現象をいいます。
「選ばれる」といういうとき,現に選ばれた1つの選択肢以外にも「それでも同様に良かった」というものがあるとき,それらの「そのどれでも良かった」選択肢を全て集めた集合$C$を,$A$からの選択結果とみなします。
選択関数を定義すると,
$C: \mathcal{P}(X) \to \mathcal{P}(X)$が,
$$
\forall A \in \mathcal{P}(X); \ C(A) \subseteq A
$$
であるとき,$X$上の選択関数(choice function)である,といいます。
ここで,$\mathcal{P}(X)$は,$X$の部分集合1つ1つを全部集めてできる冪集合(power set)のうち,$X$の中から二者択一の結果だけを集めたデータを表します。
### 選好モデル
二項関係(binary relation)を定義します。
$X$の(たまたま同じであることを許す)2つの要素について語られた関係が,$X$上の二項関係(binary relation)であるとは,
$X \times X$のすべての要素$(x,y)$について,$x$は$y$に対してその関係にあるか,またはその関係にないか,を必ず一方をいうことができる場合を言います。
つまり,選択肢集合$A$に選択肢$x$と$y$があり,その人の選択結果$C(\{x,y\}) = ?$を見ます。
その人が選択するものは,
$$
\begin{aligned}
C(\{x,y\}) &= \phi \quad \text{$x$も$y$も選べたのに選ばなかった。}\\
C(\{x,y\}) &= \{x\} \quad xを選び,yを選ばなかった\\
C(\{x,y\}) &= \{y\} \quad yを選び,xを選ばなかった\\
C(\{x,y\}) &= \{x,y\} \quad xもyも選んだ。
\end{aligned}
$$
### 選好
$X$ 上の選択関数 $C: \mathcal{P}(X) \rightarrow \mathcal{P}(X)$ が与えられたとき,$X$ の(それがたまたま同じであることを許す)2つの要素についての関係を,各 $(x,y) \in X \times X$ に対して,$y \not \in C(\{x,y\})$ なら,$x$ は $y$ に対してその関係にあり,$y \in C(\{x,y\})$ なら $x$ は $y$ に対してその関係にない,というやり方で定められるとき,その関係(それは二項関係である)を,(選択関数 $C:\mathcal{P}(X) \rightarrow \mathcal{P}(X)$ によって生成された) $X$ 上の**強選好**(strict preference)といいます。
この二項関係を記号 $\succ$ で表わし,$x$ が $y$ に対して強選好の関係にあるとき,$x$ を $y$ よりも厳密に選好する,あるいは $x$ は $y$ よりも厳密に選好されるといって,$x \succ y$ と書き,$x$ が $y$ に対して強選好の関係にないとき,$x$ は $y$ よりも厳密に選好されるわけではない,といって $x \not \succ y$ と書きます。
ある $X$ 上の強選好 $\succ$ は,それが定義されたもとの選択関数 $C : \mathcal{P}(X) \rightarrow \mathcal{P}(X)$を明示する必要があるときは,$\succ _c$と書く。
$x,y$の二者択一の結果,$C(\{ x,y \})$を,
$$
\begin{aligned}
& x \not \succ y \Longleftrightarrow y \in C(\{x,y\})\leftarrow \text{$x$は$y$より厳密に選好されるわけではない。}\\
& x \succ y \Longleftrightarrow y \not \in C(\{x,y\})\leftarrow xはyより厳密に選好される。
\end{aligned}
$$
のように書いたものを,この人の(強)選好という。
つぎに、$X$ 上の強選好 $\succ$ が与えられたとき、各$A \in \mathcal{P}(X)$に対し、
$$
C(A, \succ) = \{ x \in A \mid \nexists y \in A \quad \text{s.t.} \quad y \succ x \}
$$
を対応づける(集合体集合の)関数 $C(\cdot , \succ) : \mathcal{P}(X) \rightarrow \mathcal{P}(X)$ を、$X$ 上の選択の**選好モデル**(preference model)といいます。
まとめると、
$$
C : \mathcal{P}(X) \rightarrow C(A) \in \mathcal{P}(X)
$$
のうち、「二者択一の結果を、$X$の各ペア$(x,y)$ ごとに、$x \succ y$ か $x \not \succ y$ かを書いて、書いたものを$X$上の(この人の)強選好」といいます。
選好モデルとは、
$$
C : \mathcal{P}(X) ∋ A \rightarrow C(A) \in \mathcal{P}(X)
$$
を
$$
\begin{aligned}
& C(\cdot, \succ) : \mathcal{P}(X) ∋ A \rightarrow C(A, \succ) \in \mathcal{P}(X)\\
& \text{such that} \quad C(A, \succ) = \{ x \in A \mid \nexists y \in A \quad \text{s.t.} \quad y \succ x \}
\end{aligned}
$$
となり、この選好$\succ$をもつ人が、実際に$A$に直面したときに選ぶと予測するということを意味します。
これは$C(\cdot , \succ)$のデータから予測されます。
$C(\cdot , \succ) : \mathcal{P}(X) ∋ A \rightarrow C(A, \succ) \in \mathcal{P}(X)$は、$C : \mathcal{P}(X) ∋ A \rightarrow C(A) \in \mathcal{P}(X)$のうち、$|X|^2$個のデータで、$C : \mathcal{P}(X) ∋ A \rightarrow C(A) \in \mathcal{P}(X)$全体の$2^{|X|}$個の値を予測しているのです。
合理性モデルでは、「もし・・・なら、$\forall A \in \mathcal{P}; C(A, \succ) = C(A)$となります。
ふりかえると、
- 説明する対象は、選択関数 $C : \mathcal{P}(X) \in A \mapsto C(A) \in \mathcal{P}(X)$ である。
- データを取ってくるパラメータとしての選好$\succ$ (つまり、$X$上のすべての二者択一の結果)を考える。
- 選択を説明するモデルは選好モデル$C(A, \succ) = \{x \in A \mid \nexists y \in A \quad \text{s.t.} \quad y \succ x \}$
- 選択理論とは、「$C: \mathcal{P}(X) \rightarrow \mathcal{P}(X)$ が・・・の条件を満たすとき、$C$のうち××から作った$C(A, ××) = C(A)」が成り立つような「・・・」と「××」を考えます。
ただ、選好$\succ$としてどんなものでも認めてしまうと、
$$
\exists \succ, \exists A \quad \text{s.t.} \quad C(A, \succ) = \emptyset
$$
となる場合があります。
たとえば、$A = X = \{x, y, z\}$で、
$C(\{x,y\}) = \{x\}$、
$C(\{y,z\}) = \{y\}$、
$C(\{x,z\}) = \{z\}$ かつ、
$C(A) \not = \emptyset$. 場合、$C(\{x,y,z\}) = \emptyset$ となります。
つまり、
- $z \succ x$ より $x \not \in C(\{x,y, z\}, \succ)$
- $x \succ y$ より $y \not \in C(\{x,y, z\}, \succ)$
- $y \succ z$ より $z \not \in C(\{x,y, z\}, \succ)$
すなわち、$C(\{x,y,z\}, \succ) = \emptyset$ となります。
て、次のように選択関数 $C_{\succ} : \mathcal{P}(X) \rightarrow \mathcal{P}(X)$ を定めます。
では、どのような二者択一行動を示す人なら、その人の選好モデルは完結性があるのかを考えます。
次の2つの条件が満たされるとき、選好$\succ$は**完結性**(completeness)を持つといいます。
1. **反対称性**(asymmetry) : $\forall x,y \in X;$, 「$x \succ y$ かつ $y \succ x$」ということはない。つまり二者択一行動が$C(\{x,y\}) = \{\emptyset\}$ということがない。
2. **負推移性**(negative transitivity) : $\forall x,y \in X;$, 「もし $x \not \succ y$ かつ $y \not \succ z$」ならば「$x \not \succ z$」である。
つまり二者択一行動としては、もし$y \in C(\{x,y\})$ かつ $z \in C(\{y,z\})$ ならば、$z \in C(\{x,z\})$ である。
これより、$X$ 上の強選好 $\succ$ は、次のように定義できます。
:::{.callout-important}
## 反対称性・負推移性
$$
\nexists (x,y) \in X \times X; \quad \text{s.t} \quad x \succ y, \quad y \succ x
$$
であるとき、**反対称的**(assymmetric)である、あるいは反対称性を満たすといい、
$$
\forall x,y,z \in X; \quad \text{if} \quad x \not \succ y, \quad y \not \succ z, \quad \text{then} \quad x \not \succ z
$$
であるとき、**負推移的**(negatively transitive)である、あるいは負推移性を満たすといいます
:::
:::{.callout-important}
## 選好関係
$X$ 上の強選好 $\succ$ は、反対称的かつ負推移的であるとき、$X$上の**選好関係**(preference relation)であるといいます。
:::
選好$\succ$が反対称的かつ負推移的であるとき、**推移的**(acyclic)であるといい、
$x_1 \succ x_2$ かつ $x_2 \succ x_3$ かつ $\cdots$ かつ
$x_{n-1} \succ x_n$ なら $x_1 \not = x_n$ となります。
### $X$が有限集合の場合
$X$ 上の強選好 $\succ$ が
$$
\forall x \in X; \quad x \not \succ x
$$
であるとき、**非反射的**(irreflexive)である、あるいは非反射性を満たすといいます。
:::{.callout-note}
## 推移性
$X$ 上の強選好 $\succ$ は、
$$
\forall x, y, z \in X; \quad \text{if} \quad x \succ y, \ y \succ x, \quad \text{then} \quad x \succ z
$$
であるとき、**推移的**(transitive)である、あるいは推移性を満たすといいます。
証明は省略(背理法により示せます)。
:::
:::{.callout-note}
## 非周期性
次に、$X$ 上の強選好 $\succ$ は、
$$
\begin{aligned}
&\forall x_1, x_2, \cdots, x_n \in X;\\
&\quad \text{if} \quad x_1 \succ x_2, \ x_2 \succ x_3, \ \dots, \ x_{n-1} \succ x_n, \quad \text{then} \quad x_1 \not = x_n
\end{aligned}
$$
であるとき、**非周期的**(acyclic)である、あるいは非周期性を満たすといいます。
証明は省略(帰納法により示せます)。
:::
:::{.callout-important}
$X$ 上の強選好 $\succ$ は、$X$上の選好関係ならば、非反射的かつ推移的かつ非周期的である。
:::
$X$上の選択関数 $C : \mathcal{P}(X) \rightarrow \mathcal{P}(X)$は、
$$
\begin{aligned}
\forall A \in \mathcal{P}(X); \quad \text{if} \quad A \not = \emptyset \quad \text{then} \quad C(A) \not = \emptyset
\end{aligned}
$$
であるとき、**非空**(nonempty)であるといいます。
これらの定理と定義から、次の定理が示せます。
:::{.callout-important}
$X$ を有限集合($|X| < \infty$)とします。
$X$ 上の強選好$\succ$は、$X$上の(反対称的と負推移性を満たす)選好関係ならば、$A \not = \emptyset$のとき、$C(\cdot, \succ): \mathcal{P}(X) \rightarrow \mathcal{P}(X)$は非空となります。
:::
が選好関係であるとき、$X$が有限集合であれば、任意の$A \in \mathcal{P}(X)$に対し、$C(A, \succ) \not = \emptyset$ となります。
ここまでの説明により、ある個人の選択行動を説明するために必要な条件は、
<span class="markp">ある個人が(有限の)選択肢の中から選び取るとき、その人の選好が反対称的かつ負推移的であれば、選択肢集合が非空なら、その人がもつ選択関数は非空である</span>、ということがわかりました。
## 顕示選考理論
選択肢集合$X$が有限であるとします。
すると、$X$上の強選好$\succ$が$X$上の選好関係であるならば、
$C(\cdot , \succ) : \mathcal{P}(X) \rightarrow \mathcal{P}(X)$は非空まつ**ハウタッカーの公理**(Houthakker's axiom)を満たします。
:::{.callout-important}
## ハウタッカーの公理
$X$上の選択関数$C : \mathcal{P}(X) \rightarrow \mathcal{P}(X)$は、
$$
\begin{aligned}
& \forall x,y \in X, \quad \forall A,B \in \mathcal{P}(X); \\
& \quad \text{if} \quad x,y \in A \cap B, \quad x \in C(A), \quad y \in C(B)\\
& \quad \text{then} \quad x \in C(B), \quad y \in C(A)
\end{aligned}
$$
であるとき、**ハウタッカーの公理**を満たす、といいます。
:::
具体例で説明します。
たとえば、あなたの買い物の選択肢として
- $A=\{\text{みかん, リンゴ, バナナ}\}$、
- $B=\{\text{バナナ, リンゴ, ぶどう}\}$
があるとします。
このとき、あなたは
- $A$ の中からリンゴを選び($C(A)=\{\text{リンゴ}\}$)、
- $B$ の中からバナナを選ぶ($C(B)=\{\text{バナナ}\}$)
とします。
リンゴとバナナはいずれも $A\cap B$ に含まれています。
ハウタッカーの公理は、この状況のもとでは、
選択肢集合が $B$ に変わってもリンゴが選ばれ、
選択肢集合が $A$ に変わってもバナナが選ばれなければならない、
ということを要請します。
つまり、共通して含まれる選択肢については、
集合ごとに選択の優劣が入れ替わるような行動は許されない、
という選択の一貫性を表しています。
:::{.callout-note}
## センの$\alpha$規則性
$X$上の選択関数$C : \mathcal{P}(X) \rightarrow \mathcal{P}(X)$は、
$$
\begin{aligned}
& \forall x \in X, \quad \forall A,B \in \mathcal{P}(X);\\
& \quad \text{if} \quad x \in B \subset A, \quad x \in C(A),\\
& \quad \text{then} \quad x \in C(B)
\end{aligned}
$$
であるとき、センの**$\alpha$規則性**(Sen's property $\alpha$)を満たす、といいます。
:::
:::{.callout-tip}
## センの$\alpha$規則性の具体例
あなたの選択肢の全集合を$X$とし、
$A=\{\text{みかん, リンゴ, バナナ}\}$、
$B=\{\text{リンゴ, バナナ}\}$
とします。このとき $B \subset A$ が成り立っています。
いま、あなたが集合 $A$ からリンゴを選んでいる、すなわち
$C(A)=\{\text{リンゴ}\}$
であるとします。リンゴは $B$ にも含まれています。
センの $\alpha$ 規則性は、この状況において、選択肢集合が $A$ からその部分集合である $B$ に縮小されても、リンゴは引き続き選ばれなければならない、すなわち
$C(B)=\{\text{リンゴ}\}$
であることを要請します。
言い換えると、ある選択肢がより大きな集合の中で選ばれていたのであれば、その選択肢を排除しない範囲で選択肢集合を減らしても、その選択肢が選ばれなくなることは許されない、という性質を表しています。
:::
:::{.callout-note}
## センの$\beta$規則性
$X$上の選択関数$C : \mathcal{P}(X) \rightarrow \mathcal{P}(X)$は、
$$
\begin{aligned}
&\forall x,y \in X, \quad \forall A,B \in \mathcal{P}(X); \\
&\quad \text{if} \quad x,y \in C(A), \quad A \subset B, \quad y \in C(B), \\
&\quad \text{then} \quad x \in C(B)
\end{aligned}
$$
であるとき、センの**$\beta$規則性**(Sen's property $\beta$)を満たす、といいます。
:::
:::{.callout-tip}
## センの$\beta$規則性の具体例
選択肢の全集合を $X$ とし、
$A=\{\text{リンゴ, バナナ}\}$、
$B=\{\text{みかん, リンゴ, バナナ}\}$
とします。このとき $A \subset B$ が成り立っています。
いま、集合 $A$ からはリンゴとバナナの両方を選んでいる、すなわち
$C(A)=\{\text{リンゴ, バナナ}\}$
とします。
次に、選択肢が増えた集合 $B$ からはバナナを選んでいる、すなわち
$C(B)=\{\text{バナナ}\}$ であるとします。
センの $\beta$ 規則性は、この状況のもとでは、集合 $A$ で同時に選ばれていたリンゴとバナナのうち、集合 $B$ に移ってもバナナが選ばれているのであれば、リンゴもまた集合 $B$ から選ばれなければならない、ということを要請します。
したがって、この規則性を満たす選択関数では、
$C(B)$ は $\{\text{バナナ}\}$ ではなく、少なくともリンゴを含み、たとえば
$C(B)=\{\text{リンゴ, バナナ}\}$ でなければならない、ということになります。
この例は、集合を拡大したときに、もともと同時に選ばれていた選択肢の一部だけが残るような振る舞いを排除する性質を具体的に示しています。
:::
これらの公理と規則性から次の定理が示せます。
:::{.callout-important}
## 定理
$X$上の選択関数$C : \mathcal{P}(X) \rightarrow \mathcal{P}(X)$が非空とします。
このとき、$C: \mathcal{P}(X) \rightarrow \mathcal{P}(X)$
がハウタッカーの公理を満たすための必要十分条件は、それがセンの$\alpha$規則性と$\beta$規則性を満たすことです。
:::
具体例で説明してみます。
$X=\{\text{みかん, リンゴ, バナナ, ぶどう}\}$ とします。あなたの好みが
$$
\text{リンゴ} \sim \text{バナナ} \succ \text{みかん} \succ \text{ぶどう}
$$
だとします。
つまりリンゴとバナナは同程度に最も好ましく、次にみかん、最後にぶどう、という順番です。
この好みに基づく選択関数 $C$ を、「与えられた集合の中の“最も好ましいもの”をすべて選ぶ」と定めます。
つまり任意の $A\subseteq X$ に対して
- $A$ にリンゴまたはバナナが含まれていれば、$C(A) = A\cap\{\text{リンゴ, バナナ}\}$
- そうでなければ(リンゴもバナナも無いなら)、残りの中で最上位のもの(ここではみかん、なければぶどう)を選ぶ
というルールです。たとえば
- $C(\{\text{みかん, リンゴ, バナナ}\})=\{\text{リンゴ, バナナ}\}$,
- $C(\{\text{バナナ, ぶどう}\})=\{\text{バナナ}\}$,
- $C(\{\text{みかん, ぶどう}\})=\{\text{みかん}\}$
のようになります。
この選択関数$C$ はセンの $\alpha$ 規則性を満たします。理由は、ある集合 A で選ばれた x は A の中で「最上位」なので、x を含む部分集合 B\subset A に選択肢を減らしても、x より上位のものが新たに現れることはなく、x は依然として最上位(最大元)だからです。
また \beta 規則性も満たします。実際、ある集合 A で x,y\in C(A) ということは、x と y がともに A の中で最上位(この例ではリンゴとバナナのように同率首位)ということです。集合を広げた B\supset A でも、もし y が依然として選ばれているなら(y\in C(B))、y より上位の選択肢は B に存在しないので、同率首位である x も排除されず x\in C(B) となります。
ここから、ハウタッカーの公理を満たしていることを、同じ果物で具体的に確かめます。たとえば
A=\{\text{みかん, リンゴ, バナナ}\},\quad
B=\{\text{リンゴ, バナナ, ぶどう}\}
とおくと、
C(A)=\{\text{リンゴ, バナナ}\},\quad
C(B)=\{\text{リンゴ, バナナ}\}
です。いま x=\text{リンゴ},\ y=\text{バナナ} とすると、確かに x,y\in A\cap B かつ x\in C(A)、y\in C(B) が成り立ちます。そして結論として要求される x\in C(B)、y\in C(A) も実際に成り立っています(どちらの集合でもリンゴとバナナが選ばれているため)。
また、$X$上の選択関数$C : \mathcal{P}(X) \rightarrow \mathcal{P}(X)$ が非空( $A\not = \emptyset$なら$C(A) \not = \emptyset$ )かつハウタッカーの公理を満たすならば、$\succ_c$は$X$上の選好関係$\succ$であり(反対称性と負推移性を満たす)であり、しかも$A \not = \emptyset$ならば、
$$
\forall A \in \mathcal{P}(X); \quad C(A, \succ_c) = C(A)
$$
が成り立ちます。
```{r}
pacman::p_load(tidyverse, readxl, modelsummary, mfx, DescTools, mlogit)
```
```{r}
# コード8-1
df1 <- data.frame(
Y = c(0, 0, 0, 0, 0, 1, 1, 1, 1),
X = c(3.4, 5.22, 7.06, 2.81, 4.11, 10.34, 13.67, 15.99, 9.09)
)
lpm1 <- lm(Y ~ X, data = df1)
pred_lpm1 <- predict(lpm1)
pred_lpm1
```
```{r}
# コード8-2
choice_df <- readxl::read_xlsx("data/choice_data.xlsx")
head(choice_df)
```
```{r}
# コード8-3
probit1 <- glm(y1 ~ p1 + a1,
family = binomial(link = probit),
data = choice_df)
summary(probit1)
```
```{r}
# コード8-4
ols1 <- lm(y1 ~ p1 + a1,
data = choice_df)
logit1 <- glm(y1 ~ p1 + a1,
family = binomial(link = logit),
data = choice_df)
models <- list()
models[["Linear probability model"]] <- ols1
models[["Probit model"]] <- probit1
models[["Logit model"]] <- logit1
modelsummary(models,
title = "モデル比較",
notes = "Values in [ ] show robust standard errors",
stars = TRUE,
statistic = "std.error",
vcov = "robust",
gof_map = "nobs")
# 適合度指標において,サンプルサイズ ("nobs") のみ表示するという指示
```
```{r}
# コード8-5
# Average Marginal Effects(限界効果の平均)
probit1_ame <- probitmfx(y1 ~ p1 + a1,
data = choice_df, atmean = FALSE)
probit1_ame
```
```{r}
# コード8-7
# Marginal Effects at Mean(平均値における限界効果)
probit1_mem <- probitmfx(y1 ~ p1 + a1,
data = choice_df, atmean = TRUE)
probit1_mem
```
```{r}
# コード8-8
marginal <- c(
"p1 marginal" = "p1",
"a1 marginal" = "a1"
)
marg_model <- list(
"(1) Probit_AME" <- probit1_ame,
"(2) Probit_MEM" <- probit1_mem
)
marg_sum <- modelsummary(
marg_model,
statistic = "std.error",
coef_map = marginal,
stars = TRUE,
shape = term:component ~ model,
add_rows = data.frame("Marginal effect type",
"Average Marginal Effect",
"Marginal Effect at Mean"),
title = "限界効果サマリー",
gof_map = "nobs"
)
marg_sum
```
```{r}
# コード8-9
DescTools::PseudoR2(probit1)
# コード8-10
# 価格差変数作成
choice_df <- choice_df %>%
mutate(p_ratio = p1 - p2)
probit2 <- glm(y1 ~ p_ratio + a1 + a2,
family = binomial(link = probit),
data = choice_df)
summary(probit2)
# コード8-11
DescTools::PseudoR2(probit2)
# コード8-12
probit2_ame <- probitmfx(y1 ~ p_ratio + a1 + a2,
data = choice_df, atmean = FALSE)
probit2_ame
```
```{r}
# コード8-13
data(Cracker, package = "mlogit")
head(Cracker, n = 20)
# コード8-14
cracker <- mlogit.data(Cracker, choice = "choice", shape = "wide",
varying = c(2:13))
head(cracker, n = 20)
# コード8-15
ml_cracker <- mlogit(choice ~ price | 1 | disp + feat, probit = FALSE,
data = cracker)
summary(ml_cracker)
```
```{r}
# コード8-16
# パラメータの推定値(beta)の抽出
beta <- probit2$coefficients
# パラメータbeta と説明変数の線形結合を作成(beta_0 は定数項なので1 をかける)
est_probit2 <- cbind(1, choice_df$p_ratio, choice_df$a1,
choice_df$a2) %*% beta
# pnorm によって標準正規分布の分布関数による計算を実行する。
# 製品1(c1) を選ぶ確率の予測値
pred_probit_c1 <- pnorm(est_probit2)
mean(pred_probit_c1)
# コード8-17
# ロジットモデルの場合
logit2 <- glm(y1 ~ p_ratio + a1 + a2,
family = binomial(link = logit),
data = choice_df)
beta_logit <- logit2$coefficients
est_logit2 <- cbind(1, choice_df$p_ratio, choice_df$a1,
choice_df$a2) %*% beta_logit
pred_logit_c1 <- (exp(est_logit2)) / (1 + exp(est_logit2))
mean(pred_logit_c1)
# コード8-18
choice_df_v <- choice_df %>%
mutate(p1_v = p1 - 1,
p_ratio_v = p1_v - p2)
est_probit_v <- cbind(1, choice_df_v$p_ratio_v, choice_df_v$a1,
choice_df_v$a2) %*% beta
# pnorm によって標準正規分布の分布関数による計算を実行する。
# 製品1(c1) を選ぶ確率の予測値
pred_probit_v <- pnorm(est_probit_v)
mean(pred_probit_v)
```