12

私は、年齢や性別などのさまざまな変数を持つ a と b の 2 つのタイプの 106 人の個人からなるデータセットを持っています。共変量に基づいて、各個人がタイプ a またはタイプ b のどちらであるかを予測する線形モデルを実行したいと考えています。

以下を使用して、各個人の年齢、性別、およびタイプ ラベルの値を読み取ります。

`data = read.xlsx("spreadsheet.xlsx",2, as.is = TRUE)`
age = data$age
gender = data$gender
type = data$type

それぞれの形式は次のとおりです。

age = [28, 30, 19, 23 etc]
gender = [male, male, female, male etc]
type = [a b b b]

次に、次を使用してモデルをセットアップしようとします。

model1 = lm(type ~ age + gender)

しかし、私はこのエラーメッセージを受け取ります:

Warning messages:
1: In model.response(mf, "numeric") :
using type="numeric" with a factor response will be ignored
2: In Ops.factor(y, z$residuals) : - not meaningful for factors

次を使用して、タイプ、年齢、性別の形式を変更してみました。

age = as.numeric(as.character(age))
gender = as.character(gender)
type = as.character(type)

しかし、これはうまくいきません!

4

1 に答える 1

25

因子を応答変数として使用する線形回帰モデルは使用できません。これは、ここで行おうとしていることです (タイプは応答変数です)。回帰モデルには数値応答変数が必要です。代わりに、分類モデルを検討する必要があります。

Roland が指摘しているように、「型」変数を論理的な二項変数として言い換えることから始めたいと思うかもしれません。2 つのレベル "a" と "b" を持つ "type" と呼ばれる因子ではなく、TRUE または FALSE を含む "is.type.a" と呼ばれる新しい変数を作成できます。

次に、二項分布に基づいてロジスティック回帰を試すことができます

model <- glm(is.type.a ~ age + gender,data=data,family="binomial")
于 2013-10-14T15:34:19.883 に答える