R glm函数更改我的列名

R glm函数更改我的列名,r,glm,R,Glm,我有一个相对简单的问题,但我似乎找不到答案 我有一个200 X 8矩阵temp和一个响应矩阵(200X1)二项式向量 当我运行以下行时: CLog=glm(BinomialVector~temp,family= binomial(logit)) 我能够运行逻辑回归。我认为这实际上是BinomialVector~tempcol1+tempcol2+tempcol3等等 但是,当我按下summary(CLog)时,我的因子名称已更改。如果第一列被称为trees,那么它具有change doten

我有一个相对简单的问题,但我似乎找不到答案

我有一个200 X 8矩阵
temp
和一个响应矩阵(200X1)
二项式向量
当我运行以下行时:

CLog=glm(BinomialVector~temp,family= binomial(logit)) 
我能够运行逻辑回归。我认为这实际上是
BinomialVector~tempcol1+tempcol2+tempcol3
等等

但是,当我按下
summary(CLog)
时,我的因子名称已更改。如果第一列被称为
trees
,那么它具有change do
tentrees
。有什么方法可以防止这种情况发生吗

应要求:

  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时,我似乎会出错您能否发布数据的代表性子集以及glm为该子集提供的实际输出

这样就更容易诊断/复制

同时,我建议您使用数据帧而不是矩阵。以下是如何:

mydf<-data.frame(y=BinomialVector,temp);
CLog = glm(BinomialVector~tempcol1+tempcol2+tempcol3,data=mydf,family=binomial(logit));

mydf使用数据帧是一种方法。首先,这将使预测新数据变得更加容易;它还允许您使用名义预测值(因子),而无需自己编写虚拟变量。如果预测值的数量不是固定的,并且您希望在所有预测值上拟合模型,请在公式中使用

df <- data.frame(y=BinomialVector, temp)
glm(y ~ ., family=binomial, data=df)

df-Oh,我指的是预测变量。