问题标签 [imputets]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
r - 在R的for循环中迭代地填充一个新列
我正在使用一个大型数据集,该数据集每月测量多个位置,但每个站点都有不同数量的测量和 NA,从而创建了一个损坏的时间序列。为了解决这个问题,我创建了一个 for 循环,在每个站点循环,以使用插值技术填补空白。由此,我得到一个插值输出,理想情况下希望将其添加回原始数据集中。例如:
我想要的是取 d$fit 并将其重新匹配到一个新列 df$fit 中,以便正确匹配测量次数和每个站点。有什么建议,或者对我的方法进行彻底改革?提前致谢!
r - 什么是适合非线性 TS 数据的插补函数?
我正在尝试在 R 中填充缺失的数据。这是一个简单的变量,带有日期。
我正在使用 ImputeTS,但是当我映射输出时,我可以告诉数据已经输出。在 Excel 中,当我使用直线计算时,它似乎更接近。我想避免这种情况,因为我过度依赖太少的数据点。
[图表结果][1] [1]:https://i.stack.imgur.com/ozHDD.jpg
在图像中,您可以看到 excel 估计值比 R 更接近线。
以下是我用作输入的数据。
谢谢
r - 基于 ID 的时间序列插补
我正在处理时间序列数据。数据集是:
imputeTS
我想使用包来估算缺失值。该软件包适用于个人ID
。
因为A02
它也很完美:
对于所有数据,它不会起作用,因为它需要所有 14 年作为一个连续的时间序列。根据ID
. 我需要帮助来获得一个可以解决这个问题的循环功能。
正确的数据应该是这样的
java - 用 ARIMA 非季节性状态模型实现卡尔曼滤波器
我需要编写一个应用程序,在时间序列信号上估算一些缺失值。我在 R 中使用ImputeTS
包做了类似的事情,但现在我需要在 Java 中做。
我刚刚搜索了互联网,发现Apache Kalman过滤器是 Java 中 Kalman 过滤器的现有实现。但似乎他们没有在过滤器内使用 ARIMA 内部模型。例如,Apache common 中有转换矩阵和测量矩阵,但是我如何更改它们以便可以将具有 (p,q,d) 参数的 ARIMA 非季节性模型用作卡尔曼滤波器的内部状态模型?
我不希望有人编写所有代码,但也许有人可以解释如何进行上述操作?
r - na.interpolation(data[, i], option) 中的错误:输入 x 不是数字
我有以下问题。我有一个数据框,由国家“标识符”(字母+数字)、“年份”(数字)、“唯一标识符”(标识符+年份)、“劳动力市场 1”(数字)统计数据和“劳动力市场 2”统计数据组成"(数字),其中劳动力市场 2 的一些数据缺失,需要进行插值。运行库(imputeTS)后,我收到以下消息:
库(imputeTS)警告消息:未知或未初始化的列:'x'。
运行后
数据 <- na.interpolation(数据)
我收到以下错误:
警告消息:1:未知或未初始化的列:'x'。2: imputeTS: 由于此错误>in na.interpolation(data[, i], option): 输入 x 不是数字,因此未对第 1 列执行插补
3: imputeTS: 由于这个错误>in na.interpolation(data[, i], option), 没有对第 2 列执行插补: 输入 x 不是数字
4: imputeTS: 由于此错误>in na.interpolation(data[, i], option): 输入 x 不是数字,因此未对第 3 列执行插补
5: imputeTS: 由于这个错误>in na.interpolation(data[, i], option), 没有对第 5 列执行插补: 输入 x 不是数字
有趣的是,在我将 R 版本从 3.2.3 更新到最新的 3.5.1 (2018-07-02) -- "Feather Spray" 后,na.interpolation(data) 停止工作。
我想知道是否有解决方案可以消除警告并执行插值而不恢复到旧版本的 R。
先感谢您!
r - 有限数量的 NA 的插值
我有一个数据框 df ,其中有一列包含值(仪表读数)。一些值偶尔会丢失 (NA)。
df 摘录:
我正在尝试做的事情:
如果只有一个连续的 NA,我想插值(例如第 2 行的 na.interpolation)。但是如果有两个或多个连续的 NA,我不希望 R 插值并将值保留为 NA。(例如第 5 行和第 6 行)。
到目前为止,我尝试的是带有 if 条件的循环(for ...)。我的做法:
给我 :
任何想法如何做到这一点?我在这里完全错了吗?
谢谢!
r - 在 R 的 KFAS 包中使用卡尔曼平滑来估算缺失数据
我有一个数据框(底部的可重复示例),其中包含一列表示降水量的值、一列测量日期值以及一列分别用于纬度、经度和海拔坐标的列。这些数据涵盖了 10 年的测量,以及 10 个不同的纬度/经度/海拔点(我将称之为“站”的级别)。
降水列是 MCAR,缺少 3.4% 的值。我的目标是估算缺失值,同时考虑时间相关性(NA 在其台站时间序列中的位置)和空间相关性(NA 与其余点的地理关系)。
我不认为典型的基于 ARIMA 的技术,例如在 Amelia 或 ImputeTS 中发现的技术会满足,因为它们仅限于单变量数据。
我对使用 KFAS 包很感兴趣,因为我相信它可以让我将这些不同的“站”视为“状态空间”中的“状态”,并使我能够使用卡尔曼平滑来“预测”基于空间和时间变量的相关性。
我的麻烦是我很难克服 KFAS 的学习曲线并实施这个模型。文档很少,几乎没有教程或针对初学者的材料。我觉得我什至不知道如何开始。
可以这样使用 KFAS 吗?您将如何应对这一挑战?KFAS 中的基本步骤是什么样的?
由于我几乎不知道如何构建这个问题,因此我努力制作良好的可重复数据。该样本数据涵盖了 1 个月内的三个“站点”,我认为这足以进行演示。这些值是现实的,但并不准确。
r - 将 NA 值替换为预测的时间序列包
我有一个如下数据集:
我的数据集有 100 列。NA
各自列中的 s 之间没有缺失值。有谁知道一个包或一个函数,它将预测或使用移动平均值来计算第一个或最后一个数值之前和之后的值?
到目前为止,我已经对此进行了一些研究,我能找到的最好的方法是na.fill
,但这只会在列的开头和结尾重复值。
r - R:为什么合并会丢弃数据?如何为合并插入缺失值
我正在尝试合并两个相对较大的数据集。我正在通过 SiteID 进行合并 - 这是位置和日期/时间的唯一指标,由年、月 = 月、日和小时 = 小时组成。
问题是在merge
某处丢弃数据。最小值、最大值、平均值和中值都发生了变化,当它们应该是相同的数据时,只需合并即可。我已将数据转换为字符并检查字符串是否匹配,但仍然丢失数据。我也试过left_join
了,但这似乎没有帮助。请参阅下面的更多细节。
编辑:合并正在删除数据,因为每个("SiteID", "Year","Mo","Day", "Hr")
. 因此,我需要dB
在合并之前插入缺失值(请参阅下面的答案)。
结束编辑
请参阅页面底部的链接以重现此示例。
现在来比较我的SiteID
值,我使用 unique 来查看我有哪些字符串,并setdiff
查看 R 是否将任何字符串识别为缺失。每个站点都缺少一个站点ID,但这没关系,因为数据中确实缺少它(不是字符串问题)。
现在,当我查看数据(按 SiteID 总结)时,它看起来像是一个不错的完整数据框——这意味着我拥有每个站点的数据,我应该拥有。
在这里,我合并两个数据集 PC17 和 dB,方法是"SiteID", "Year","Mo","Day", "Hr"
- 保留所有 PC17 值(即使它们没有与之匹配的 dB 值;all.x=TRUE
)。
但是,当我查看这些数据的摘要时,现在所有的SiteID
值都有不同的值,并且某些站点完全缺失,例如“CU3D”和“CU4D”。
我将所有内容都设置as.character()
为第一行中的字符。此外,我已经检查了Year
, Day
, Mo
, andHr
和setdiff
,unique
就像我在上面对所做的SiteID
那样,这些字符串不匹配似乎没有任何问题。
我也尝试过合并数据集的dplyr
功能left_join
,但并没有什么不同。