Мне очень нравится статистика, но я не посещал курсы более 6 лет.У меня возникают проблемы с выяснением того, какой тип теста мне нужен, и наилучшей функции numpy / scipy / R, которую можно использовать для решения подобных проблем.
У меня есть таблица посетителей и соответствующие свойства(например, «Браузер = Mozilla, Referrer = Google»), а также значение переменной для каждого посетителя (например, 5 долларов США), сгруппированные по временным точкам.
Моя цель:
А) Найдите наиболее значимые семейства свойств с оценкой «насколько значимо» это семейство
Пример заключения, которое я хочу сделать *:
Referrer has 10x larger effect size upon value-per-visitor than Browser
=> PropertyFamily('browser').significance = 1
=> PropertyFamily('referrer').significance = 10
И
B) Найдите наиболее значимые свойства в семьях с показателями значимости.
Пример заключения, которое я хотел бы сделать:
GIVEN THAT Value:Baseline => $5/hit
5 hits from IE @ $5/hit (equal to baseline) => no significance
1 hit from Netscape @ $0 => little significance (not enough data)
10 hits from FF @ $10/hit => HIGH significance (hits and delta_value both high)
Мои вопросы:
1) Есть ли здесь функции numpy / scipy / R, которые облегчат мне жизнь?
2) Может ли кто-нибудь, кто знает немного больше об ANOVA (анализ отклонений) и ANOVA со временем, пожалуйста, предоставьте отзыв? Я не уверен, что я даже делаю это правильно , и может упустить что-то простое. Подтверждение или исправление приветствуются.
Обратите внимание, что это Массивы из (попаданий, значений, дней) за последние 30 дней.Например, если в понедельник в Value-Of-Mozilla имеется большой пик (относительно базового уровня), а во вторник значение Value-Of-Mozilla (ниже базового уровня) упадет, я хочу, чтобы Mozilla отображалась как «существенное» свойство(а не пик / падение, отменяющие друг друга)
Пример моих входных данных перед отображением / уменьшением:
data = {
'baseline': [(hits, value, day) for hits, value, day in last_thirty_days('baseline')],
'browser': {
'mozilla': [(hits, value, day) for hits, value, day in last_thirty_days('browser', 'mozilla')],
... etc ...
}
}
... etc ...
Вот мой текущий код - он работает на Dumbo / Hadoopи предоставляет число для «значимости», для которого я в основном изобрел формулу.Хотя моя формула работает и дает значимые данные, мои значения для «значимости» не определены четко («значимое» свойство обычно имеет оценку> = 100, но это изменяется в зависимости от размера набора данных), и я знаю, чтоесть, вероятно, «реальная формула» для этого.
# Runs after each (hits, value, date) tuple has been grouped
# into corresponding "plot points", as they would appear on a graph
pp = PlotPoint(property, date, hits, value)
pp.epc = float(pp.value/pp.hits) if pp.hits else 0
# Finds PlotPoint('baseline', date)
# if pp = PlotPoint('firefox', '1-1-10')
# then pp.baseline == PlotPoint('baseline', '1-1-10')
baseline = pp.baseline()
if baseline.hits == 0:
volume_ratio = 0
else:
volume_ratio = round(100*pp.hits/baseline.hits)
value_ratio = baseline.epc - pp.epc
# Make up a significance value --
# e.g. (10% of visitors * ($1 delta from baseline))^2
pp.significance = math.sqrt(volume_ratio * value_ratio **2)
# OK, we have values for each plotpoint, now sum them up
# to get values for the whole property (over a 30day period)
pps = property.plotpoint_set.all()
property.hits = sum([p.hits for p in pps])
property.value = sum([p.value for p in pps])
property.epc = property.value/property.hits
value_delta = baseline.epc - property.epc
# Make up a significance for the Property, based on each point's significance
property.significance = math.log(sum(
[sss.significance**2 for sss in pps]
)*abs(value_delta)+1)
Заранее спасибо!