【问题标题】:Discrete Integration of a 1st Differenced Logged Series in RR中第一个差分记录系列的离散积分
【发布时间】:2019-05-07 09:11:39
【问题描述】:

我有一个第一个差异记录系列,我需要将其转换回原始级别单位。我如何在 R 中做到这一点?

以下是我的数据系列、它们各自的转换和尝试的代码:

原创系列:

 o <- c(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)

记录系列:

l <- c(0.693, 1.099, 1.386, 1.609, 1.792, 1.946, 2.079, 2.197, 2.303)

第一个差异记录系列:

dl <- c(-0.693, -1.792, -2.485, -2.996, -3.401, -3.738, -4.025, -4.277, -4.500)
diffinv(dl, differences = 1)

期望的输出:

 [1]  1 2 3 4 5 6 7 8 9 10

尝试的代码:

x <- c(1:10)
lx <- log(x)
dlx <-diff(lx)


diffinv(dlx, differences = 1)

电流输出:

[1] 0.0000000 0.6931472 1.0986123 1.3862944 1.6094379 1.7917595 1.9459101 [8] 2.0794415 2.1972246 2.3025851

【问题讨论】:

    标签: r integration difference


    【解决方案1】:

    只需要记住你的定义。 e ^ (ln (x)) = x,因此

    exp(diffinv(dlx, differences = 1))
    [1]  1  2  3  4  5  6  7  8  9 10
    

    【讨论】:

    • 现在假设我的原始系列是一个连续系列,即:o
    • @Darlene 看看?diffinv。您可以在那里设置初始值,这就是相同代码不起作用的原因。您需要指定初始值。积分时,总是有一个常数。在第一种情况下,它只是 0,所以我们不需要指定它。在这种情况下,我们这样做。 exp(diffinv(dl, differences = 1, xi = log(1.1)))
    猜你喜欢
    • 2019-05-07
    • 2020-07-06
    • 2017-08-16
    • 1970-01-01
    • 2023-03-13
    • 2016-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多