在R中获取多年的股票年度财务数据

mol*_*ean 0 r quantitative-finance quantmod

假设我想要在R Rross Profit on Total Revenue中回归.我需要这方面的数据,越多越好.我发现CRAN上有一个非常有用的库:quantmod,它可以满足我的需要.

library(quantmod)
getFinancials(Symbol="AMD", src="google")
#to get the names of the matrix: rownames(AMD.f$IS$A)
Total.Revenue<-AMD.f$IS$A["Revenue",]
Gross.Profit<-AMD.f$IS$A["Gross Profit",]

#finally:
reg1<-lm(Gross.Profit~Total.Revenue)
Run Code Online (Sandbox Code Playgroud)

我所遇到的最大问题是这个库只能获取4年的数据(4次观察,并且只有4次观察才能进行回归).有没有其他方式(可能是其他库)可以获得超过4年的数据?

Slo*_*ner 6

我同意这不是一个R编程问题,但在这个问题(可能)关闭之前,我还是会发表一些评论.

归结起来:即使你有钱花钱,在各个行业和市场上获得可靠的基础数据也很困难.如果您正在寻找美国,那么有许多选择,但所有主要(读"相对可靠")提供商每月需要数千美元 - FactSet,Bloomberg,Datastream等.对于它的价值,我更喜欢使用基础数据并使用FactSet.

一般来说,由于每个提供商提供的Excel工具都比较成熟,我发现用数据填充电子表格然后将数据读入R更容易.然后,我通常最多只处理几十家公司的基本原则,因为一旦你离开"已知"公司的域名,检查异常所需的时间会呈指数级增长.

有许多潜在的"陷阱".最明显的是,不同部门的定义各不相同.例如,工业公司的"销售"与银行的"销售"非常不同.另一个问题是定义的变化.几乎每年都会出现一些会计法规或其他变化并打破您的数据系列.去年报道少数民族,但今年这个项目被转移到损益表中的另一个位置,依此类推.

另一个问题是公司自身在变化.例如,如何处理合并,收购和分拆?这种事情可以使衡量有机销售增长几乎不可能.另外要记住的一点是,如果您处理经营或净利润,您必须考虑例外情况以及是否对其进行调整.

与美国以外的公司打交道会增加一大堆进一步的问题.当然,主要的数据提供商试图在全球范围内实现标准化(例如FactSet Fundamentals).这只是增加了另一层抽象,通常很难检查数据是如何被操纵的.

简而言之,获取数据是繁重的,我知道没有可靠的免费资源.除非你正在为一个非常同质的公司集团处理最简单的项目,否则即使你拥有这些数据,这也是一堆蠕虫.