[英]R glm function changing my column names
我有一個相對簡單的問題,但似乎找不到答案。
運行以下行時,我有一個200 X 8的矩陣temp
和一個響應矩陣(200X1) Binomial Vector
:
CLog=glm(BinomialVector~temp,family= binomial(logit))
我能夠運行邏輯回歸。 我認為這樣做實際上是BinomialVector~tempcol1 +tempcol2+tempcol3
,依此類推。
但是,當我按summary(CLog)
,我的因素名稱已更改。 如果第一列稱為trees
則它會更改temptrees
。是否有防止這種情況的方法?
按照要求:
BinomialVector
[,1]
[1,] 0
[2,] 1
[3,] 1
[4,] 0
[5,] 0
[6,] 0
[7,] 1
temp
Net.Income.Y06. Return.on.Assets.Y06.
A 0.1929241 27.947
AA 1.1405694 12.427
AAP 1.0302481 17.117
ABT 2.1006512 13.826
Return.on.Investment.Y06. Total.Current.Assets.Y06.
A 39.844 0.9274886
AA 20.003 0.8830403
AAP 30.927 1.0439536
ABT 21.376 1.2447154
Total.Current.Liabilities.Y06. IntersectionMostAdmired.2006.
A 1.0812744 0.000
AA 0.9842055 7.255
AAP 1.1010472 0.000
ABT 0.7617044 6.715
這就是我的臨時矩陣的可能列。 我不喜歡使用這種加法表示法的原因是,列數發生了變化,因為我在用戶定義的函數中使用此函數,並將其輸入到臨時矩陣中。 至於使用數據框,我給人的印象是數據框確實是正確的東西,但是當它不是as.matrix時,我似乎會出錯。 :s
您是否可以發布數據的代表性子集,並且實際輸出glm可以為您提供該子集?
然后,將更易於診斷/復制。
同時,我建議您使用數據框而不是矩陣。 方法如下:
mydf<-data.frame(y=BinomialVector,temp);
CLog = glm(BinomialVector~tempcol1+tempcol2+tempcol3,data=mydf,family=binomial(logit));
矩陣是一種不好的格式,不能用作回歸模型的數據源(一方面,它們將所有列強制為相同的數據類型,這在這里可能是問題的一部分,也可能不是問題的一部分),所以我從不使用它們。 但是,如果我不得不猜測,您的模型可能是將矩陣轉換為一個長向量? 也許那里某個變量的值是“ tree”? 但是沒有示例數據和輸出,這全都是猜測。 當您運行上述命令時,問題的性質很可能會立即顯示出來。
使用數據幀是必經之路。 首先,它將使對新數據的預測變得容易得多。 而且還可以讓您使用名義預測變量(因子),而不必自己編寫虛擬變量。 如果預測變量的數量不是固定的,並且您要在所有預測變量上擬合模型,請使用.
在公式。
df <- data.frame(y=BinomialVector, temp)
glm(y ~ ., family=binomial, data=df)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.