【Python計測】パラメトリック仮説検定


この論文では、変数の有意性検定 (t 検定) を研究します。

重線形回帰モデルの場合、方程式全体の線形関係は有意ですが、各説明変数が被説明変数に及ぼす影響が有意であることを意味するわけではありません。変数はモデル内に保持されます。変数が被説明変数にわずかな影響を与える場合は、その変数を削除して、より単純なモデルを構築する必要があります。最も一般的に使用される変数有意性検定は t 検定です。

1. 仮説検証

仮説検定とは、サンプル情報を使用して仮説が正しいかどうかを判断するプロセスであり、最初に全体のパラメータについていくつかの仮説を立て、次にサンプル情報を使用して仮説が正しいかどうかを判断します。

1.1 帰無仮説と対立仮説

帰無仮説: 研究者が証拠を収集したいと考えている仮説。帰無仮説とも呼ばれます。H 0 H_0H0特急。

対立仮説: 研究者が裏付ける証拠を収集したいと考えている仮説。H 1 H_1を使用して研究仮説とも呼ばれます。H1特急。

1.2 片側検定

対立仮説に特定の方向があり、「>」または「<」の仮定が含まれる場合、片側検定または片側検定と呼ばれます。

(1) 片側右手検定: 拒絶領域は分布の右端にあります。

单側检验:H 0 : μ ≤ μ 0 、 H 1 : μ > μ 0 H_0:\mu \leq \mu_0,H_1:\mu> \mu_0H0:メートルメートル0H1:メートル>メートル0, または:H 0 : μ = μ 0 , H 1 : μ > μ 0 H_0:\mu = \mu_0,H_1:\mu> \mu_0H0:メートル=メートル0H1:メートル>メートル0

有意水準α \alphaを与えるとα、臨界値t α ( n − k − 1 ) t_{\alpha}(nk-1) をtある( nk1 ),若t > t α ( n − k − 1 ) t>t_{\alpha}(nk-1)t>tある( nk1 )、帰無仮説は棄却されます。

(2) 片側左手検定: 拒絶領域は分布の左端にあります。

片側検定: H 0 : μ ≥ μ 0 、H 1 : μ < μ 0 H_0:\mu \geq \mu_0,H_1:\mu< \mu_0H0:メートルメートル0H1:メートル<メートル0, または: H 0 : μ = μ 0 , H 1 : μ < μ 0 H_0:\mu = \mu_0,H_1:\mu< \mu_0H0:メートル=メートル0H1:メートル<メートル0

有意水準α \alphaを与えるとα、臨界値t α ( n − k − 1 ) t_{\alpha}(nk-1) をtある( nk1 ),若t < − t α ( n − k − 1 ) t<-t_{\alpha}(nk-1)t<tある( nk1 )、帰無仮説は棄却されます。

