问题标签 [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 - 原始数据中的缺失值
所以这是我的问题:我有 2010 年至 2019 年每日利率的原始数据。但是,有几个日期缺失。
1244 9-Jul-10 5.053
1245 8-Jul-10 5.007
1246 7-Jul-10 4.991
1247 6-Jul-10 4.976
1248 28-Jun-10 4.850
1249 21-Jun-10 4.900
1250 18-Jun-10 5.000
1251 14-Jun-10 3.800
1252 9-Jun-10 3.850
1253 1-Jun-10 3.950
1254 31-May-10 3.950
当我在 R 上导入数据时,它显示 1254 个数据,这是我实际拥有的数据量。
利息 日期 价格
1 21-Jan-19 3.550 2 20-Jan-19 3.550 3 19-Jan-19 3.550 4 18-Jan-19 3.550 5 17-Jan-19 3.630 摘要(利息) 日期价格 X
长度:1254 :0.861 分钟。: 1.000
等级 :character 1st Qu.:2.400 1st Qu.: 1.000
Mode :character 中位数 :2.900 Median : 2.000
Mean :3.000 Mean : 3.031
第三Qu.:3.670 第三Qu.: 6.000
Max. :5.674 最大。:10.000
NA :1222**
但是,在将其转换为时间序列时,它会对缺失日期的数据进行插值,结果总共为 3281。
摘要(interest.ts)分钟。第一曲。中位数平均第三曲。最大限度。0.861 2.450 2.900 3.001 3.680 5.674 长度(interest.ts)[1] 3281**
这会影响我对利率的预测。
我希望能够在我的日常值中识别缺失的日期并在 R 中自动替换它。我已经调查了包imputeTS
和lubridate
. 我不知道使用什么函数来重新编号日期并分别显示“价格”变量的 NaN。
然后我将使用 imputeTS 包中可用的正确插值方法来插值“价格”变量的值。
只是我只想知道如何在 R 中自动添加缺少的日期。由于缺少 1000 多个日期,因此在 Excel 上手动执行它很乏味。
r - 估算缺失的变量,但不在开头和结尾?
考虑以下工作示例:
我想使用 imputeTS 包中的 na_interpolation 估算时间序列内不同点的缺失值。但是,我不想在系列的开头或结尾估算可能有不同长度的缺失值(在我的应用程序中替换这些值没有意义)。
当我运行以下代码来估算系列时,所有 NA 都被替换:
我想要实现的是:
r - 插补后操作动物园对象列
我有一个大型的每小时时间序列数据集,显示不同时间的温度。该系列中有许多缺失值 (NA),因此我使用线性插值来使用 imputeTS 包估算缺失值。在插值之前,我被告知要为估算值创建一个列作为动物园对象。这用推算的温度替换了任何 NA 温度。
我正在做采暖度日分析,这是将建筑物加热到室温所需的加热。如果室外温度低于 15.5 度,则需要加热。我希望忽略(或设置为 NA)高于 15.5 的值,只关注以下温度。然后我想计算加热度天数,即(15.5-Temp)*1/24(一天 24 小时)。这通常很简单,但是我在处理动物园对象时遇到了麻烦。有人可以帮忙吗??
数据示例如下:
这些是我的插补步骤:
插补工作成功,用估计值替换了 NA 值,但我无法操纵动物园对象“airTempImp”来创建开头段落中指定的加热度天数列。
我尝试过使用 ifelse、ifelse.zoo、transform 但似乎都没有工作!
谢谢!
r - 填补季节性数据(缺失数据插补)R中的卡尔曼滤波器
我正在尝试填补天气数据,我的数据是半小时一次,但在这里我为每小时数据准备了一个可重现的代码。因为天气数据是季节性的,首先我使用 stat::ts() 创建一个时间序列,然后将其提供给卡尔曼滤波器 (imputeTS::na_seadec) 或 forecast::na.interp,但是代码非常慢,而如果我在没有创建 ts 的情况下将原始数据提供给 kalam 过滤器,它会非常快,但它会丢失季节性信息。另外,我在 imputeTS::na_seadec() 中尝试了 find_frequency = TRUE,这再次使代码太慢(单个时间序列需要数小时和数小时)。我想知道是否有办法使用卡尔曼滤波器但保留季节性信息。
r - 如何用缺失值前后的平均值填充向量中的缺失值
目前我正在尝试在 R 中的向量中估算值。估算的条件是。
- 查找所有 NA 值
- 然后检查它们之前和之后是否有现有值
- 还要检查 NA 之后的值是否大于 NA 之前的值
- 如果满足条件,计算取前后值的平均值。
- 用推算值替换 NA 值
我开始编写代码来检测可以估算的值。但是我遇到了以下问题。
然而,这仅检测到可能是可推算的 NA,并且仅适用于示例一。它是不完整的,不幸的是超级难以阅读和理解。
对此的任何帮助将不胜感激。
r - 按组插值估算缺失
NA
我试图通过多组插值来 估算缺失值。
我只是子集一个简单的例子:
我用过na.approx()
,但是错了。似乎我的数据在每组的第一次观察中缺少价值。
我也尝试过打包imputeTS
但不工作。
两者都不正确。这是否意味着使用插值来估算缺失不是一个好主意?
我不确定哪种插补方式更好(不想使用mean
or median
)。我正在考虑使用PS
趋势来估算MP
。(只是我的想法,不是问题)
r - 用指数估计填空
我正在尝试用显示指数增长的数字填充 NA 值。下面是我正在尝试做的数据示例。
我已经使用过%>% arrange(month, X2009H1N1) %>%
group_by(X2009H1N1, type ) %>%
mutate(aprox_MidLevelRange = zoo::na.approx(MidLevelRange, na.rm = FALSE))
,但结果对我来说并不是指数级的。谢谢
r - R 中 imputeTS 的 na_kalman() 问题
我正在尝试使用 R 中的 imputeTS 包在单变量时间序列中估算 NA 值,当我尝试使用 na_kalman() 通过卡尔曼平滑进行估算时,我注意到了一些奇怪的事情。
我的数据是日平均温度数据,所以它类似于下面代码中的伪数据,它用 NA 模拟了 2 年的数值数据:
现在是奇怪的部分:我注意到如果我尝试将这个时间序列传递给 na_kalman() 函数,它似乎总是让我的 R 会话崩溃。
但是,如果我使用与频率为 1 的数值向量或时间序列相同的数据,它似乎工作得很好。出于某种原因,这似乎表明问题出在时间序列的频率上。
如果我尝试使用卡尔曼平滑作为 na_seadec() 的选项,这似乎也会发生,无论 find_frequency 是否为 TRUE 或 FALSE:
谁能帮我理解为什么会这样?
r - 用最小间隔插入 R 中的最后一个或下一个观察值的 NA
我想在两个或多个间隙中使用最后一个观察结果(locf)或下一个观察结果向后(nocb)来估算缺失值。
为了确定填充缺失值的方向(上/下),对数据框中的第一列(间隔)进行加权。插值(locf/nocb)应该从最小值结束(对应于向外的 NAs 行的间隔值)。默认的 fillna 是 locf。
示例:异常 nafill 的逻辑:在 ID2 列第 5-7 行(包括标题)中,方向将为 nocb,因为 (Interval[7,] value= 50) 小于 Interval[5,] value=100。
尝试使用df1 <-df %>%fill(ID1, ID2, ID3,which.min(Interval)) %>% #default direction down
fill(ID1, ID2, ID3, .direction = "up",which.min(Interval))
aint 工作,请协助更正或建议另一种有效的 R 解决方案。预先感谢您的帮助。
输入
预期产出
python - 通过 Anaconda 安装“imputeTS”以在 Python 中使用
我正在尝试在我的 Python 代码中使用“imputeTS”,并通过 Anaconda 安装了 rpy2。(我的笔记本电脑上没有 R)。但是 rpy2 似乎没有包“imputeTS”(loadNamespace(name) 中的错误:没有名为“imputeTS”的包)。我还尝试使用“conda install -cr r-imputeTS”,但它仍然给了我找不到包的错误。只是想知道是否有办法通过 Anaconda 安装“imputeTS”包以在 Python 中使用?谢谢!