- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我的数据集使用 GAM
(广义加性模型)。该数据集有 32 个观测值,具有 6 个预测变量和一个响应变量(即功率)。
我正在使用 gam()
包的 mgcv
函数来拟合模型。每当我尝试拟合模型时,都会收到如下错误消息:
Error in gam(formula.hh, data = data, na.action = na.exclude, :
Model has more coefficients than data
library(mgcv)
formula.hh <- as.formula(power ~ s(temperature)
+ s(prevday1) + s(prevday2)
+ s(prev_2_hour) + s(prev_instant1))
model <- gam(formula.hh, data = data, na.action = na.exclude)
dput()
函数附加数据
> dput(data)
data <- structure(list(power = c(250.615931666667, 252.675878333333,
1578.209605, 186.636575166667, 1062.07912666667, 1031.481235,
1584.38902166667, 276.973836666667, 401.620463333333, 1622.50827666667,
273.825153333333, 1511.37474333333, 291.460865, 215.138178333333,
247.509348333333, 1140.21383833333, 1680.63441666667, 1742.44168333333,
592.162706166667, 1610.7307, 615.857495, 1664.13551, 464.973065,
1956.2482, 1767.94469333333, 1869.02678333333, 1806.731, 1746.3731,
549.216605, 1425.42390166667, 1900.32575, 1766.18103333333),
temperature = c(31, 30, 28, 28, 27, 31, 32, 32, 30.5, 33,
33, 30, 32, 24, 30, 26, 28, 32, 34, 25, 32, 33, 35, 36, 36,
37, 35, 33, 35, 33, 35, 32), prevday1 = c(NA, 250.615931666667,
252.675878333333, 1578.209605, 186.636575166667, 1062.07912666667,
1031.481235, 1584.38902166667, 276.973836666667, 401.620463333333,
1622.50827666667, 273.825153333333, 1511.37474333333, 291.460865,
215.138178333333, 247.509348333333, 1140.21383833333, 1680.63441666667,
1742.44168333333, 592.162706166667, 1610.7307, 615.857495,
1664.13551, 464.973065, 1956.2482, 1767.94469333333, 1869.02678333333,
1806.731, 1746.3731, 549.216605, 1425.42390166667, 1900.32575
), prevday2 = c(NA, NA, 250.615931666667, 252.675878333333,
1578.209605, 186.636575166667, 1062.07912666667, 1031.481235,
1584.38902166667, 276.973836666667, 401.620463333333, 1622.50827666667,
273.825153333333, 1511.37474333333, 291.460865, 215.138178333333,
247.509348333333, 1140.21383833333, 1680.63441666667, 1742.44168333333,
592.162706166667, 1610.7307, 615.857495, 1664.13551, 464.973065,
1956.2482, 1767.94469333333, 1869.02678333333, 1806.731,
1746.3731, 549.216605, 1425.42390166667), prev_instant1 = c(NA,
237.211388333333, 455.932271666667, 367.837349666667, 1230.40137333333,
1080.74080166667, 1898.06056666667, 326.103031666667, 302.770571666667,
1859.65283333333, 281.700161666667, 1684.32288333333, 291.448878333333,
214.838578333333, 254.042623333333, 1380.14074333333, 824.437228333333,
1660.46284666667, 268.004111666667, 1715.02763333333, 1853.08503333333,
1821.31845, 1173.91945333333, 1859.87353333333, 1887.67635,
1760.29563333333, 1876.05421666667, 1743.10665, 366.382048333333,
1185.16379, 1713.98534666667, 1746.36006666667), prev_instant2 = c(NA,
275.55167, 242.638122833333, 220.635857, 1784.77271666667,
1195.45020333333, 590.114391666667, 310.141536666667, 1397.3184605,
1747.44398333333, 260.10318, 1521.77355833333, 283.317726666667,
206.678135, 231.428693833333, 235.600631666667, 232.455201666667,
281.422625, 256.470893333333, 1613.82088333333, 1564.34841666667,
1795.03498333333, 1551.64725666667, 1517.69289833333, 1596.66556166667,
2767.82433333333, 2949.38005, 328.691775, 389.83789, 1805.71815333333,
1153.97645666667, 1752.75968333333), prev_2_hour = c(NA,
219.024983, 313.393630708333, 263.748829166667, 931.193606666667,
699.399163791667, 754.018962083334, 272.22309625, 595.954508875,
1597.21487208333, 512.64361, 1236.42579666667, 281.200373333334,
196.983981666666, 230.327737625, 525.483920416666, 391.120302791667,
610.101280416667, 247.710625543785, 978.741044166665, 979.658926666667,
1189.25306041667, 814.840889166667, 989.059700416665, 1352.2367025,
1770.20417833333, 1847.11590666667, 843.191556416666, 363.50806625,
904.924465041666, 841.746712500002, 1747.73452958333)), .Names = c("power",
"temperature", "prevday1", "prevday2", "prev_instant1", "prev_instant2",
"prev_2_hour"), class = "data.frame", row.names = c(NA, 32L))
最佳答案
This dataset has 32 observations.
NA
。
From this error message, I infer that I have more predictor variables as compared to the number of observations.
s()
选择基础维度(或等级)为 10 以实现 1D 平滑,给出 10 个原始参数。在居中约束(参见
?identifiability
)之后,您得到的参数少了一个,但每个平滑仍然有 9 个参数。请注意,您有 5 个平滑!所以你有 45 个平滑项的参数,加上一个截距。这大于您的 30 个数据。
I guess this error is generated during cross-validation procedures.
n
(数据数量)和什么是
p
(参数数量)。
Is there any way to handle this error?
k
而不是使用默认值。但是对于三次样条,最小
k
是 3。例如,使用
s(temperature, bs = 'cr', k = 3)
。注意我还将
bs = 'cr'
设置为使用自然三次样条,而不是薄板回归样条的默认
bs = 'tp'
。你当然可以使用它,但对于一维平滑
"cr"
是一个自然的选择。
关于r - mgcv gam() 错误 : model has more coefficients than data,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36719799/
我想在 GAMS 模型中找到我的错误。我没有任何错误,但我的模型效果不佳 GAMS 中是否有任何调试工具?(如其他软件中的调试器工具,例如 MATLAB) 最好的事物 最佳答案 不幸的是,我没有遇到任
我正在使用 GAM 对逻辑回归中的时间趋势进行建模。然而,我想从中提取拟合样条线以将其添加到另一个无法在 GAM 或 GAMM 中拟合的模型中。 因此我有两个问题: 我怎样才能随着时间的推移拟合更平滑
我在 ggplot2 中使用 stat_smooth 函数,决定我想要“拟合优度”,并为此使用了 mgvc gam。我突然想到我应该检查以确保它们是相同的模型(stat_smooth vs mgvc
我在大型数据集上估算一个非常简单的模型。公式看起来像 scam::scam(formula = ratio ~ s(rate,bs="mpi")) 然后使用这些模型为新数据生成预测。我不关心模型的任
我的数据框看起来像: head(bush_status) distance status count 0 endemic 844 1 exotic 8
我正在对过去大约 40 年中零星收集的物种计数数据与一系列环境预测因子进行建模。目前,我的 GAM 是这样的: k = gam(CountIndividuals ~ s(Date, bs = 'cr'
我使用 gam 拟合了广义加性模型来自 mgcv包裹。我有一个数据表,其中包含我的因变量 Y , 自变量 X , 其他自变量 Oth和一个两级因子 Fac .我想适合以下型号 Y ~ s(X) + O
我在 GMAS 中编写我的 MIP 模型,求解器表明我的模型中有 1535272 行、3287490 列和 8425140 个非零(我不确定它对于 GAMS 来说是否太大)。经过 899677 次迭代
我的数据集有许多冗余观测值(但每个观测值都应该被计数)。因此我考虑在 GAM 中使用“权重”选项,因为它可以显着减少计算时间。 gam函数(在 mgcv 包中)解释说它们是“等价的”(来自参数 ?ga
我无法理解为什么收到此错误。我的两个变量都是数字且长度相同,当变量不相同时,我用NA调整数据。但是我仍然收到一个错误,我的响应变量超出范围 year 0))>=5) # If at least
我有3套,我想知道哪个元素不属于 对称差集。 Set1={1*125} 组2={20*450} Set3={45*235} 我用 SymAB 显示了 setA 和 set B 的对称差异。 我计算 s
我不明白为什么下面的两个 gam 模型会产生不同的结果。唯一的区别是在其中一个模型中,我在函数 gam 和 s 之前添加了命名空间说明符 gam::。 我想这样做是因为我正在探索在 gam 包和 mg
我正在对涉及两个拟合步骤的物种分布数据进行障碍类型分析。第一步是使用 family=quasibinomial 的所有数据对 (m1) 存在/不存在数据建模。第二步 (m2) 是使用 family=G
问题移至 CrossValidated 我试图表达 gam 中两个类别之间“增长速度”的差异造型。我的数据表示随着时间的推移 [0-100%] 的累积值,但我希望(为了与其他研究的可比性)以年度值来表
我有一个 gam我所知道的模型在 R 中运行良好,但是当我尝试“train ”使用 caret 相同的模型时package 它返回一个错误,指出输入数据列是列表。有没有人明白这一点? 我正在运行的代码
我有一个非常简单的时间序列数据集,由单个变量(“AVERAGE”)的年平均值组成。我希望研究时间序列的“趋势”分量的变化率(一阶导数)和加速度(二阶导数)以及相关的标准误差。我使用MGCV的GAM和P
我使用 gam 在负二项式族中拟合广义加性模型来自 mgcv包裹。我有一个包含因变量 y 的数据框, 自变量 x , 一个因素 fac和一个随机变量 ran .我适合以下模型 gam1 sum(r
我正在阅读“R 中的应用程序统计学习简介”(ISLR),我被困在第 295 页的一部分,即广义加法模型实验室。当我运行以下代码时,我得到一个错误 Error in plot.gam(gam1, se
我正在研究一个模型,其中包含多个 RE 和一个变量的样条,因此我尝试使用 gam() .但是,我遇到了内存耗尽限制错误(即使我在具有 128GB 的集群上运行它时也是如此)。即使我只用一个 RE
从这个数据: UQdata MudUQ Estuary Site 7.00 10.9 NoriPau A 6.00 13.9 NoriPau A 5.00
我是一名优秀的程序员,十分优秀!