问题标签 [poly]
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 中预测多变量线性模型
我对具有两个变体(多变体)的线性模型的预测有疑问。我正在尝试使用我训练过的模型来预测新数据。我有这段代码可以根据 x 和 y 训练 z。数据大约有 60,000 行:
然后我想通过执行以下操作来预测一行
r 通过此错误:
谢谢你的帮助!
r - 在给定 R 中的 Y 的情况下,在二阶多项式方程中找到 X 的两个解
我刚开始使用 R,所以我可能没有正确理解这些功能。
我有文献中的长度和年龄数据,并且我测量了一些标本。我需要根据我从文献中计算出的生长方程找到我测量的这些标本的年龄。
这是我数据中的一个小例子:
要根据我的数据 (y) 计算年龄 (x),我尝试了多种解决方案,我认为该函数spline()
将是正确的解决方案。不过,看起来它只给了我多项式方程的 2 个可能解中的 1 个,而且它是错误的。由于它是一条增长曲线,它从原点开始,我需要方程的正解。如果我在另一个软件中输入系数来求解方程,我实际上可以得到两个解,包括我需要的解,我在这里报告。不过,这是一个非常耗时的解决方案,并且不利于重现性。
R中是否有一个函数可以找到我正在寻找的结果?我还有其他更适合线性回归的数据,因此具有相同但具有线性模型的函数也很棒。
解决方案
我找到了一种获得我正在寻找的东西的方法,可能不是以最漂亮的方式,但它确实有效。
r - R:如何绘制由 lm poly fit 生成的自定义多项式范围
我对输出产生的系数感到困惑lm
这是我正在使用的数据的副本
我使用以下脚本为该数据拟合了一个四阶多项式:
我最初尝试使用该predict
函数来执行此操作,但无法使其正常工作,因此使用一些新向量来实现此“解决方法”v
并将vv
数据存储在我尝试绘制的区域中。
最终,我正在尝试这样做:
- 将四阶多项式拟合到数据
- 以一种颜色在数据范围内绘制四阶多项式
- 在从最后一个值到最后一个值 + 10(预测)的范围内以不同的颜色绘制 4 阶多项式
目前我相当确定使用v
并vv
做到这一点不是“最好的方法”,但我认为它应该可以工作。正在发生的事情是我得到了非常大的值。
这是 Desmos 的屏幕截图。我复制并粘贴了相同的系数,如poly4model$coefficients
在控制台中键入所示。但是,一定是出了点问题,因为这个函数与数据完全不同。
我想我已经提供了足够的信息来运行这个简短的脚本。但是我也会添加pdf。
r - 如何使具有“poly(x, 2)*factor”的模型的疏浚(MuMin)输出显示两个多项式项?
模型结构:fixed = Y ~ poly(x, 2) * factor
疏浚输出仅显示: [...] factor, poly(x,2) , factor:poly(x,2)
而不是: [...] 因子、poly(x,1) 、poly(x,2) 、因子:poly(x,1) 、因子:poly(x,2)
我不清楚如何解释这个输出,因为我无法判断是否对有/没有变量 x 的 1 和 2 阶的模型进行了评估,即只是更高阶。此外,我如何才能看到只有 x 的 1 阶模型的评估?
这里: MuMin (R) 中的疏浚让模型具有高阶项而没有它们各自的低阶项 ,OP 提出了非常相似的问题,但关于“poly”函数,他只满足了以下内容,没有解决它:“我也尝试使用 poly(hour,2) 来定义全局模型,但这导致仅包含一个小时的术语。”
r - poly 有反函数吗?
我们可以在 R 中生成正交多项式,
pp <- poly(cars$speed, 2)
有没有办法从结果中获取原始值pp
(逆多元函数)?
换句话说,该函数应该f
返回以下结果:
f(poly(cars$speed, 2)) == cars$speed
?
r - R中系数二阶多项式的解释
我使用 R 中的 lm 和 poly 函数制作了一个趋势面。我的结果摘要如下所示:
如何将系数转换为方程?我尝试了以下方法:
截距 + coeff1.0 * x + coeff2.0 * x^2 +coeff1.1 * x * y + coeff 0.1 * y + coeff 0.2 * y^2
我也尝试替换上面公式中的 x 和 y,但是用一些提取的 x 和 y 值填充这些方程的结果与(正确构造的)趋势面结果完全不同。
编辑 在下图中,显示了 poly(..., raw=F) 和 poly(...,raw=T) 的构建趋势表面之间的差异。建议我使用raw=T,但我更喜欢raw=F的曲面。还有办法理解上面的系数吗? Poly_raw_difference
r - 具有 raw=TRUE 的 Poly() 提供不同的结果,然后 I()
在对波长数据运行一些多项式拟合后,我遇到了poly()
启用 raw=TRUE 和使用“I()”的完全不同的结果。
一些附带信息:ln
并且T_T0
是 fbg_data_simp 数据帧的列
和
两种变体的摘要:
很明显,这两种结果的措辞截然不同。知道为什么会这样吗?我可能错过了一些东西。
r - 如何找到不同类别的二次项的转折点?
我已经建立了一个与变量的多项式关系的逻辑回归age
,我将其作为与变量的交互包含在模型中sex
。我还有其他自变量和控制变量。
主要问题是:如何分别找到age
变量female
的转折点male
?
该模型如下所示:
因变量表示success
。mixed
是一个参考水平sex
(这里混合是指与男性和女性结合的人群相关的观察,但我只想找到female
和的转折点male
)。
从总结中我可以计算出:
- 女性年龄拐点: 0.1487 /(2*0.001937)=38岁
- 男性年龄拐点: 0.06715 /(2*0.0004762)=70.5岁。
但这似乎不对,因为当我在下面想象它时:
我得到了一个情节,表明男性的转折点必须在 58 岁左右(女性在 36 岁左右)。
如果我单独构建模型sex
,我会收到:
对于女性,它会重现错误。男性年龄的转折点:0.08733/(2*0.0006543)=66.7岁(也是错误的)。
如果我age
在模型中也包含了,它会给出:
- 女性年龄拐点: 0.3887 /(2*0.002881)=67.5岁(错误)
- 男性年龄的转折点:0.276/(2*0.002314)=59.6 岁(有点接近可视化假设)
我需要如何使用intercept
或基本水平系数 ( mixed
) 来找到 和 的图灵female
点male
?我还应该在我的案例中包含age
和/或sex
与交互术语吗?
r - 修改 lm 系数 - 为什么预测输出会像修改截距一样发生变化?
我有一个 lm 模型,其死亡率数据取决于每日温度。为了估计对气候变化的可能适应,我想将曲线的斜率降低 10%。因此,我通过乘以 0.9 来修改 lm 模型的斜率系数。
然而,这个修改后的模型的预测输出是出乎意料的。斜率下降,但曲线不是在 x=0 处相交,而是在大约 0 处的截距处相交。133.那就是下一个问题,为什么这个截距不是0?
这是一个可重现的示例:
我试图找出偏移输出的原因,我认为它在 predict() 函数中的某个地方。为了检查修改后的系数,我尝试了这个,它显示了扩展输出。
为什么预测输出不同?
为什么示例的 Intercept 不为 0?
或者如何在不使用 predict() 的情况下“手动”“预测”修改后的数据?
谢谢你的帮助!
编辑:DaveArmstrong 的答案通过在 poly() 中使用 raw=TRUE 解决了第一个示例的问题。但是,对于其他数据,它仍然无法正常工作,可能是由于模型中的负系数(?)
这是我的原始数据的一个例子:
在结果图 ( plot ) 中,修改后的模型以某种方式转移到较低的 y 值,并且斜率也似乎不正确。为什么这仍然出乎意料?