簡體   English   中英

如何使用根據存儲在R中的列表中的模型進行預測?

[英]How to use predict from a model stored in a list in R?

我有一個數據框架dfab ,其中包含2列,我將它們用作生成一系列線性模型的參數,如下所示:

models = list()
for (i in 1:10){
    models[[i]] = lm(fc_ab10 ~ (poly(nUs_ab, i)), data = dfab)
}

dfab有32個觀察值,我只想預測1個值的fc_ab10。

我想這樣做:

newdf = data.frame(newdf = nUs_ab)
newdf[] = 0
newdf[1,1] = 56
prediction = predict(models[[1]], newdata = newdf)

首先,我嘗試將newdf編寫為僅具有一個位置的數據框,但是由於構建模型的數據集中有32個位置,因此我認為我也必須至少提供32個點。 我認為這不是必需的。

每次我運行這段代碼時,都會出現以下錯誤:

錯誤:變量'poly(nUs_ab,i)符合類型“ nmatrix.1”,但提供了“數值”類型。 另外:警告消息:在Z / rep(sqrt(norm2 [-1L])中,每個= length(x)):較長的對象長度不是較短的對象長度的倍數

我以為我需要使用的預測是LM模型,在以列命名的數據框中給出的預測變量(數字56)。 顯然,我錯了。

如何解決此問題?

謝謝。

newdf應該是列名稱為nUs_ab ,否則R將無法知道要對哪一列進行操作(即生成預測設計矩陣)。 所以下面的代碼應該工作

newdf = data.frame(nUs_ab = 56)
prediction = predict(models[[1]], newdata = newdf)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM