【问题标题】:R:fit dynamic number of explanatory variable into polynomial regressionR:将解释变量的动态数拟合到多项式回归中
【发布时间】:2018-11-19 00:12:39
【问题描述】:

假设我在运行时获得了一个数据框df,如何使用多项式回归拟合多项式模型,每个预测变量都是来自 df 的列,并且具有常数 k >= 2 的度数

困难在于,'df' 在运行时被读取,因此在编写脚本时其列的数量和名称是未知的。(但我知道响应变量是第一列)所以当我调用 lm我不知道怎么写formula

如果k = 1,那么我可以简单地写一个通用的线性公式

names(df)[1] <- "y"
lm(y ~ ., data = df)

我可以为多项式公式做类似的事情吗?

【问题讨论】:

    标签: r


    【解决方案1】:

    一种相当复杂的方法是通过将术语粘贴在一起来为lm 回归调用创建formula

    # some data
    dat <- data.frame(replicate(10, rnorm(20)))
    
    # Create formula - apply f function to all columns names excluding the first
    form <- formula(paste(names(dat)[1], " ~ ",
                      paste0("poly(", names(dat)[-1], ", 2)", collapse="+")))
    # run regression
    lm(form , data=dat)
    

    【讨论】:

    • 谢谢,我不知道公式可以是字符。我以为它们只能是文字。
    • 感谢公式提示。我使用了这个变体:form
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-18
    • 1970-01-01
    • 2021-06-17
    • 2017-12-14
    • 1970-01-01
    相关资源
    最近更新 更多