《分析模式:可重用对象模型》学习笔记之四:企业财务分析中的观察和测量02

news2025/2/25 9:20:41

这个模型基本解决问题,可以方便定义层次,以及反映了三个不同的维数元素,也反映了企业部门单元和维数元素的关系,但是很快可以看到,在这里,维数被局限在三个:也就是说,如果维数需要改变,
那么整个模型都需要更改,那是我们不希望看到的。因此稍作改进之后,得到以下一个模型:

在这个模型里,增加维数变得容易了,而且,用关键字映射(keyed mapping)以及数量上的约束来保证Enterprise Segment 在每个维数上仅对应一个Dimension Element。
每一个层次都需要一个顶层元素,可以定义为“all”,或者“空(nil)”。
如果考虑到维数级别(Level),可以修改上面的模型如下: 

 

在这里,可以定义每一个维数元素的级别,而级别由这个元素在维数层次中的位置决定的,例如,在维数层次中,元素新汉普的上级是东北地区,再上级是美国,往上是all,所以它的级别为3,得到维数级别在list 中对应的结果是地区(Area)。

1.1.1 定义维数(Defining the Dimensions)


要得到比较合理的Enterprise Segment(企业部门单元)定义,维数(Dimension)的定义也是很重要的一个环节。最简单的方法是遵循某种显而易见的组织结构,但是不同的分析会有不同的侧重点,所以这样也并不是每次都可行。
一个更好的办法是观察层次最底层的部分,然后看在那里的是怎么分类的,例如在ACM 的例子里,可以看到重点是咖啡机的出售和出租,因此可以得到咖啡机类别,出售出租地区和销售目标行业这三个维数,用一个名词焦点事件(focal event)来表示这种分类的依据。
分类可能会很复杂而出现交叉,但是,在现实的情况中,很少出现维数(Dimension)会大于6 的情况,导致实际分析中可能需要对上一节的模型稍作修改:尽量考虑一下有没有这样的必要。
维数(Dimension)通常不必细分到最末端的一层,例如在ACM 的例子里不值得,或者甚至可能一直往下分析到每个销售人员的销售范围甚至细到每个具体的顾客,这样的层次对理解整个系统结构是有帮助的,由于复杂度以及具体细节暂时不进行深入讨论。
维数可以由系统分析人员显式定义;否则,就得由企业数据库决定,如果是这样,每个维数就得定义一个builder 操作从数据库查询所要的数据,这也允许系统随着时间的推进增加维数的节点(add nodes to the dimension over time)。


1.1.2 维数和企业部门单元的属性(Properties)


对于维数(Dimension)而言,一条非常重要的规则是维数层次中,上面级别的测量可以由底下级别的测量得到,例如我们想得到东北地区的销售收入,就可以累计东北地区下属地区所有的销售收入。每一个维数都必须支持这一规则,具体运算通常是累加,但也有例外(参见本文第2.5 节)。
维数的定义经常跟企业结构有关,不过还有一个非常重要的通用维数是时间(time),也满足上一规则。
企业部门单元(Enterprise Segment)还有一个有趣的属性,那就是:它们是概念存在的,就像许多基础的数据类型一样,哪怕它们并没有创建成为软件对象。我们仍然把它当作非基础数据类型,创建时是一种查找/创建形式,即首先查看要求的实例是否存在,如存在,返回它作为结果,如不存在,创建它。 

1.2 测量协议(Mesurement Protocol)


在企业金融分析中要用到许许多多的测量(measurements),这些测量不是用手工输入的,它们通常来自数据库,或者从其他的measurements 计算而来,也就是说,获得这些测量的途径很重要,下面的模型给出了关于测量协议(Mesurement Protocol)的一个大体框架,跟第三章中的模型很类似:
在在上述模型中,给出了两种测量协议:Source Measurement Protocol 和Calculated Measurement Protocol,
其中Source Measurement Protocol 指的是从企业数据库查询,一般来说一个对象知道去哪里取数据,哪怕实际的代码可能在另外的层次中(用户应该决定)。而Calculated Measurement Protocol 代表测量由系统中已有的测量对象计算而来。
需要指出的是,在这个模型中,一种类型(Phenomenon Type)可能对应几种测量协议,例如,同一个Phenomenon Type 可能同时拥有源/计算协议。一般来说应该由用户确定到底采用哪个具体的协议,但也可以从 Phenomenon Type 到Measurement Protocol 形成一个映射表,并从前到后表明各个Measurement Protocol 的优先级,以供系统选用。
还有要注意的是Calculated Measurement,连接到它的源(Sources)测量对象,这是基于计算结果的通用原则:当结果作为对象时,它应该知道哪种计算方式给出结果(协议),还有对这个协议的输入(Sources)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1960343.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

变量在内存中的表现形式

变量的存储在内存中,通常涉及以下几个部分: 栈区:变量名通常存储在栈区(空间小,运行速度快),栈区用来存储变量名、函数名、常量名等。当你声明一个变量(比如 $a)&#x…

OnlyOffice在线部署

部署服务环境:Centos7.6 curl -sL https://rpm.nodesource.com/setup_6.x | sudo bash 安装yum-utils工具 yum install yum-utils 添加nginx.repo源(Nginx官网有最新版,直接copy即可) vim /etc/yum.repos.d/nginx.repo [nginx-stable] namenginx st…

29.jdk源码阅读之Exchanger

