富在术数不在劳身,利在局势不在力耕
今天一早(2023年9月16日)查看个人站的RSS新闻信息,还没看几页内容就没了,赶紧看看是不是定时任务出问题了,看来一遍发现一切正常。突然想到今天是周六,想着是不是周六了都休息了,所以新闻内容少了赶紧打开数据库查一下。因为服务没上线几天,所以统计数据不多,但是刚好包含上个周末的信息。
先贴出统计的sql select count(id), date(created_at), date_format(date(created_at), "%W") from items group by date(created_at);
,以天为聚类条件,并使用了 date_fromat()
显示星期几,下面是结果。
count(id) | date(created_at) | date_format(date(created_at), "%W") |
---|---|---|
2230 | 2023-09-06 | Wednesday |
2345 | 2023-09-07 | Thursday |
2211 | 2023-09-08 | Friday |
1481 | 2023-09-09 | Saturday |
1495 | 2023-09-10 | Sunday |
2352 | 2023-09-11 | Monday |
2365 | 2023-09-12 | Tuesday |
2644 | 2023-09-13 | Wednesday |
2322 | 2023-09-14 | Thursday |
2461 | 2023-09-15 | Friday |
124 | 2023-09-16 | Saturday |
其中count(id) 是当天的数据量,可以很清晰的看到,在周末的时候数据量相较于平时少了大概1000条左右。这足以说明,双休还是存在的。
可是,仅仅这些就够了吗?为什么我没感觉到周末的快乐呢?所以进一步,统计哪些网站的平时数据和周末数据差距不大,或者统计哪些网站的差距很大。说干就干。
首先要知道统计什么数据来看出差距,不懂啊。问claude
1. 四分位距/五数概括:计算出数据集的最小值、最大值、中位数、上四分位数和下四分位数,可以直观反映出数据的分布范围和集中趋势。
2. 方差和标准差:反映数据相对于平均值的离散程度,标准差越大表示数据越分散。
3. 偏度和峰度:偏度反映数据分布的对称性,正偏表示右偏分布;峰度反映分布的尖峭程度,峰态分布峰值越尖。
4. 直方图和密度图:直方图反映不同取值范围内的数据频数,密度图显示密度曲线,可以直接观察分布形状。
5. QQ图:通过与正态分布的分位数进行比较,判断数据是否遵循正态分布
还是懵,继续问。
如果要统计一个网站每天的信息数量,并判断一段时间内每天信息量的差异大小,可以考虑使用以下统计方法:
1. 汇总统计:统计出每个时间段(例如每天)的信息数量,直接看每天的具体数值大小。
2. 平均数和标准差:计算出信息量的平均值和标准差,通过标准差可以判断信息量的日浮动情况。标准差越大表示信息量波动越大。
3. 方差分析:对不同时间段的信息量进行方差分析,看信息量在不同时间之间是否存在显著性差异。如果p值很小,则说明不同时间的信息量差异显著。
4. 时间序列分析:采用时间序列图显示信息量随时间的变化趋势,直接观察信息量是否存在周期性规律或明显的上升/下降趋势。
5. 数据拟合:可以试着对信息量进行曲线拟合,看是否符合某种分布规律。如符合正态分布则差异不大,若不符合则存在较大波动。
综合这些统计方法,可以很好地判断网站信息量的大小分布和时间间差异情况。实际应用时,可以根据数据特点选择最适合的方法。
有了,就用标准差计算。标准差越大表示信息量波动越大。标准差怎么计算呢?再问!
标准差的计算方法如下:
假设有一个样本数据集:X1, X2, ..., Xn
则该样本的均值是:
μ = (X1 + X2 + ... + Xn) / n
该样本的方差是:
σ2 = ∑(Xi - μ)2 / (n - 1)
即对所有样本数据与均值的差的平方进行求和,然后除以样本数n减1。
该样本的标准差是方差的算术平方根:
σ = √σ2
举例:
假设样本数据为:3, 5, 4, 4, 5, 2
则, 均值 μ = (3 + 5 + 4 + 4 + 5 + 2) / 6 = 4
方差 σ2 = [(3-4)2 + (5-4)2 + (4-4)2 + (4-4)2 + (5-4)2 + (2-4)2] / (6 - 1) = 5/5 = 1
标准差 σ = √1 = 1
所以该样本数据集的标准差为1。
简化一下,用人话来说就是,先计算数据的平均值,再用平均值计算方差,然后再对方差平方根,就是标准差。
开干,以公司和日期为聚类条件sql select count(items.id), date(items.created_at), date_format(date(items.created_at), "%W"), rss_links.name from items inner join rss_links on items.rss_links_id=rss_links.id group by date(created_at), rss_links_id;
,将这个查询作为子查询,在这个查询的基础上聚类统计每个网站多天的平均值。
每个网站平均每天的消息
select avg(temp_table.c) as a, temp_table.n from (SELECT count(items.id) as c, date(items.created_at) as d, date_format(date(items.created_at), "%W") as w, rss_links.name as n
FROM items
INNER JOIN rss_links ON items.rss_links_id=rss_links.id
GROUP BY date(items.created_at), date_format(date(items.created_at), "%W"), rss_links.name) as temp_table GROUP BY temp_table.n
部分结果
a | n |
---|---|
208.5455 | V2EX |
51.2857 | 知乎热榜 |
26.7000 | 机核 |
10.9000 | 奇客Solidot–传递最新科技情报 |
得到了平均数,在计算平方差,对sql稍作修改,
select sum((c-a1)*(c-a1))/(count(d)-1) as fc, n
from (
select avg(temp_table.c) as a1, temp_table.n as n1
from (
SELECT count(items.id) as c, date(items.created_at) as d, rss_links.name as n
from items INNER JOIN rss_links ON items.rss_links_id=rss_links.id
GROUP BY date(items.created_at), rss_links.name
) as temp_table GROUP BY temp_table.n
) as t1
inner join (
select count(items.id) as c, date(items.created_at) as d, rss_links.name as n
from items INNER JOIN rss_links ON items.rss_links_id=rss_links.id
GROUP BY date(items.created_at), rss_links.name
) as t2 on t1.n1=t2.n group by n order by fc desc;
有点复杂,也有点冗余,也很慢,但是可以后面优化。
fc | n |
---|---|
7457.672727275 | V2EX |
4428.722222222222 | IT之家 |
4407.8 | 人民日报 |
3651.963636364 | 36氪 |
2382.333333335 | Hacker News |
2240.711111111111 | 36氪 - 快讯 |
2005.418181819 | 新华社新闻_新华网 |
1213.02777778 | 经济日报 |
1041.272727275 | cnBeta |
956.818181819 | 虎嗅 |
920.618181819 | 钛媒体:引领未来商业与生活新知 |
870.233333333333 | 澎湃新闻 - 首页头条 |
807.072727275 | 酷安 - 新鲜图文 |
794.763636364 | 阿里云盘发布频道 - Telegram Channel |
620.785714285714 | 热门文章 - 日榜 - 人人都是产品经理 |
522.254545456 | Readhub - 热门话题 |
364.472727275 | V2EX - 技术 |
355.072727275 | 法广 |
354.4 | 光明日报 |
298.766666666667 | Engadget |
292.872727275 | 新京报 - 好新闻,无止境 |
289.690909091 | 抽屉新热榜 |
272.75000000125 | 首页头条--人民网 |
222.4 | 超能网 |
191.211111111111 | 掘金 前端 |
155.777777777778 | 数字尾巴 - 首页 |
145.238095238333 | 知乎热榜 |
127.872727275 | 华尔街日报 |
115.333333333333 | IT 之家 - IT 资讯 |
113.563636364 | 今日话题 - 雪球 |
92.785714285714 | 人人都是产品经理 |
85.344444444444 | 机核 |
84.844444444444 | InfoQ 推荐 |
84.418181819 | 美国之音 |
73.454545456 | 财富中文网 |
57.054545456 | 界面新闻: 财经 |
55.654545456 | 人民网-英语新闻 |
54.766666666667 | 奇客Solidot–传递最新科技情报 |
50.233333333333 | 开源中国-软件更新资讯 |
38.933333333333 | 《联合早报》-中港台-即时 |
36.844444444444 | 人民网-国内新闻 |
33.654545456 | 南方周末-推荐 |
30.9 | 界面新闻: 商业 |
30.177777777778 | 中国日报: 时政 |
28.888888888889 | 《联合早报》-国际-即时 |
20.455555555556 | 界面新闻: 新闻 |
12.177777777778 | 人民网-国际新闻 |
8.690909091 | 央视新闻 |
2.044444444444 | 虎嗅网 |
不用开方(实际是我嫌麻烦)就能看出来,这一个星期多的数据方差差距大的是一些不可言喻的站点,这说明了什么也是不可言喻的,当然了,人都是趋利避害的,西方不亮东方亮嘛
文章分类