首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >随着时间的推移,我在做什么?

随着时间的推移,我在做什么?
EN

Stack Overflow用户
提问于 2011-01-09 18:04:09
回答 1查看 2.5K关注 0票数 1

我真的很喜欢统计学,但已经六年多没上过一门课了。我很难弄清楚我在这里需要什么样的测试,以及在这类问题上使用的最好的numpy/scipy/R函数。

我有一张桌子上的访客和他们相应的财产。"Browser = Mozilla,Referrer = Google"),以及每个访问者的可变值(例如$5),随着时间的推移,分组成数据点。

我的目标是:

( A)找出最重要的财产家庭,并给出家庭“有多重要”的分数

我想得出结论的例子*:

代码语言:javascript
复制
Referrer has 10x larger effect size upon value-per-visitor than Browser
=> PropertyFamily('browser').significance = 1
=> PropertyFamily('referrer').significance = 10

( B)在家庭中找到最重要的属性,并有显着性得分。

我想得出一个结论的样本:

代码语言:javascript
复制
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)在这里是否有使我的生活容易的功能?

( 2)对方差分析( ANOVA )和方差分析(ANOVA)了解得多一点的人能否提供反馈?--我甚至不肯定我做的是正确的,而且可能遗漏了一些简单的东西。确认或更正均为感激。

请注意,这些是过去30天中的数组(命中、值、天)。例如,如果周一的Mozilla值有一个大的峰值(相对于基线),周二的Mozilla值下降(低于基线),我希望Mozilla显示为一个“重要的”属性(而不是互相取消的峰值/下降)。

在地图/还原之前,我输入的数据示例:

代码语言:javascript
复制
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,但这随着数据集的大小而变化),而且我知道这可能有一个“真正的公式”。

代码语言:javascript
复制
# 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)

提前感谢!

EN

回答 1

Stack Overflow用户

发布于 2011-01-09 18:29:09

AFAIK,numpy/scipy中可用的统计测试是相当基本的。您可能想了解R,一种或多或少致力于统计的语言,它具有许多可用的高级功能。

而且,我不认为马诺瓦真的是你想做的。MANOVA是指当你有几个相互作用的因变量时。这真的只是一次变异。

你可以在R中做些什么的例子:

代码语言:javascript
复制
bybrowser = lm(value ~ browser, data=visitors)
anova(bybrowser)
byreferrer = lm(value ~ referrer, data=visitors)
anova(byreferrer)
byreferrerandbrowser = lm(value ~ browser * referrer, data=visitors)
anova(byreferrerandbrowser)

请注意,这一切都假定您的值是正态分布的。您应该检查这个假设(hist(visitors$value)是一个好的开始。)如果它们不是,要么找到一种方法来规范它们(尝试获取日志),要么使用适当的非参数测试。

哦,最后,如果你想得到关于统计数据的建议,有一个姐妹网站专门讨论这个问题:https://stats.stackexchange.com/

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4640798

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档