Доверительный интервал для среднего значения образца в Python (отличается от ручного) - PullRequest
0 голосов
/ 09 января 2020

Я пытаюсь создать материал для вводной статистики для семинара. Приведенный выше код вычисляет 95% доверительный интервал для оценки среднего значения, но результат отличается от того, который был реализован в Python. Что-то не так с моей математикой / кодом? Спасибо.

РЕДАКТИРОВАТЬ:

Данные были взяты отсюда

import pandas as pd
import numpy as np
x = np.random.normal(60000,15000,200)
income = pd.DataFrame()
income = pd.DataFrame()
income['Data Scientist'] = x

# Manual Implementation
sample_mean = income['Data Scientist'].mean()
sample_std = income['Data Scientist'].std()
standard_error = sample_std / (np.sqrt(income.shape[0]))
print('Mean',sample_mean)
print('Std',sample_std)
print('Standard Error',standard_error)
print('(',sample_mean-2*standard_error,',',sample_mean+2*standard_error,')')


# Python Library
import scipy.stats as st
se = st.sem(income['Data Scientist'])
a = st.t.interval(0.95, len(income['Data Scientist'])-1, loc=sample_mean, scale=se)
print(a)
print('Standard Error from this code block',se)

1 Ответ

1 голос
/ 09 января 2020

У вас есть 2 ошибки.

Сначала вы используете 2 для множителя для CI. Более точное значение составляет 1,96. «2» - это просто удобная оценка. Это делает ваш CI, сгенерированный вручную, слишком толстым.

Во-вторых, вы сравниваете нормальное распределение с t-распределением. Это, вероятно, не вызывает разницы больше, чем десятичная пыль, потому что у вас есть 199 степеней свободы для t-dist, что в основном нормально.

Ниже приведен z-показатель 1,96 и вычисление CI с сравнение яблок с яблоками с нормой распределения по сравнению с т.

In [45]: st.norm.cdf(1.96)                                                                   
Out[45]: 0.9750021048517795

In [46]: print('(',sample_mean-1.96*standard_error,',',sample_mean+1.96*standard_error,')')  
( 57558.007862202685 , 61510.37559873406 )

In [47]: st.norm.interval(0.95, loc=sample_mean, scale=se)                                   
Out[47]: (57558.044175045005, 61510.33928589174)
...