|
1 | 1 | from scipy.stats import norm
|
2 |
| -from scipy.optimize import root, fsolve |
| 2 | +from scipy.optimize import fsolve |
3 | 3 | from scipy import stats
|
4 | 4 |
|
5 | 5 | import numpy as np
|
@@ -199,13 +199,13 @@ def calc_confidence_level(data: pd.DataFrame) -> pd.DataFrame:
|
199 | 199 | def _calc(v: pd.Series) -> pd.Series:
|
200 | 200 | return 100 * (
|
201 | 201 | 1 - stats.t.sf(
|
202 |
| - (v.d / v['std'] - v['mean'] / v['std']) - stats.t.isf(0.05 / 2, |
203 |
| - v.number - 1) / |
| 202 | + (v.d / v['std'] - v['mean'] / v['std']) - |
| 203 | + stats.t.isf(0.05 / 2, v.number - 1) / |
204 | 204 | np.sqrt(v.number),
|
205 | 205 | v.number - 1
|
206 | 206 | ) - stats.t.sf(
|
207 |
| - (v.d / v['std'] + v['mean'] / v['std']) - stats.t.isf(0.05 / 2, |
208 |
| - v.number - 1) / |
| 207 | + (v.d / v['std'] + v['mean'] / v['std']) - |
| 208 | + stats.t.isf(0.05 / 2, v.number - 1) / |
209 | 209 | np.sqrt(v.number), v.number - 1
|
210 | 210 | )
|
211 | 211 | )
|
@@ -271,13 +271,14 @@ def solver_min_tolerance(data: pd.DataFrame) -> pd.DataFrame:
|
271 | 271 | _factor = stats.t.isf(0.05 / 2, _number - 1) / np.sqrt(_number)
|
272 | 272 | _dof = _number - 1
|
273 | 273 |
|
274 |
| - func = lambda _min_tolerance: _min_confidence - 100 * ( |
275 |
| - 1 - |
276 |
| - stats.t.sf( |
277 |
| - (_min_tolerance / _std - _mean / _std) - _factor, _dof) - |
278 |
| - stats.t.sf( |
279 |
| - (_min_tolerance / _std + _mean / _std) - _factor, _dof) |
280 |
| - ) |
| 274 | + def func(_min_tolerance): |
| 275 | + return _min_confidence - 100 * ( |
| 276 | + 1 - |
| 277 | + stats.t.sf( |
| 278 | + (_min_tolerance / _std - _mean / _std) - _factor, _dof) - |
| 279 | + stats.t.sf( |
| 280 | + (_min_tolerance / _std + _mean / _std) - _factor, _dof) |
| 281 | + ) |
281 | 282 |
|
282 | 283 | try:
|
283 | 284 | data.loc[i, 'min_tolerance'] = fsolve(func, [1])[0]
|
|
0 commit comments