質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

Q&A

1回答

12868閲覧

ロジスティック回帰分析

cde

総合スコア12

R

R言語は、「S言語」をオープンソースとして実装なおした、統計解析向けのプログラミング言語です。 計算がとても速くグラフィックも充実しているため、数値計算に向いています。 文法的には、統計解析部分はS言語を参考にしており、データ処理部分はSchemeの影響を受けています。 世界中の専門家が開発に関わり、日々新しい手法やアルゴリズムが追加されています。

統計

統計は、集団現象を数量で把握することです。また、調査で得られた性質や傾向を数量的に表したデータのことをいいます。

0グッド

0クリップ

投稿2016/12/13 15:11

編集2022/01/12 10:55

Rにてロジスティック回帰分析で予測したいのですが以下のコードを実行すると
fit=glm(bug~.,family = binomial,data=fit.df,)
Error in eval(expr, envir, enclos) : y values must be 0 <= y <= 1
というエラーが出ます。なぜでしょうか?

fit.glm<-glm(bug~.,family = binomial,data=fit.df,) fit.step<-step(fit.glm) test.pred<-predict(fit.step,test.df)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

coco_bauer

2016/12/14 01:43

「Error in eval(expr, envir, enclos) : y values must be 0 <= y <= 1 」が意味しているのは、yの値が0~1の範囲ではないデータが含まれているという事です。分析に使っているデータを精査してみてください。
cde

2016/12/17 02:06 編集

family = binomialの部分を消して実行するとエラーがなくなるのですが、なぜですか? データがおかしいということですか? また別のエラーが出るようになりました。 There were 50 or more warnings (use warnings() to see the first 50) warnings()と入力すると、 警告メッセージ: 1: In eval(expr, envir, enclos) : non-integer #successes in a binomial glm! 2: In eval(expr, envir, enclos) : non-integer #successes in a binomial glm! ・ ・ ・ ・ 50: In eval(expr, envir, enclos) : non-integer #successes in a binomial glm! みたいに出てきます。
guest

回答1

0

そもそも、glm関数は「一般化線形モデル(線形回帰モデルや線形ロジスティック回帰モデルなどを理論的に一般化したモデル)を推定する」関数です。この一般化線形モデルは目的変数 y の確率構造として「指数分布族」に含まれる任意の確率分布を選ぶことができ、それによって誤差分布に正規分布を仮定する線形回帰モデルや二項分布(ベルヌーイ分布)のパラメータをモデル化する線形ロジスティック回帰モデルなどのパラメータの推定を行います。

さて、これらの事前情報に対し、現在起きているエラーを整理すると、

Error in eval(expr, envir, enclos) : y values must be 0 <= y <= 1

は既に回答があるように「目的変数が0〜1の範囲から外れていて推定できない!」というエラーです。ロジスティック回帰では目的変数は0もしくは1の値である必要があり、このルールに反しては推定はできません。

次に

family = binomialの部分を消して実行するとエラーがなくなるのですが、なぜですか?

はglm関数の使い方のエラーです。glm関数で線形回帰や線形ロジスティック回帰を使い分けるパラメータが「family」であり、デフォルトで線形回帰、binomial を指定するとロジスティック回帰になります。つまり、family=binomial を外した=線形回帰モデルの推定を実行しているのであって、当然目的変数 y が 0 or 1 というルールは不要になります。

以上、参考まで。

投稿2016/12/17 01:08

Victorian-Vat

総合スコア104

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

cde

2016/12/17 01:50

データがおかしいということですか?
Victorian-Vat

2016/12/20 09:37

データと使い方がおかしいのだと思います。 yにはきちんと0か1しか入っていないようにしましたか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問