import wooldridge as wooimport statsmodels.formula.api as smfimport scipy.stats as statscrime1 = woo.dataWoo('crime1')# 1. estimate restricted model:reg_r = smf.ols(formula='narr86 ~ pcnv + ptime86 + qemp86', data=crime1)fit_r = reg_r.fit()r2_r = fit_r.rsquaredprint(f'r2_r: {r2_r}\n')# 2. regression of residuals from restricted model:crime1['utilde'] = fit_r.residreg_LM = smf.ols(formula='utilde ~ pcnv + ptime86 + qemp86 + avgsen + tottime',data=crime1)fit_LM = reg_LM.fit()r2_LM = fit_LM.rsquaredprint(f'r2_LM: {r2_LM}\n')# 3. calculation of LM test statistic:LM = r2_LM * fit_LM.nobsprint(f'LM: {LM}\n')# 4. critical value from chi-squared distribution, alpha=10%:cv = stats.chi2.ppf(1 - 0.10, 2)print(f'cv: {cv}\n')# 5. p value (alternative to critical value):pval = 1 - stats.chi2.cdf(LM, 2)print(f'pval: {pval}\n')# 6. compare to F-test:reg = smf.ols(formula='narr86 ~ pcnv + ptime86 + qemp86 + avgsen + tottime',data=crime1)results = reg.fit()hypotheses = ['avgsen = 0', 'tottime = 0']ftest = results.f_test(hypotheses)fstat = ftest.statistic[0][0]fpval = ftest.pvalueprint(f'fstat: {fstat}\n')print(f'fpval: {fpval}\n')
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。