[外部リンク画像の転送に失敗しました。ソース サイトには盗難防止リンク メカニズムがある可能性があります。画像を保存して直接アップロードすることをお勧めします (img-k5KlHGEb-1659423356285)(https://files.mdnice.com/user/ 29206/8669d2fe-530f-45ae -b9fe-004e33499e0a.png)]

1.3 両側検定

対立仮説に特定の方向性がなく、「≠」の仮説のみが含まれる場合、両側検定または両側検定と呼ばれます。

二重検定: H 0 : μ = μ 0 、H 1 : μ ≠ μ 0 H_0:\mu = \mu_0,H_1:\mu \neq \mu_0H0:メートル=メートル0H1:メートル=メートル0

有意水準α \alphaを与えるとα、臨界値t α 2 ( n − k − 1 ) t_{\frac{\alpha}{2}}(nk-1) をt2ある( nk1 ),若∣ t ∣ > t α 2 ( n − k − 1 ) |t|>t_{\frac{\alpha}{2}}(nk-1)t >t2ある( nk1 )、帰無仮説は棄却されます。

1.4 演習

ある研究機関の推計では、ある都市の世帯所有率は30%を超えているという。この推定が正しいかどうかを確認するために、研究機関はテスト用のサンプルをランダムに選択しました。テストのために帰無仮説と対立仮説を述べて書くようにしてください。

分析してみましょう。市内で車を所有する世帯の割合の真の値を y とします。明らかに、研究者が裏付ける証拠を収集したいと考えている仮説は、「この都市では車を所有する世帯の割合が 30% を超えている」であるため、確立された帰無仮説と対立仮説は次のように書くことができます。

H0: y = 30% (または y ≤ 30%)
H1: y > 30%

2. ケース: 片側右手検定

Woodridge の『計量経済学入門: 現代の手法』の「第 4 章 重回帰分析: 推論」のケース 4.1 を例として、WAGE1 の 526 人の労働者の観察データを使用して、彼らの賃金、教育レベル、および仕事の経験間の関係を調査します。そして在職期間。次のように重線形回帰モデルを構築します。
log (賃金) = β 0 + β 1 educ + β 2 exper + β 3 tenure + u log(wage)=\beta_0+\beta_1educ+\beta_2exper+\beta_3tenure+uログ(賃金) _ _ _ _ _=b0+b1教育_ _ _+b2当たり_ _ _+b3在職期間_ _ _+あなた

  • log(wage): 賃金の対数。lwage としても記録されます。
  • educ: 教育レベル
  • exper: 実務経験
  • tenure: 在職期間の長さ

モデルを構築するコードは次のとおりです。

import wooldridge as woo
import statsmodels.formula.api as smf
from scipy import stats

wage1 = woo.dataWoo('wage1')

#建立回归模型:
reg = smf.ols(formula='lwage ~ educ + exper + tenure', data = wage1)
results = reg.fit()
print(results.summary())

モデルの回帰結果は次のとおりです。
log (賃金) ^ = 0.2844 + 0.0920 educ + 0.0041 exper + 0.0221 tenure + u \widehat{log(wage)}=0.2844+0.0920educ+0.0041exper+0.0221tenure+uログ(賃金) _ _ _ _ _ =0.2844+0.0920教育_ _ _+0.0041エキスパー_ _ _+0.0221テネレ_ _ _ _+u
work experience exper の傾き係数は 0.0041 です。この例では、係数が 0 であるかどうかをさらにテストします。

片側代替構築テスト方法を使用します。つまり、H 0 : β exper = 0 、H 1 : β exper > 0 H_0:\beta_{exper} = 0,H_1:\beta_{exper}> 0H0:bエクスパー_ _ _=0 H1:bエクスパー_ _ _>0

1.1 t 統計量と臨界値の比較

コードは以下のように表示されます:

#1.计算样本量
n = len(wage1)
#2.计算自由度
df = n-3-1   #n为计算的样本量,3为自变量个数
#3.计算t统计量
t_exper = results.params['exper']/ results.bse['exper'] #params获得系数,bse获得系数标准误
#t_exper = results.tvalues['exper'] #tvalues直接获得t统计量
#4.计算拒绝临界值
a = 0.05 #显著性水平为5%
c = stats.t.ppf(1-a,df)
#5.比较t统计量和临界值大小
if t_exper > c:
	print('拒绝原假设,exper的回归系数显著大于0')
else:
	print('不能拒绝原假设,exper不显著')

この例では、t 統計量の計算結果は 2.39、棄却臨界値は 1.648 です。t 統計量は棄却臨界値より大きいため、帰無仮説は棄却され、exper 係数は 0 より大幅に大きくなります。

1.2 p値と有意水準の比較

p 値アプローチを採用することもできます。

#1.计算样本量
n = len(wage1)
#2.计算自由度
df = n-3-1   #n为计算的样本量,3为自变量个数
#3.计算t统计量
t_exper = results.params['exper']/ results.bse['exper'] #params获得系数,bse获得系数标准误
#t_exper = results.tvalues['exper'] #tvalues直接获得t统计量
#4.计算p值
pval = stats.t.cdf(-abs(t_exper), df)
#pval = 1-stats.t.cdf(abs(t_exper), df)
#5.比较p和显著性水平大小
a = 0.05 #显著性水平为5%
if pval < a:
	print('拒绝原假设,exper的回归系数显著大于0')
else:
	print('不能拒绝原假设,exper不显著')

p 値は 0.0086 で、有意水準 5% 未満であるため、帰無仮説は棄却されます。

3. 症例:片側左側テスト

Woodridge の『計量経済学入門: 最新の手法』の「第 4 章 重回帰分析: 推論」のケース 4.2 を例として、MEAP93 におけるアメリカ人学生の数学の成績に関連するデータを使用して、標準化された数学の成績に影響を与える要因を研究します。 . 教員の年収、登録生徒数、教員数などを掲載。次のように重線形回帰モデルを構築します。
math 10 = β 0 + β 1 totcomp + β 2 Staff + β 3 enroll + u math10=\beta_0+\beta_1totcomp+\beta_2staff+\beta_3enroll+u数学10 _ _=b0+b1トゥートコンプ_ _ _ _+b2さあ_ _ _+b3登録ます_+あなた

  • math10: 標準化された 10 点数​​学テストのスコア
  • totcomp: 教師の平均年収
  • スタッフ: 生徒 1,000 人あたりの教師の数
  • 登録: 登録された学生の数

モデルを構築するコードは次のとおりです。

import wooldridge as woo
import statsmodels.formula.api as smf
from scipy import stats

meap93 = woo.dataWoo('meap93')

#建立回归模型:
reg = smf.ols(formula='math10 ~ totcomp + staff + enroll', data = meap93)
results = reg.fit()
print(results.summary())

モデルの回帰結果は次のとおりです。
math 10 ^ = 2.2740 + 0.0005 totcomp + 0.0479 Staff − 0.0002 enroll \widehat{math10}=2.2740+0.0005totcomp+0.0479staff-0.0002enroll数学10 _ _ =2.2740+0.0005トーコンプ_ _ _ _ _+0.0479_ _ _ロール登録0.0002
の回帰係数は -0.0002 です。この例では、係数が 0 であるかどうかをさらにテストします。

片側代替構築テスト方法を採用します。つまり、H 0 : β enroll = 0 、H 1 : β enroll < 0 H_0:\beta_{enroll} = 0,H_1:\beta_{enroll}< 0H0:b登録_ _=0 H1:b登録_ _<0

1.1 t 統計量と臨界値の比較

コードは以下のように表示されます:

#1.计算样本量
n = len(meap93)
#2.计算自由度
df = n-3-1   #n为计算的样本量,3为自变量个数
#3.计算t统计量
t_enroll = results.tvalues['enroll'] #tvalues直接获得t统计量
#4.计算拒绝临界值
a = 0.05 #显著性水平为5%
c = stats.t.ppf(a,df)
#4.比较t统计量和临界值大小
if t_enroll < c:
	print('拒绝原假设,enroll的回归系数显著小于0')
else:
	print('不能拒绝原假设,enroll不显著')

登録変数の t 統計量は -0.91、5% 有意水準での t 分布の棄却臨界値は -1.65、t 統計量は臨界値より大きいため、帰無仮説は棄却できません。登録変数の有意水準は 5% であり、有意ではありません。

1.2 p値と有意水準の比較

#1.计算样本量
n = len(meap93)
#2.计算自由度
df = n-3-1   #n为计算的样本量,3为自变量个数
#3.计算t统计量
t_enroll = results.tvalues['enroll'] #tvalues直接获得t统计量
#4.计算p值
pval = stats.t.cdf(-abs(t_enroll), df)
#pval = 1-stats.t.cdf(abs(t_enroll), df)
#5.比较p和显著性水平大小
a = 0.05 #显著性水平为5%
if pval < a:
	print('拒绝原假设,enroll的回归系数显著大于0')
else:
	print('不能拒绝原假设,enroll不显著')

p 値は 0.18 で、有意水準 5% より大きいため、帰無仮説は棄却できません。

4. 事例:双方向検査

Woodridge の『計量経済学入門: 現代の手法』の「第 4 章 重回帰分析: 推論」のケース 4.3 を例として、GPA1 データを使用して、高校の成績、毎週の欠席時間、大学などの大学の成績に影響を与える要因を研究します。適性検査の点数。次のように重回帰モデルを構築します。col
GPA = β 0 + β 1 hs GPA + β 2 ACT + β 3 Skiped + ucolGPA=\beta_0+\beta_1hsGPA+\beta_2ACT+\beta_3skipped+uコルGPA _=b0+b1h s GP A+b2CT _+b3スキップ_ _ _ _+あなた

  • ColGPA: 大学のグレード
  • hsGPA: 高校の成績
  • ACT: 大学適性検査のスコア
  • 欠席: 週ごとに欠席したクラスの数

モデルを構築するコードは次のとおりです。

import wooldridge as woo
import statsmodels.formula.api as smf
from scipy import stats

gpa1 = woo.dataWoo('gpa1')

#建立回归模型:
reg = smf.ols(formula='colGPA ~ hsGPA + ACT + skipped', data = gpa1)
results = reg.fit()
print(results.summary())

モデルの回帰結果は次のとおりです。col
GPA ^ = 1.3896 + 0.4118 hs GPA + 0.0147 ACT − 0.0831 Skiped \widehat{colGPA}=1.3896+0.4118hsGPA+0.0147ACT-0.0831skippedコルGPA _ =1.3896+0.4118時間GP A _+0.0147 CT _0.0831 ski pp e d
この例では、係数が 0 に等しいかどうかをチェックします

両側代替構築テスト方法を使用します。つまり、H 0 : β i = 0 、H 1 : β i ≠ 0 H_0:\beta_i = 0,H_1:\beta_i\neq 0H0:b私は=0 H1:b私は=0

1.1 t 統計量と臨界値の比較

#1.计算样本量
n = len(gpa1)
#2.计算自由度
df = n-3-1   #n为计算的样本量,3为自变量个数
#3.计算t统计量
t_values = results.tvalues  #tvalues直接获得t统计量
#4.计算在显著性水平为5%的情况下的t分布双侧检验拒绝临界值
a = 0.05 #显著性水平为5%
c = stats.t.ppf(1-a/2,df)  #右侧临界值
#4.比较t统计量和临界值大小
print(f't统计量为:\n{
      
      t_values}')
print(f'左侧临界值:{
      
      -c},右侧临界值:{
      
      c}')
for i in range(len(t_values)-1):
    if abs(t_values[i+1]) > c:
        print(f'拒绝原假设,{
      
      t_values.index[i+1]}的回归系数显著不等于0')
    else:
        print(f'不能拒绝原假设,{
      
      t_values.index[i+1]}不显著')

結果は次のとおりです。

t统计量为:
Intercept    4.191039
hsGPA        4.396260
ACT          1.393319
skipped     -3.196840
dtype: float64
左侧临界值:-1.977431212292894,右侧临界值:1.9774312122928936
拒绝原假设,hsGPA的回归系数显著不等于0
不能拒绝原假设,ACT不显著
拒绝原假设,skipped的回归系数显著不等于0

計算によると、hsGPA の t 統計量は 4.40 で、右臨界値 1.98 よりもはるかに大きいため、有意です。一方、ACT の t 統計量は 1.39 で、右臨界値 1.98 より小さく、は統計的に有意ではありません。スキップされた t 統計量は -3.2 で、左の臨界値 -1.98 より小さいか、その絶対値が右の臨界値 1.98 より大きいため、有意です。

1.2 p値と有意水準の比較

p 値アプローチを採用することもできます。

#1.计算样本量
n = len(gpa1)
#2.计算自由度
df = n-3-1   #n为计算的样本量,3为自变量个数
#3.计算t统计量
t_values = results.tvalues  #tvalues直接获得t统计量
#4.计算p值
pval = 2*stats.t.cdf(-abs(t_values), df) #双侧检验
#pval = 2*(1-stats.t.cdf(abs(t_values), df))
#5.比较p和显著性水平大小
a = 0.05 #显著性水平为5%
for i in range(len(t_values)-1):
    if pval[i+1] < a:
        print(f'拒绝原假设,{
      
      t_values.index[i+1]}的回归系数显著不等于0')
    else:
        print(f'不能拒绝原假设,{
      
      t_values.index[i+1]}不显著')

1.2 t テストのために t_test() を呼び出す

手動で t 検定を実行することに加えて、results.t_test() メソッドを呼び出して t 検定を直接実行することもできます。これは両側検定のみを実行できます。

hypotheses ='hsGPA =0,ACT=0,skipped =0'
t_test = results.t_test(hypotheses)
print(t_test)

結果は次のとおりです。

                             Test for Constraints                             
==============================================================================
                 coef    std err          t      P>|t|      [0.025      0.975]
------------------------------------------------------------------------------
c0             0.4118      0.094      4.396      0.000       0.227       0.597
c1             0.0147      0.011      1.393      0.166      -0.006       0.036
c2            -0.0831      0.026     -3.197      0.002      -0.135      -0.032
==============================================================================

5. ケース: 値が 0 ではないと仮定して、各変数の回帰係数に対して t 検定を実行します。

尽管: H 0 : β i = 0 H_0:\beta_i = 0 H0:b私は=0が最も一般的な仮定ですが、$\beta_i$ が他の特定の定数と等しいかどうかをテストしたい場合もあります。たとえば、hsGPA からcolGPA への回帰係数が 0.4 より大きいかどうかを調べる場合、帰無仮説と対立仮説は次のようになります。 H 0
: β hs GPA = 0.4 、 H 1 : β hs GPA > 0.4 H_0:\beta_{hsGPA }= 0.4 ,H_1:\beta_{hsGPA}> 0.4H0:bhs GP A _=0.4 H1:bhs GP A _>0.4
results.tvalues は、係数が 0 に等しいという帰無仮説を持つ t 統計量を返します。帰無仮説の係数が他の定数と等しい場合、t 統計量は式によって計算する必要があります。式は次のとおりです。 t 統計量 = 推定値
− 仮定値 標準誤差 t 統計量 = \frac{推定値 - 仮定値}{標準誤差}t統計量=標準誤差推定値仮定の

1.1 t 統計量と臨界値の比較

コードは以下のように表示されます:

#1.计算样本量
n = len(gpa1)
#2.计算自由度
df = n-3-1   #n为计算的样本量,3为自变量个数
#3.计算t统计量
t_hsGPA = (results.params['hsGPA']-0.4)/ results.bse['hsGPA'] #params获得系数,bse获得系数标准误
#4.计算拒绝临界值
a = 0.05 #显著性水平为5%
c = stats.t.ppf(1-a,df)
#4.比较t统计量和临界值大小
if t_hsGPA > c:
	print('拒绝原假设,hsGPA的回归系数显著大于0.4')
else:
	print('不能拒绝原假设,hsGPA的回归系数大于0.4是不显著的')

結果は次のとおりです。

不能拒绝原假设,hsGPA的回归系数大于0.4是不显著的

t 統計量は 0.126、有意水準 5% での t 分布の両側臨界値は 1.66 と計算されました。t 統計量は臨界値より小さいため、帰無仮説は棄却できません。 hsGPA からcolGPA への回帰係数は 0.4 より大きく、有意ではありません。

1.2 p値と有意水準の比較

コードは以下のように表示されます:

#1.计算样本量
n = len(gpa1)
#2.计算自由度
df = n-3-1   #n为计算的样本量,3为自变量个数
#3.计算t统计量
t_hsGPA = (results.params['hsGPA']-0.4)/ results.bse['hsGPA'] #params获得系数,bse获得系数标准误
#4.计算p值
pval = stats.t.cdf(-abs(t_hsGPA), df)
#pval = 1-stats.t.cdf(t_hsGPA), df)
#5.比较p和显著性水平大小
a = 0.05 #显著性水平为5%
if pval < a:
	print('拒绝原假设,hsGPA的回归系数显著大于0.4')
else:
	print('不能拒绝原假设,hsGPA的回归系数大于0.4是不显著的')

おすすめ

転載: blog.csdn.net/mfsdmlove/article/details/126122506