我對統計和R一般都很陌生,所以我的問題可能有點愚蠢,但由於我無法在網上找到我的解決方案,所以我想我應該在這裏問一下。在R中使用數字和分類變量解決迴歸問題
我有一大堆不同的變量非常類似如下的數據幀dataset
:
Item | Size | Value | Town
----------------------------------
A | 10 | 800 | 1
B | 11 | 100 | 2
A | 17 | 900 | 2
D | 13 | 200 | 3
B | 15 | 500 | 1
C | 12 | 250 | 3
E | 14 | NA | 2
A | | 800 | 1
C | | 800 | 2
基本上,我有根據項目的類型,試圖「猜」的大小,它的價值和它被出售的城鎮,所以我認爲迴歸方法是一個好主意。
我嘗試用多項式迴歸(雖然我甚至不知道這是正確的),看看如何看起來使用類似如下的功能:
summary(lm(Size~ polym(factor(Item), Value, factor(Town), degree=2, raw=TRUE), dataset))
,但我得到這個警告訊息當我嘗試這樣做:
Error in lm.fit(x, y, offset = offset, singular.ok = singular.ok, ...) : 0 (non-NA) cases In addition: Warning message: In Ops.factor(X, Y, ...) : ‘^’ not meaningful for factors
誰能告訴我,爲什麼出現這種情況?更重要的是,我所做的甚至是正確的?
我的第二個問題是關於NA
值的迴歸。在上面的數據集中,我在Value
列中有一個NA
值。據我所知,R忽略列中具有NA
值的行。但是如果我有很多NA
值?另外,如果列中只有一個值爲NA
,那麼自動消除整行數據看起來就像浪費數據,所以我想知道是否有解決或解決此問題的更好方法。謝謝!
編輯:我只是還有一個問題:在我創建的迴歸模型中,似乎在測試數據中沒有出現在訓練數據中的新「水平」(例如錯誤爲factor(Town) has new levels
)。對於這種情況,正確的做法是什麼?
從「polym」中刪除因素 - 您試圖對一個沒有意義的因子變量進行平方。首先嚐試'lm(Size〜factor(Item)+ factor(Town)+ Value,...)',然後根據需要添加一個平方項'Value'。 –
@RemkoDuursma啊謝謝,我現在試試:) – badatstats