Skip to content

Commit

Permalink
pvalue explanation again
Browse files Browse the repository at this point in the history
  • Loading branch information
Tetsu HARUYAMA authored and Tetsu HARUYAMA committed Oct 9, 2023
1 parent 357d5f7 commit 933734c
Showing 1 changed file with 74 additions and 26 deletions.
100 changes: 74 additions & 26 deletions 17_Panel.ipynb
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,7 @@
"from scipy.stats import gaussian_kde, norm, t\n",
"from linearmodels.panel.data import PanelData\n",
"from linearmodels.panel import PanelOLS, PooledOLS, RandomEffects, compare\n",
"from statsmodels.formula.api import ols\n",
"\n",
"# 警告メッセージを非表示\n",
"import warnings\n",
"warnings.filterwarnings(\"ignore\")"
"from statsmodels.formula.api import ols"
]
},
{
Expand Down Expand Up @@ -1859,14 +1855,18 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"heading_collapsed": true
},
"source": [
"## 標準誤差の問題"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"hidden": true
},
"source": [
"(式3)の固定効果モデルを考えよう。パネル・データの場合,次の2つの問題が発生する場合がある。\n",
"* 残差の不均一分散\n",
Expand All @@ -1891,7 +1891,8 @@
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true
"heading_collapsed": true,
"hidden": true
},
"source": [
"### 分散の確認"
Expand Down Expand Up @@ -2025,15 +2026,19 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"heading_collapsed": true,
"hidden": true
},
"source": [
"### 対処方法"
]
},
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true
"heading_collapsed": true,
"hidden": true
},
"source": [
"#### 説明と計算"
Expand Down Expand Up @@ -2140,19 +2145,38 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"hidden": true
},
"source": [
"```{warning}\n",
"クラスター頑健推定について次の点に注意しよう。\n",
"* 大標本($N\\rightarrow\\infty$)の下で有効となる。\n",
"* 個体数が十分に大きい必要がある。個体数が小さい場合に使うと,問題を悪化させる可能性がある。\n",
"* 個体数よりも時系列のデータが長いパネル・データの場合は意味がない推定となってしまう。\n",
"```"
]
},
{
"cell_type": "markdown",
"metadata": {
"heading_collapsed": true,
"hidden": true
},
"source": [
"#### `p`値について"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"hidden": true
},
"source": [
"一方で,`linearmodels`でクラスター頑健推定を使う場合,`p`値の計算については以下で説明する点について覚えておくと良いだろう。次の変数を定義しよう。\n",
"\n",
"* $n$:各個体の観測値\n",
"* $G$: 個体数(クラスターの数,英単語Groupの**G**)\n",
"* $G$: 個体数(クラスターの数,Groupの**G**)\n",
"* $N=nG$: 標本の大きさ\n",
"* $k$: 定数項以外の説明変数の数\n",
"\n",
Expand All @@ -2162,7 +2186,9 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"hidden": true
},
"outputs": [],
"source": [
"# 自動計算のp値\n",
Expand All @@ -2173,14 +2199,16 @@
"pval_manual_calc = 2*(\n",
" 1-t.cdf(res_fe_clus1.tstats['married'], dof) )\n",
"\n",
"print('`marreid`のp値\\n'+'-'*27)\n",
"print('marreidのp値\\n'+'-'*27)\n",
"print(f'自動計算:  {pval_auto_calc}')\n",
"print(f'「手動計算」:{pval_manual_calc}')"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"hidden": true
},
"source": [
"同じ値だということが分かる。\n",
"\n",
Expand All @@ -2190,23 +2218,29 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"hidden": true
},
"outputs": [],
"source": [
"res_fe_clus1.entity_info"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"hidden": true
},
"source": [
"データセットはbalanced dataset($n_1=n_2=\\cdots=n_G$)であり,それぞれの個体には`8`の観測値があることが分かる。また`total`は個体の総数を表しているので,次の変数を作成しよう。"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"hidden": true
},
"outputs": [],
"source": [
"G = int( res_fe_clus1.entity_info['total'] )\n",
Expand All @@ -2217,33 +2251,41 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"hidden": true
},
"source": [
"この値を使い`p`値を計算してみよう。"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"hidden": true
},
"outputs": [],
"source": [
"2 * ( 1-t.cdf(res_fe_clus1.tstats['married'], dof_stata) )"
]
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"hidden": true
},
"source": [
"小数点第3位までは`linearmodels`と同じ値となっている。若干ではあるが,Stataの結果と異なる事になることを覚えておくと,後になって戸惑うことを避けることができるだろう。\n",
"\n",
"では,どちらを使えば良いのだろうか。第一に,クラスター頑健推定は大標本($N\\rightarrow\\infty$)の下で有効となり,個体数$G$が十分に大きい必要がる。$G$が小さい場合に使うと,問題を悪化させる可能性が高い。第二に,自由度が`30`以上の`t`分布の場合,標準正規標分布との誤差は非常に小さな値になる。"
"では,どちらを使えば良いのだろうか。Stataが使う自由度$G-1$の方が一般的であるため,その慣例に従えば良いだろう。しかし,自由度が`30`以上の`t`分布の場合,標準正規標分布との誤差は非常に小さな値になる。"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"metadata": {
"hidden": true
},
"outputs": [],
"source": [
"print(f'linearmodelsの自由度:{dof}')\n",
Expand All @@ -2252,9 +2294,15 @@
},
{
"cell_type": "markdown",
"metadata": {},
"metadata": {
"hidden": true
},
"source": [
"2つのケースとも,自由度は大きいため,上の計算が示すように,`p`値の差は大きくない。データを$N\\rightarrow\\infty$と近似でき,且つ,個体数$G$が十分に大きいと判断される場合,自由度の違いは検定結果の大きな差として現れないだろう。もちろん,ボーダーラインの場合もあり得るが,その場合は,慎重を期すために$G-1$の自由度を使ってはどうだろうか。"
"2つのケースとも,自由度は大きいため,上の計算が示すように,`p`値の差は大きくない。従って,手元のデータが$N\\rightarrow\\infty$と近似でき,且つ,個体数$G$が十分に大きいと判断される場合は,次のように使い分けるのも一案だろう。\n",
"* 暫定的な推定には,`linearmodels`のデフォルトの`p`値を使い,最終盤の推定式を模索する。\n",
"* 卒論などの提出版には,自由度$G-1$とする`p`値を「手計算」する。\n",
"\n",
"いずれ`linearmodels`も変更するかもしれないが,現状では,この方法が最も現実的だろう。"
]
}
],
Expand Down

0 comments on commit 933734c

Please sign in to comment.