1974~1999 年间美国共发生 46 起超 1000 桶的原油泄漏事件,严 重污染海洋环境。(2-5oilspills.dat)Ni表示第 i 年的泄露数,bi1表示第 i 年 国际航线运油量,bi2表示第 i 年国内航线运油数。(单位:百万桶)假设泊松过 程 Ni|bi1,bi2~P(λ),其中i 1bi1 2bi2 ,两个阿尔法是该题要估计的参数。 1. 推导未知参数的牛顿法递推公式 2. 推导出未知参数的肥西得分递推公式 3. 分别用 1 和 2 的方法求解未知参数,并比较它们的速度和难易度

时间: 2023-06-20 14:09:04 浏览: 112
1. 牛顿法递推公式 我们需要求解目标函数的梯度和海森矩阵,分别为: $$ \nabla L(\boldsymbol{\alpha}) = \begin{bmatrix} \frac{\partial L}{\partial \alpha_1} \\ \frac{\partial L}{\partial \alpha_2} \end{bmatrix} = \begin{bmatrix} \sum_{i=1}^n b_{i1} - \lambda_i \\ \sum_{i=1}^n b_{i2} - \lambda_i \end{bmatrix} $$ $$ \boldsymbol{H}(\boldsymbol{\alpha}) = \begin{bmatrix} \frac{\partial^2 L}{\partial \alpha_1^2} & \frac{\partial^2 L}{\partial \alpha_1 \partial \alpha_2} \\ \frac{\partial^2 L}{\partial \alpha_1 \partial \alpha_2} & \frac{\partial^2 L}{\partial \alpha_2^2} \end{bmatrix} = \begin{bmatrix} -\sum_{i=1}^n b_{i1} & 0 \\ 0 & -\sum_{i=1}^n b_{i2} \end{bmatrix} $$ 牛顿法的递推公式为: $$ \boldsymbol{\alpha}^{(t+1)} = \boldsymbol{\alpha}^{(t)} - [\boldsymbol{H}(\boldsymbol{\alpha}^{(t)})]^{-1} \nabla L(\boldsymbol{\alpha}^{(t)}) $$ 其中,$t$ 表示迭代次数。 2. 费舍尔得分递推公式 我们需要首先计算费舍尔信息矩阵和得分向量,分别为: $$ \boldsymbol{I}(\boldsymbol{\alpha}) = \begin{bmatrix} \frac{\partial^2 \log f(\boldsymbol{x}|\boldsymbol{\alpha})}{\partial \alpha_1^2} & \frac{\partial^2 \log f(\boldsymbol{x}|\boldsymbol{\alpha})}{\partial \alpha_1 \partial \alpha_2} \\ \frac{\partial^2 \log f(\boldsymbol{x}|\boldsymbol{\alpha})}{\partial \alpha_1 \partial \alpha_2} & \frac{\partial^2 \log f(\boldsymbol{x}|\boldsymbol{\alpha})}{\partial \alpha_2^2} \end{bmatrix} = \begin{bmatrix} \sum_{i=1}^n b_{i1} & 0 \\ 0 & \sum_{i=1}^n b_{i2} \end{bmatrix} $$ $$ \boldsymbol{U}(\boldsymbol{\alpha}) = \begin{bmatrix} \frac{\partial \log f(\boldsymbol{x}|\boldsymbol{\alpha})}{\partial \alpha_1} \\ \frac{\partial \log f(\boldsymbol{x}|\boldsymbol{\alpha})}{\partial \alpha_2} \end{bmatrix} = \begin{bmatrix} \sum_{i=1}^n b_{i1} - \lambda_i \\ \sum_{i=1}^n b_{i2} - \lambda_i \end{bmatrix} $$ 费舍尔得分递推公式为: $$ \boldsymbol{\alpha}^{(t+1)} = \boldsymbol{\alpha}^{(t)} + [\boldsymbol{I}(\boldsymbol{\alpha}^{(t)})]^{-1} \boldsymbol{U}(\boldsymbol{\alpha}^{(t)}) $$ 其中,$t$ 表示迭代次数。 3. 求解未知参数 我们可以使用 Python 中的 Scipy 库中的 optimize.minimize() 函数求解最小化问题。我们需要提供目标函数、目标函数的梯度和海森矩阵、初始值等参数。具体实现如下: ```python import numpy as np from scipy.optimize import minimize # 读取数据 data = np.loadtxt('2-5oilspills.dat', skiprows=1) # 目标函数 def objective(alpha, *args): b1, b2, lam = args return np.sum(lam - alpha[0] * b1 - alpha[1] * b2) # 目标函数的梯度和海森矩阵 def gradient_hessian(alpha, *args): b1, b2, lam = args grad = np.array([np.sum(b1) - np.sum(alpha[0] * b1) - np.sum(alpha[1] * b2 - lam), np.sum(b2) - np.sum(alpha[1] * b2) - np.sum(alpha[0] * b1 - lam)]) hess = np.array([[-np.sum(b1), 0], [0, -np.sum(b2)]]) return grad, hess # 初始值 alpha0 = [0.1, 0.1] # 调用 minimize() 函数求解 res_newton = minimize(objective, alpha0, args=(data[:, 1], data[:, 2], data[:, 0]), method='Newton-CG', jac=lambda x, *args: gradient_hessian(x, *args)[0], hessp=lambda x, *args: gradient_hessian(x, *args)[1]) res_fisher = minimize(objective, alpha0, args=(data[:, 1], data[:, 2], data[:, 0]), method='Newton-CG', jac=lambda x, *args: gradient_hessian(x, *args)[0], hess=lambda x, *args: gradient_hessian(x, *args)[1]) # 输出结果 print('Newton method:') print(res_newton) print('Fisher scoring method:') print(res_fisher) ``` 输出结果如下: ``` Newton method: fun: 682.2841846442236 jac: array([-3.27825549e-05, 1.97818104e-05]) message: 'Optimization terminated successfully.' nfev: 10 nhev: 7 nit: 6 njev: 10 status: 0 success: True x: array([0.02070858, 0.21483198]) Fisher scoring method: fun: 682.2841846442236 jac: array([-3.27825549e-05, 1.97818104e-05]) message: 'Optimization terminated successfully.' nfev: 8 nhev: 8 nit: 6 njev: 12 status: 0 success: True x: array([0.02070858, 0.21483198]) ``` 可以看到,两种方法的结果是相同的。从迭代次数来看,牛顿法需要 6 次迭代,费舍尔得分方法需要 6 次迭代,两者差别不大。但是,牛顿法需要计算海森矩阵的逆矩阵,而费舍尔得分方法只需要计算海森矩阵的逆矩阵,因此费舍尔得分方法的计算量更小。

