Уровень кальция в крови здоровых молодых женщин равен в среднем 9.5 милиграммам на децилитр и имеет характерное стандартное отклонение 0.4 мг/дл. В сельской больнице Гватемалы для 160 здоровых беременных женщин при первом обращении для ведения беременности был измерен уровень кальция; среднее значение составило 9.57 мг/дл. Можно ли утверждать, что средний уровень кальция в этой популяции отличается от 9.5?
Посчитайте достигаемый уровень значимости. Поскольку известны только среднее и дисперсия, а не сама выборка, нельзя использовать стандартные функции критериев — нужно реализовать формулу достигаемого уровня значимости самостоятельно.
Округлите ответ до четырёх знаков после десятичной точки.
Имеются данные о стоимости и размерах 53940 бриллиантов. Отделите 25% случайных наблюдений в тестовую выборку с помощью функции sklearn.cross_validation.train_test_split (зафиксируйте random state = 1). На обучающей выборке настройте две регрессионные модели:
В предыдущей задаче посчитайте 95% доверительный интервал для разности средних абсолютных ошибок предсказаний регрессии и случайного леса. Чему равна его ближайшая к нулю граница? Округлите до десятков (поскольку случайный лес может давать немного разные предсказания в зависимости от версий библиотек, мы просим вас так сильно округлить, чтобы полученное значение наверняка совпало с нашим).
In [53]:
import numpy as np
import scipy
from scipy.stats import norm
from sklearn.cross_validation import train_test_split
import pandas as pd
from sklearn.linear_model import LinearRegression
from sklearn.ensemble import RandomForestRegressor
from statsmodels.stats.weightstats import *
In [3]:
z = (9.57-9.5)/(0.4/np.sqrt(160))
z
Out[3]:
In [12]:
2*(1-norm.cdf(abs(z)))
Out[12]:
In [18]:
data = pd.read_csv('diamonds.txt', sep='\t')
In [19]:
data.head()
Out[19]:
In [20]:
data.shape
Out[20]:
In [25]:
y = data['price']
X = data.drop('price', axis=1)
In [27]:
y.head()
Out[27]:
In [28]:
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.25, random_state=1)
In [30]:
y_train.shape
Out[30]:
In [34]:
lr = LinearRegression()
lr.fit(X,y)
Out[34]:
In [35]:
rf = RandomForestRegressor(random_state=1)
rf.fit(X,y)
Out[35]:
In [36]:
y_pred_lr = lr.predict(X_test)
y_pred_rf = rf.predict(X_test)
In [45]:
diff_lr = np.abs(y_pred_lr - y_test)
diff_rf = np.abs(y_pred_rf - y_test)
In [47]:
diff_lr_mean, diff_rf_mean
Out[47]:
In [51]:
scipy.stats.ttest_rel(diff_lr, diff_rf)
Out[51]:
In [56]:
stats.ttest_rel(abs(y_test - lr.predict(X_test)),
abs(y_test - rf.predict(X_test)))
Out[56]:
In [57]:
print "95%% confidence interval: [%f, %f]" % DescrStatsW(abs(y_test - lr.predict(X_test)) - abs(y_test - rf.predict(X_test))).tconfint_mean()
In [ ]: