设为首页收藏本站

爱吱声

 找回密码
 注册
搜索
查看: 9949|回复: 112
打印 上一主题 下一主题

[科研心得] 问题:如何从数据里估算普瓦松分布的均值?

[复制链接]

该用户从未签到

跳转到指定楼层
楼主
 楼主| 发表于 2019-2-4 11:38:35 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 晨枫 于 2019-2-3 22:42 编辑 9 l! L/ s! ?, D) O
, {! {; c9 E/ H  A8 W
一般估算均值是简单的算术平均,但我的问题比较特别,其实都不是统计问题。
. `; \) R8 A" U1 Q+ X3 e
! J6 z( m2 D9 D" K5 G( V是这样的,我有一个吸收塔,从塔顶到塔底有一个温度分布,形状大体像普瓦松分布:
5 ^0 o2 N9 H. ?" i$ i; I5 Z& D1 E9 R* G& g1 ?  Z
# p# P6 w+ ~6 T0 z* b3 N( g
, `3 e& a+ Q1 K) f. {& ]- {
我要估算峰值出现在哪块塔板,所以想到用统计的办法。实际上,统计里这是概率密度,曲线高低代表在这一点的采样“数量”,但我在每一个点只有一个数据点。说到底,我就是要拟合一个“钟形曲线”,然后找峰值所在点。相当于上图中红线(或者lambda=2)里横轴1-2之间的位置。
  _- J$ a- a% a, E! m: o6 w7 y8 x
% e2 |; M7 i+ w! Z正态分布有现成的计算办法,但这样的“扭曲正态分布”或者普瓦松分布有什么简单办法吗?我需要能在DCS上实现,所以不能用太复杂的离线算法。- u; K+ v7 U" S6 T

8 j0 t( r: y* E/ t8 P6 G爱坛里博士多如狗,教授满地走,想象起来,或许有谁在工作中碰到过类似的问题?

该用户从未签到

沙发
 楼主| 发表于 2019-2-4 12:30:40 | 显示全部楼层
没人理我?都在忙着吃年夜饭?4 V& O6 G, h# X7 a
4 e- j; u4 d% x+ R$ e% J
@煮酒正熟 @holycow @tanis @关中农民 @老马丁 @Dracula
回复 支持 反对

使用道具 举报

该用户从未签到

板凳
 楼主| 发表于 2019-2-4 12:46:13 | 显示全部楼层
holycow 发表于 2019-2-3 22:43
5 o, ]0 ?* W) d* }# h' d泊松分布?我还是没理解你釆样拿到了哪些数据点
! X4 F( v: Y. V- O
是我描述得不好。再来一遍。
9 {/ S& c$ I8 e3 B$ D( w5 ^. h1 ]+ L3 @, V
我有一条样子像泊松分布的温度分布曲线,但只有几个稀疏的点,想用类似泊松分布的曲线内插,然后计算峰值所在的横坐标点。
+ j3 ^! z  T1 C* s7 T9 {8 W0 B( r2 r7 J
这要用于在线计算,不能搞非线性最小二乘之类的复杂算法。7 J3 x' m6 {! ]4 x- V

$ N" s5 D& F# B* K% L怎么弄?
回复 支持 反对

使用道具 举报

该用户从未签到

地板
 楼主| 发表于 2019-2-4 12:47:08 | 显示全部楼层
本帖最后由 晨枫 于 2019-2-3 22:48 编辑 ) K* C% t4 I& Y; v* V4 b# w% q
松叶牡丹 发表于 2019-2-3 22:45& [: d) d/ s) a4 w3 P2 |9 _
没怎么看明白题目,您是说已知y值,要求对应正态分布?

$ a) e2 b5 ^9 o! a/ c( l
! U/ v( g7 s7 Y抱歉抱歉,差不多就是这个意思,不过不是传统的对称正态分布,而是歪向一边的skewed normal distribution,请见5楼,不知道是否描述清楚一点?
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2019-2-4 12:50:27 | 显示全部楼层
松叶牡丹 发表于 2019-2-3 22:45* a* i, [0 t' Y' ?, x
没怎么看明白题目,您是说已知y值,要求对应正态分布?
8 V4 q4 t# V1 l3 Q6 S* Q4 y6 Q
如果太麻烦,最后可能也就用对称的正态分布近似了。反正都是近似……
回复 支持 反对

使用道具 举报

该用户从未签到

6#
 楼主| 发表于 2019-2-4 12:59:41 | 显示全部楼层
松叶牡丹 发表于 2019-2-3 22:52+ z! ]; Z( ?: |, a
如果精度不要求很高的话,不知道查表法的精度能不能达到要求。那个倒是最快。 ...
5 C9 Q) A3 P9 \8 J7 R# H

  d3 J$ c9 w7 i* M查表再内插,这要做成在线计算还是有点麻烦了?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
 楼主| 发表于 2019-2-4 13:03:39 | 显示全部楼层
煮酒正熟 发表于 2019-2-3 22:58
; w3 N2 [8 P+ r* z. v统计学我只明白最最基本的,泊松分布也理解不深。问几个傻问题吧:一共多少块塔板?为什么每块塔板只能取到 ...

/ Q! [2 c" w9 B& {咳咳,这个其实不是统计问题,是从有限的温度测量估计温度分布曲线的问题。吸收塔一共20块塔板,每块塔板只有一个温度测量点,连续测量(每15秒采样一次)。
; F) n% o6 k2 T8 X( w6 S3 C( t! U& {, e# p, E  T) a+ Z
这温度分布随工艺条件而变,所以这个峰值和凸起一直在动来动去。目视很容易看出峰值在那里,但要用数值办法实时确定,反而犯难了。
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2019-2-4 13:06:04 | 显示全部楼层
tanis 发表于 2019-2-3 23:00" J. j, A0 H4 |0 T+ m" A
原来是泊松分布。。。 惭愧,连最小二乘法都属于复杂算法了。。。还真不知道有什么其他的简便方法。这一 ...
5 Y; f# E7 l) Z  E9 @( j
切,我有那东西,还费这个事吗?Matlab、Maple,什么不能上啊!问题是我需要在线计算,而且只有FORTRAN一级的语言从头现编,还不能太耗费CPU时间,耽误了实时控制就偷鸡不成蚀把米了。
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2019-2-4 13:06:44 | 显示全部楼层
松叶牡丹 发表于 2019-2-3 23:00
6 d$ x, I( g3 V" A( _% O% E做成在线计算器,那就不能查表了,反而太麻烦。坐等观摩高手们过招。
4 [3 s- R" r4 i# h
估计吃完年夜饭,就该忙着数红包了。

点评

这坛里的,绝大多数是发红包的  发表于 2019-2-4 14:34
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2019-2-4 13:18:45 | 显示全部楼层
tanis 发表于 2019-2-3 23:09
+ e7 U# E' c8 w6 b5 S目视是指看数据点脑补么? 所以一共20个数据点(塔板),然后最高温度可能在点之间? 15s一次,速度很慢 ...
) Z1 ~  w! u% ~
正是:看数据点然后脑补。人工就是这么干的。但操作工要照管的事情太多,一会儿不看,可能就错过了,就可能坏事。
4 q+ S2 q1 M( x7 t0 s/ r8 M3 P
化工上DCS的采样分基本回路和先进回路,前者一般每秒一次,甚至1/4秒一次,后者每15、30、60秒一次就够了。过程时间常数动辄几十分钟,太快的采样没必要。另一方面,CPU的速度(还是Morotola 68040)和网络带宽(4 megabits 烹per second)有限,不宜太快,还要扫描几百、几千个回路,不宜太快。安全连锁回路更快,在毫秒级,但那不用作连续控制,两回事。- Z( T  r9 \8 n  b) N
* Y; u# \! B3 X% [; [, F, Y' x; _: v
工控级的CPU和网络都用特别成熟(翻译:特别古老)的技术,和实验室、离线是两回事。# W) G, B" [  _, |- F

  _+ T6 z' N& o! u在线计算是因为我要把这个峰值点用到控制回路里。拍照、图像识别、离线拟合,这绕的弯子太大,中间节点太多,可靠性根本靠不住,哪里打一个嗝,就可能造成process upset,就是几十万、上百万的损失,那就划不来了。
回复 支持 反对

使用道具 举报

该用户从未签到

11#
 楼主| 发表于 2019-2-4 13:21:24 | 显示全部楼层
松叶牡丹 发表于 2019-2-3 23:12) G, D# V. l" H* i) q7 }7 P3 x
您是说每块塔板都是15秒测量一次,所以每15秒要同时给出20个塔板的20个正态分布式子? ...
2 F7 W) ^& `) |. K1 B
每15秒要对20块塔板的温度拟合一条样子像正态分布的曲线。15秒只是计算间隔,每次实际计算其实只有毫秒级的窗口,因为同一个CPU还要分时管好多别的事呢。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
 楼主| 发表于 2019-2-4 13:23:16 | 显示全部楼层
tanis 发表于 2019-2-3 23:124 n; y) h9 L; N! Z6 S+ S5 |) B
找温度第二,第三高的两个点,拟合个直线,取中间的那个位置

' \2 I, Q: B* R& [* Q塔板是等间距分布的,这样我还不如直接取温度最高的那一块了
回复 支持 反对

使用道具 举报

该用户从未签到

13#
 楼主| 发表于 2019-2-4 13:28:01 | 显示全部楼层
松叶牡丹 发表于 2019-2-3 23:21
+ g6 }* l5 ]) m降低精度,把一系列正态分布离散化为有限几个histogram,每次测试点先第一步进行范围判断,然后归到不同 ...
( w! W0 Y3 N- t, }, ~% q5 G, [2 [
9 z4 d; E# b4 a# a
一把抓住:我的问题正是从histogram变换为某种分布,最想poison分布或者log normal distribution,不行的话正态分布也行。有什么现成的计算方法吗?
回复 支持 反对

使用道具 举报

该用户从未签到

14#
 楼主| 发表于 2019-2-4 13:29:03 | 显示全部楼层
tanis 发表于 2019-2-3 23:27
6 j& ^( f( x- a6 }' o5 a哦哦。。。 那就取最高和第二个的中间位置 有人工干预的时候就用人工,人忘了看就用这个。。。 ...
1 r0 d6 h# Y( a, o7 Q! n
这也是个办法,总是有点“心有不甘”……
回复 支持 反对

使用道具 举报

该用户从未签到

15#
 楼主| 发表于 2019-2-4 13:33:41 | 显示全部楼层
松叶牡丹 发表于 2019-2-3 23:21
  @9 H, H' v" y2 d! ~& ]5 Z降低精度,把一系列正态分布离散化为有限几个histogram,每次测试点先第一步进行范围判断,然后归到不同 ...

( b4 Y8 G1 E% D9 A; |/ S. ?6 R8 w* m) f唉,MATLAB里有histfit命令,干的正是我要的,可惜没法“偷”过来用啊
回复 支持 反对

使用道具 举报

该用户从未签到

16#
 楼主| 发表于 2019-2-4 13:40:49 | 显示全部楼层
tanis 发表于 2019-2-3 23:37
, \/ {7 N1 t! T- j! u9 gMatlab 直接有poissfit啊。。。
1 v* q' i. h' ]0 S, X; b/ _
0 P/ r2 p1 u  Z9 V: D" |$ {& W2 L我感觉人类脑补的水平估计和取中值也差不了多少了既然连忘了看也 ...
+ W$ x0 e( h7 f
问题是我没法把MATLAB装进DCS里用啊。嗯,如果不行的话,可能也只能内插取中值了。
回复 支持 反对

使用道具 举报

该用户从未签到

17#
 楼主| 发表于 2019-2-4 13:43:57 | 显示全部楼层
松叶牡丹 发表于 2019-2-3 23:41
: k  a0 Z' d2 n9 _  l( y- S0 l您这个采样数据如果有之前很长时间的大批量数据的话,要不选一部分建模,建立比如10个distribution式子,用 ...

& V! a3 M3 ?& ^这个好像不行?我需要的是实时估计当前的峰值点,历史数据能帮什么忙呢?
回复 支持 反对

使用道具 举报

该用户从未签到

18#
 楼主| 发表于 2019-2-4 14:16:53 | 显示全部楼层
gnomegordon 发表于 2019-2-3 23:55
9 i0 g( a9 r  j5 e$ r: S如果问题是拟合若干点的光滑曲线 找到最大值,kernel density 就好,matlab里的histfit 也是基于这个算法。 ...
# {3 c! f/ Y' ?2 ]
十分感谢!打开看到的是SRC文件,还在找FORTRAN……
回复 支持 反对

使用道具 举报

该用户从未签到

19#
 楼主| 发表于 2019-2-4 14:19:36 | 显示全部楼层
松叶牡丹 发表于 2019-2-4 00:07
6 s9 }0 Q# X' m历史数据建模自己写算法做验证用。不过如果可以像楼上那位说的可以找到现成library调用,kernel density  ...
0 }4 U. ]6 a7 v: l; E1 r; R! x
多谢!这个kernel density以前没有玩过,正在研究中……
回复 支持 1 反对 0

使用道具 举报

该用户从未签到

20#
 楼主| 发表于 2019-2-4 14:34:17 | 显示全部楼层
Dracula 发表于 2019-2-4 00:24
" A* h. n8 L3 _# {9 g, e说实话,你这个题目我没看懂。
. L" N6 G9 s9 ]5 {  u4 F- C) X) U+ X+ C- y
但如果你你单纯就是想实现

$ o. V* r7 p7 A8 [3 f6 f有了 μ和 σ想计算峰值就容易了,我的问题是如何从histogram计算log normal的 μ和 σ。看来这也是个办法,把数据log一下,再按normal做。我也想到过这个办法,就是不大确定。明天试试,上班的活儿用下班的时间试,可不划不来嘛。
回复 支持 反对

使用道具 举报

手机版|小黑屋|Archiver|网站错误报告|爱吱声   

GMT+8, 2024-5-14 15:13 , Processed in 0.048780 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表