1. 写在前面 Exchanger 是 Java 并发包 (java.util.concurrent) 中的一个同步点工具类,用于在两个线程之间交换数据。它提供了一种简单而强大的方式来实现线程之间的数据交换。不知道大家在日常工作中或者面试中 有遇到它?下面几个问题可以一块来探讨下&…

028-GeoGebra中级篇-脚本的初步的探索

GeoGebra 的脚本功能允许用户通过不同的触发机制(如点击、更新、输入框变化、拖动结束)和全局 JavaScript 自定义图形和交互行为,实现动态数学模型和用户交互,同时 ggbOnInit() 函数可在应用初始化时设置默认状态,提供…

Git基本原理介绍及常用指令

文章目录 前言一、Git是什么?集中化的版本控制系统分布式版本控制系统 二、Git基本概念三、git命令操作配置用户信息常用指令 总结 前言 如果你用Microsoft Word写过论文,那你一定有这样的经历:想删除一个段落,又怕将来想恢复找不…

MySQL基础练习题8-每月交易1

题目: 查询来查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额。 准备数据 分析数据 第一步:用substr()函数来截取到月份,用group by为每个国家分组来查找每个国家 第二步:用count()和sum()来求事务数…

14.FineReport制作带筛选按钮的报表和图表

1.首先连接自带的sqlite数据库,具体方法参考下面的链接 FineReport连接自带的sqlite数据库 2.文件 – 新建普通报表 3.新建数据库查询 4.查询自带的销量表 5.模版,页面设置 6.方向选择横向 7.合并单元格,并添加斜线表头 8.表格中添加字段信…

iPhone手机识别提取藏文字体,推荐《藏语翻译通》藏文OCR识别神器!

如果你正在寻找一款支持藏文OCR识别提取文字的App,我们将向你推荐《藏语翻译通》App,一款专门为iPhone手机用户设计的藏文识别与翻译工具。 功能特点 《藏语翻译通》是一款集藏文OCR识别、藏汉互译、语音识别翻译于一体的应用。用户只需要拿起手机扫一…

【原创】java+ssm+mysql图书信息管理系统设计与实现

个人主页:程序员杨工 个人简介:从事软件开发多年,前后端均有涉猎,具有丰富的开发经验 博客内容:全栈开发,分享Java、Python、Php、小程序、前后端、数据库经验和实战 开发背景: 随着数字化和信…

【排序】快速排序详解

✨✨欢迎大家来到Celia的博客✨✨ 🎉🎉创作不易,请点赞关注,多多支持哦🎉🎉 所属专栏:排序 个人主页:Celias blog~ 一、快速排序的思想 快速排序的核心思想是: 选定一个…

关于Unity转微信小程序的流程记录

1.准备工作 1.unity微信小程序转换工具,minigame插件,导入后工具栏出现“微信小游戏" 2.微信开发者工具稳定版 3.MP微信公众平台申请微信小游戏,获得游戏appid 4.unity转webgl开发平台,Player Setting->Other Settings->Color Space->Linear 5. unity工…

程序员面试的“八股文“:助力还是阻力?

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学…

知识付费培训考试题库h5小程序开源版开发

知识付费培训考试题库h5小程序开源版开发 企业内部培训与考试课堂系统,支持丰富课程类型,还拥有全面的题型体系,并能自动评分。应用具备响应式设计,加之学习进度跟踪与评论功能,打造互动式学习环境,是现代…

不知道服务器jenkins账户密码,利用自己账户和sudo登录jenkins账户

在服务器上不知道jenkins账户密码,只知道自己账户密码,如何登录jenkins账户 sudo -u jenkins -i

“八股文”在实际工作中是助力、阻力还是空谈

目录 1.概述 1.1.对实际工作的助力 1.2.存在的问题 2.“八股文”对招聘过程的影响 2.1.“八股文”在筛选候选人时的作用 2.2.面试中的比重及其合理性 2.3.如何平衡“八股文”与实际编程能力的考察 3.“八股文”在日常工作中的实用价值 3.1.在团队协作环境中进行有效沟…

Burning In 测试

什么是老化测试? 芯片Burning In测试系统是一种高度集成的测试设备,它结合了温度控制、电源控制、环境控制以及数据采集与分析等多个子系统。该系统能够在可控的条件下对芯片进行长时间的老化测试,从而有效地排查潜在问题,提高芯片…

MySQL 8.0 新特性汇总

文章目录 前言1. 运维管理1.1 可持久化变量1.2 管理员端口1.3 资源组1.4 数据库粒度只读1.5 show processlist 实现方式1.6 加速索引创建速度1.7 控制连接的内存使用量1.8 克隆插件1.9 mysqldump 新增参数1.10 慢日志增强1.11 快速加列1.12 InnoDB 隐藏主键1.13 Redo 配置1.14 …

快速方便地下载huggingface的模型库和数据集

快速方便地下载huggingface的模型库和数据集 方法一:用于使用 aria2/wgetgit 下载 Huggingface 模型和数据集的 CLI 工具特点Usage 方法二:模型下载【个人使用记录】保持目录结构数据集下载不足之处 方法一:用于使用 aria2/wgetgit 下载 Hugg…

java算法day26

java算法day26 207 课程表208 实现Trie(前缀树) 207 课程表 这题对应的知识是图论里的拓扑排序的知识。从题意就可以感受出来了。题目说如果要学习某课程,那么就需要先完成某课程。 这里我描述比较复杂的情况:课程与课程之间也有可能是多对一的场景或者…