你問了一個相當廣泛的問題,但我會盡可能的精確。但值得注意的是:每一種統計分析方法都有一系列隱含的假設。這意味着如果您在不瞭解分析的侷限的情況下依賴統計模型的結果,則可能很容易做出錯誤的結論。
這其實也不太清楚,我你分類的意思。如果有人要求我進行分類分析,我可能會考慮諸如聚類分析,因子分析或潛類分析等。有一些線性迴歸建模的變體也可以適用。
這就是說,這裏是你如何去這樣做使用您的數據的線性迴歸。
首先,複製您的樣本數據:
dat <- structure(list(B = c(1L, 0L, 1L, 1L, 1L), T = c(1L, 0L, 0L, 1L,
0L), H = c(1L, 0L, 0L, 1L, 1L), G = c(0L, 1L, 1L, 1L, 0L), S = c(1L,
1L, 0L, 1L, 1L), Z = c(0L, 0L, 0L, 0L, 1L)), .Names = c("B",
"T", "H", "G", "S", "Z"), class = "data.frame", row.names = c("Golf",
"Football", "Hockey", "Golf2", "Snooker"))
dat
B T H G S Z
Golf 1 1 1 0 1 0
Football 0 0 0 1 1 0
Hockey 1 0 0 1 0 0
Golf2 1 1 1 1 1 0
Snooker 1 0 1 0 1 1
接下來,添加預期值:
dat$expected <- c(1,2,3,1,4)
dat
B T H G S Z expected
Golf 1 1 1 0 1 0 1
Football 0 0 0 1 1 0 2
Hockey 1 0 0 1 0 0 3
Golf2 1 1 1 1 1 0 1
Snooker 1 0 1 0 1 1 4
最後,我們就可以開始分析。幸運的是,lm
有一個快捷方式來告訴它使用數據框中的所有列。要做到這一點使用下面的公式:expected~.
:
fit <- lm(expected~., dat)
summary(fit)
Call:
lm(formula = expected ~ ., data = dat)
Residuals:
ALL 5 residuals are 0: no residual degrees of freedom!
Coefficients: (2 not defined because of singularities)
Estimate Std. Error t value Pr(>|t|)
(Intercept) 2.00e+00 NA NA NA
B 1.00e+00 NA NA NA
T -3.00e+00 NA NA NA
H 1.00e+00 NA NA NA
G -4.71e-16 NA NA NA
S NA NA NA NA
Z NA NA NA NA
Residual standard error: NaN on 0 degrees of freedom
Multiple R-squared: 1, Adjusted R-squared: NaN
F-statistic: NaN on 4 and 0 DF, p-value: NA
和謹慎的最後一個字。由於您的樣本數據包含的行少於列,因此線性迴歸模型的數據不足以發揮作用。所以在這種情況下,它只是放棄了最後兩列。你對數據的簡要描述似乎表明你有更多的行和列,所以它不應該成爲你的問題。
謝謝您的詳細解答。我自己嘗試過,看起來很適合我需要的東西。我的差距不知道如何在數據幀上使用lm。通過「分類」,我的意思是變量在預測預期值方面很差。 – Paul