2014-11-21 102 views
1

假設我在運行時給出了一個數據幀df,我該如何擬合使用多項式迴歸的多項式模型,其中每個預測變量都是來自df的列,並具有常數k> = 2R:將未知預測變量擬合到多項式迴歸中

難度在於'df'是在運行時讀取的,所以當腳本寫入時其列的數量和名稱是未知的(但我知道響應變量是第一列) lm我不知道如何寫formula

在K = 1的情況下,那麼我可以簡單地寫一個通用線性公式

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

有類似的東西我能爲多項式公式做什麼?

回答

3

一個頗爲複雜的方法是通過將術語粘貼在一起來爲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) 
+0

謝謝,我不知道公式可以是字符。我認爲他們只能是文字。 – Will 2014-11-21 21:50:50