设为首页收藏本站

爱吱声

 找回密码
 注册
搜索
楼主: 晨枫
打印 上一主题 下一主题

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

[复制链接]
  • TA的每日心情
    慵懒
    2020-7-26 05:11
  • 签到天数: 1017 天

    [LV.10]大乘

    48#
    发表于 2019-2-4 22:07:12 | 只看该作者
    我又看了一下你这个题,终于看明白了。你的问题是一条曲线类似于统计学上Poisson或者log-normal的density function的形状,在这条曲线上你已知坐标是x=1,x=2,... x=20,这20个点的值,你想要知道的是曲线的最大值是在那个点上。不知道我这个理解对不对。6 D2 x% Y" j0 m( Y& h
    3 Z; l8 Q7 M+ I
    如果我的理解是对的话,这不是个统计学问题。你画的那个也不是histogram,因为histogram的纵坐标是在每个值观测到的sample size,而你的图的纵坐标是温度,不是一回事。因此统计学的书你不用查,查了也没用。解决这个问题最显而易见的办法就是最小二乘法,但应该是没有分析解,你不能用。我好奇的是如果假设假设曲线的形状类似于正态分布的density function,你们是怎么解的,使用最小二乘法应该是一样没有分析解。如果解正态分布有特别的巧妙的办法的话,或许稍微修改一下就可以用到log-normal的情况。, E7 Z) z8 P# ]. S- ]! H0 p

    ! s1 ?6 x0 z$ V. s2 A9 r. y0 k2 E! s8 B! J
    - @- p" L; Q( k& X4 J

    1 p) x( F: e4 c: V8 Q
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2019-10-12 04:17
  • 签到天数: 1014 天

    [LV.10]大乘

    47#
    发表于 2019-2-4 21:47:53 | 只看该作者
    晨枫 发表于 2019-2-4 12:30
    ( }8 ?- O# d6 L6 f没人理我?都在忙着吃年夜饭?
    5 Y# y$ C" `8 @. Y" S  b; ~! {! S- \5 f
    @煮酒正熟 @holycow @tanis @关中农民 @老马丁 @Dracula  ...
    , y' W7 N; X9 j+ n
    晨大,这得数学博士才中啊,额完全外行了,看见这个只能联想到面条
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    46#
    发表于 2019-2-4 20:39:47 | 只看该作者
    可以试试GMM Guassian Mixed Model去拟合统计分布
    # o2 o! o& @" T8 u2 _! e
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-10 00:43
  • 签到天数: 1707 天

    [LV.Master]无

    45#
    发表于 2019-2-4 18:34:42 | 只看该作者
    数值分析 发表于 2019-2-4 14:56: V! J, ~1 i/ y. U  `5 K
    你应该不用拟合分布函数吧?你只想知道峰值的位置,然后你又知道(或者说你假设)是泊松分布,所以峰值的位 ...

    + ~! h1 C1 @% |) f2 R# m' F/ i多解释一句scale那块儿。因为泊松分布曲线下面的面积是1,而你的histogram显然不是,所以你的histogram和泊松分布差一个常数。你求出来的lambda的估计要用你histogram的面积归一一下。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-14 22:10
  • 签到天数: 354 天

    [LV.8]合体

    44#
    发表于 2019-2-4 18:02:11 | 只看该作者
    晨枫 发表于 2019-2-4 13:33( I3 E, k. e& T; d
    唉,MATLAB里有histfit命令,干的正是我要的,可惜没法“偷”过来用啊

    2 \. _  ^9 P* K# L' O8 z$ s我记得MATLAB支持OPC
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-4-14 22:10
  • 签到天数: 354 天

    [LV.8]合体

    43#
    发表于 2019-2-4 17:40:34 | 只看该作者
    石化行业的DCS应该Honeywell多吧,这年头不支持OPC的很少了。* V; H6 L- h' }3 I0 k
    数据送到电脑上算,算了以后在送回去。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-7-10 00:43
  • 签到天数: 1707 天

    [LV.Master]无

    42#
    发表于 2019-2-4 14:56:30 | 只看该作者
    本帖最后由 数值分析 于 2019-2-4 15:05 编辑
    4 o; t3 U. f5 R/ \) Z7 X
    $ K* W& a1 [. q% S  e你应该不用拟合分布函数吧?你只想知道峰值的位置,然后你又知道(或者说你假设)是泊松分布,所以峰值的位置一定是 x=lambda,(这里lambda不一定是整数),那么剩下的就是从样本里推断lambda了,这是个典型的估计啊. 对于泊松分布,lambda正好是期望,所以一般来用样本均值估计期望。2 |7 ~& _" E- [
    你给每一个板子从最左边顺序编个号,i=0,1,2,3。。。,然后设每块板子i的对应温度样本值xi,,然后计算sum(i*xi)/n [即累加所有的(板号乘以对应温度)然后除以板数】 (因为你的分布曲线可能和泊松分布差一个常数,所以最后结果得scale一下)不就可以了么?当然,这得假设你的histogram真的得长得像泊松分布分布。
    ! p: p- `& C- \$ _

    点评

    给力: 5.0
    给力: 5
      发表于 2019-2-4 22:28
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-7-26 05:11
  • 签到天数: 1017 天

    [LV.10]大乘

    41#
    发表于 2019-2-4 14:40:54 | 只看该作者
    本帖最后由 Dracula 于 2019-2-4 14:45 编辑
    - e) D% Y% Z* D% ~2 R3 @0 z
    晨枫 发表于 2019-2-4 14:34  \/ q! v3 [4 [  {1 g  y  R
    有了 μ和 σ想计算峰值就容易了,我的问题是如何从histogram计算log normal的 μ和 σ。看来这也是个办 ...
    ) N. `  Z- m' u

    3 d1 x- I/ b  i( E怎么计算分布参数的问题,你的题目我没看明白,不好说,但是正态分布你会做,log-normal 没有任何本质区别,一样的办法,就是数学公式不一样就是的了。应该不难。$ F3 o/ v# k* O) z: A1 w, u
    0 w  b6 v6 T& b7 \  `, O

    9 E* W+ Y' ^/ A8 e. t(标准的统计学问题,估计log-normal分布参数也是有公式的,你到网上去查个公式就是的了。)! w  H+ r9 l+ Y
    * _/ Q  S: v: j. K
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-21 09:14
  • 签到天数: 2 天

    [LV.1]炼气

    40#
    发表于 2019-2-4 14:39:24 | 只看该作者
    晨枫 发表于 2019-2-4 14:16# q  F! t& S* b+ t! X3 U/ _
    十分感谢!打开看到的是SRC文件,还在找FORTRAN……

    ) L$ b) A3 q1 D9 j( dapologize. 网上搜code太麻烦,还得验证。最好有本书可以翻翻 或者搜library
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    11 小时前
  • 签到天数: 2111 天

    [LV.Master]无

    39#
    发表于 2019-2-4 14:36:11 | 只看该作者
    晨枫 发表于 2019-2-4 14:199 B' H1 q2 K2 \: Z) L7 K% f
    多谢!这个kernel density以前没有玩过,正在研究中……
    % N: K$ T( Z( I
    晨大辛苦,您太客气了。祝新年快乐!
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    11 小时前
  • 签到天数: 2111 天

    [LV.Master]无

    38#
    发表于 2019-2-4 14:35:05 | 只看该作者
    Dracula 发表于 2019-2-4 14:24
    & ?" c7 D$ I; \6 f$ E9 n说实话,你这个题目我没看懂。
    " e) z0 b: R4 a5 u
    ( B9 ?- {: ?8 u" r! G) E( b但如果你你单纯就是想实现
    + Q# L9 h) G" y0 ~7 R
    看题目意思应该是不知道参数的。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    37#
     楼主| 发表于 2019-2-4 14:34:17 | 只看该作者
    Dracula 发表于 2019-2-4 00:24- i& p, R- ~5 V* n4 O: S$ L
    说实话,你这个题目我没看懂。# v; i, U, _5 v$ s. b9 d

    ! C4 J$ i) @) N4 S但如果你你单纯就是想实现
    % n! M: v) @  Q6 q8 H) }: I
    有了 μ和 σ想计算峰值就容易了,我的问题是如何从histogram计算log normal的 μ和 σ。看来这也是个办法,把数据log一下,再按normal做。我也想到过这个办法,就是不大确定。明天试试,上班的活儿用下班的时间试,可不划不来嘛。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2020-7-26 05:11
  • 签到天数: 1017 天

    [LV.10]大乘

    36#
    发表于 2019-2-4 14:24:18 | 只看该作者
    本帖最后由 Dracula 于 2019-2-4 14:28 编辑 , M- l3 |$ ~4 H2 N8 t$ g  l

    5 c1 a0 k- I  n& O% n4 s说实话,你这个题目我没看懂。
      X2 Z% t" t; Y" q3 J  m) u  [4 N; W5 j& P7 j1 L6 n. z
    但如果你你单纯就是想实现0 m0 v3 V& a2 c  E+ i. ~
    + g7 ?  r: m& C/ J! \- N3 V
    我就是要拟合一个“钟形曲线”,然后找峰值所在点。相当于上图中红线(或者lambda=2)里横轴1-2之间的位置。

    $ l- n: Y/ l- g9 l
    6 a" D, q/ p  k6 c1 x# f/ R# n; A其实应该挺容易。假设这个分布是log normal,如果你知道这个分布的参数, μ和 σ,你要想计算峰值(英语是mode),有现成公式,套公式就可以了(公式你可以上网查,比如Wikipedia上就有)。估计这个分布怎么做,我没看懂你的题目,不好说。但既然正态分布你知道能怎么做,log-normal没什么本质区别,就是公式不一样。简单的使用method of moments应该很容易就能推导出公式。实现就是简单的算术计算,不需要什么数值方法。5 m( n. m* a8 t/ }
    . S7 ]# Y) e! L  j7 c
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    35#
     楼主| 发表于 2019-2-4 14:19:36 | 只看该作者
    松叶牡丹 发表于 2019-2-4 00:07
    5 \2 I) a+ T2 _# h! t7 p) y5 k5 x历史数据建模自己写算法做验证用。不过如果可以像楼上那位说的可以找到现成library调用,kernel density  ...
    - X7 K3 [2 l4 e4 w/ n' l( V. C, X
    多谢!这个kernel density以前没有玩过,正在研究中……
    回复 支持 1 反对 0

    使用道具 举报

    该用户从未签到

    34#
     楼主| 发表于 2019-2-4 14:16:53 | 只看该作者
    gnomegordon 发表于 2019-2-3 23:55  v: g1 N: ?. k' v3 u  `  t
    如果问题是拟合若干点的光滑曲线 找到最大值,kernel density 就好,matlab里的histfit 也是基于这个算法。 ...

    $ k1 J0 L8 S9 t% }) N十分感谢!打开看到的是SRC文件,还在找FORTRAN……
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    11 小时前
  • 签到天数: 2111 天

    [LV.Master]无

    33#
    发表于 2019-2-4 14:07:31 | 只看该作者
    晨枫 发表于 2019-2-4 13:432 ^- R+ P% L2 z; ?- L; ~2 s2 o. d6 F5 i
    这个好像不行?我需要的是实时估计当前的峰值点,历史数据能帮什么忙呢? ...
    3 G- g1 k/ s3 h( }- e" R
    历史数据建模自己写算法做验证用。不过如果可以像楼上那位说的可以找到现成library调用,kernel density estimation和 guassian mixture model应该都可以。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2018-6-21 09:14
  • 签到天数: 2 天

    [LV.1]炼气

    32#
    发表于 2019-2-4 13:55:23 | 只看该作者
    如果问题是拟合若干点的光滑曲线 找到最大值,kernel density 就好,matlab里的histfit 也是基于这个算法。fortran里面library浩若烟海,查查肯定能找到。速度绝对够快,不需要POISSON 假设。
    ' t9 r2 r: y2 G- [% m9 n9 \
    5 ?# t3 R8 c3 U+ X9 n' r1 |0 ~试着搜一下,这个fortran code 试试?: https://ideas.repec.org/c/boc/bocode/g00004.html

    评分

    参与人数 1爱元 +2 收起 理由
    tanis + 2 给力

    查看全部评分

    回复 支持 反对

    使用道具 举报

    该用户从未签到

    31#
     楼主| 发表于 2019-2-4 13:43:57 | 只看该作者
    松叶牡丹 发表于 2019-2-3 23:41
    + ^6 X& u- L9 J; W  Z1 t& N您这个采样数据如果有之前很长时间的大批量数据的话,要不选一部分建模,建立比如10个distribution式子,用 ...
    0 ?$ s5 r1 l( A% T4 L
    这个好像不行?我需要的是实时估计当前的峰值点,历史数据能帮什么忙呢?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    11 小时前
  • 签到天数: 2111 天

    [LV.Master]无

    30#
    发表于 2019-2-4 13:41:18 | 只看该作者
    您这个采样数据如果有之前很长时间的大批量数据的话,要不选一部分建模,建立比如10个distribution式子,用剩下数据validate,看看是不是符合六西格玛质量控制要求?如果不行就提高精度,设20,30或者更多式子?我这是笨办法。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    29#
     楼主| 发表于 2019-2-4 13:40:49 | 只看该作者
    tanis 发表于 2019-2-3 23:37" t/ B! K; ~" X8 ^' ^
    Matlab 直接有poissfit啊。。。
    ! e( |+ A5 F  R! N. J! n" f6 P! t
    : X! @6 ?0 r' [% g9 _9 G5 i1 u" i( }& o我感觉人类脑补的水平估计和取中值也差不了多少了既然连忘了看也 ...

    : o9 D/ |5 m- k) E2 w2 e* }, j' I问题是我没法把MATLAB装进DCS里用啊。嗯,如果不行的话,可能也只能内插取中值了。
    回复 支持 反对

    使用道具 举报

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

    GMT+8, 2024-9-27 20:01 , Processed in 0.063802 second(s), 18 queries , Gzip On.

    Powered by Discuz! X3.2

    © 2001-2013 Comsenz Inc.

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