gpt4 book ai didi

r - r 中是否有多个正交多项式函数? (聚除外)

转载 作者:行者123 更新时间:2023-12-04 05:00:55 24 4
gpt4 key购买 nike

我想为 50x30 矩阵生成多个正交多项式。

结果应该有 30 + 30 + 30C2 = 30 + 30 + 435 = 505 列和 50 行。
我累了polyR基本软件包,即使是第一次订购,它也耗尽了内存。 R中是否有任何函数可以做多个正交多项式?(试过orthopolynom,但它只适用于单变量)还是太难了?谢谢

这是我的代码

n=50
k=30
x=matrix(rnorm(n*k),nrow=n,ncol=k)
poly(x,degree=1)
Error in rep.int(rep.int(seq_len(nx), rep.int(rep.fac, nx)), orep) : cannot allocate vector of length 1073741824

最佳答案

对于您的 30C2 项,您不需要正交多项式,而是所有双向交互项:

paste( combn( paste0("X", 1:30), 2, FUN=paste, collapse="*"), collapse="+")

对于 2 次正交多项式,您可能需要:
paste( "poly(", paste0("X", 1:30), ", degree=2)", collapse="+")

你需要用 as.formula 构造一个 R 公式如果您想将其用于回归。

我不确定这是否会给你正交多项式,但它会给你一个所需复杂度的公式表达式:
as.formula( paste(" ~ (", paste0("X", 1:30 , collapse="+"), ")^2", collapse=""))
#--------------
~(X1 + X2 + X3 + X4 + X5 + X6 + X7 + X8 + X9 + X10 + X11 + X12 +
X13 + X14 + X15 + X16 + X17 + X18 + X19 + X20 + X21 + X22 +
X23 + X24 + X25 + X26 + X27 + X28 + X29 + X30)^2

这将扩展到所有线性项、所有平方项和所有双向组合。见 help(formula) .并查看扩展使用的内容:
terms( as.formula( 
paste(" ~ (", paste0("X", 1:30 , collapse="+"), ")^2", collapse="")
) )

关于r - r 中是否有多个正交多项式函数? (聚除外),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16158465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com