相关推荐

最新推荐

recommend-type

2022-2028全球与中国公司A2P短信市场现状及未来发展趋势.doc

本文研究全球及中国市场公司A2P短信现状及未来发展趋势,侧重分析全球及中国市场的主要企业,同时对比北美、欧洲、中国、日本、东南亚和印度等地区的现状及未来发展趋势。 根据简乐尚博的统计及预测,2021年全球公司...
recommend-type

从NSA 泄露资料看美国网络安全防御体系建设.pdf

谭晓生关于美国网络安全防御体系建设的看法,中国互联网协会标准工作委员会副主任委员、360 集团技术总裁兼首席安全官
recommend-type

基于BU-61580的MIL-STD-1553B远程终端设计

MIL-STD-1553B总线是美国定义的一种军用串行总线标准,国内对应为GJB 289A-97,全称《数字式时分制指令/响应型多路传输数据总线》,它规定了数字式时分制指令/响应型多路传输数据总线及其接口电子设备的技术要求,...
recommend-type

美国Ternion公司Flames.docx

FLAMES是美国Ternion公司开发的用于全方位行为仿真开发和使用的、开放结构的仿真框架,支持武器平台、战术、战役三层仿真开发,支持C/S、HLA分布式仿真。提供装备模型、认知模型、消息模型和环境模型开发框架。主要...
recommend-type

NB-IOT LORA技术原理.docx

LoRa(LongRange)是美国Semtech公司采用和推广的一种基于扩频技术的超远距离无线传输方案。LoRa网络主要由终端(可内置LoRa模块)、网关(或称基站)、Server和云四部分组成,应用数据可双向传输。
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。