Jua*_*llo 1 r logistic-regression
我愿意对我的数据集执行逻辑回归。我用:
glm.fit=glm(direccion~Profit, data=datos, family=binomial)
Minute ecopet TASA10 direccion Minute cl1 Day Profit
1 571 2160 5 1 571 51.85 2015-02-20 -0.03
2 572 2160 5 1 572 51.92 2015-02-20 0.04
3 573 2160 5 1 573 51.84 2015-02-20 -0.04
4 574 2160 5 1 574 51.77 2015-02-20 -0.11
5 575 2160 10 1 575 51.69 2015-02-20 -0.19
6 576 2165 5 1 576 51.69 2015-02-20 -0.16
7 577 2165 -5 0 577 51.64 2015-02-20 -0.28
8 578 2165 -10 0 578 51.47 2015-02-20 -0.37
9 579 2165 -10 0 579 51.41 2015-02-20 -0.36
10 580 2170 -15 0 580 51.44 2015-02-20 -0.25
11 581 2170 -30 0 581 51.48 2015-02-20 -0.21
12 582 2160 -20 0 582 51.52 2015-02-20 -0.12
13 583 2155 -5 0 583 51.56 2015-02-20 0.09
14 584 2155 -5 0 584 51.51 2015-02-20 0.10
15 585 2155 -5 0 585 51.44 2015-02-20 0.00
16 586 2140 10 1 586 51.30 2015-02-20 -0.18
17 587 2140 10 1 587 51.31 2015-02-20 -0.21
18 588 2150 0 0 588 51.31 2015-02-20 -0.25
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,变量“direction”是一个二元变量,是我的逻辑回归中的因变量。只要变量“TASA10”为正,它就为 1,否则为 0。问题是,运行代码后,我得到:
'权重错误 * y:二元运算符的非数字参数'
你知道这是为什么吗?
谢谢!!
该列似乎direccion是字符列而不是数字列。您可以通过运行来验证str(datos);你会看到类似的东西
'data.frame': 18 obs. of 8 variables:
$ Minute : int 571 572 573 574 575 576 577 578 579 580 ...
$ ecopet : int 2160 2160 2160 2160 2160 2165 2165 2165 2165 2170 ...
$ TASA10 : int 5 5 5 5 10 5 -5 -10 -10 -15 ...
$ direccion: chr "1" "1" "1" "1" ...
$ Minute.1 : int 571 572 573 574 575 576 577 578 579 580 ...
$ cl1 : num 51.9 51.9 51.8 51.8 51.7 ...
$ Day : Factor w/ 1 level "2015-02-20": 1 1 1 1 1 1 1 1 1 1 ...
$ Profit : num -0.03 0.04 -0.04 -0.11 -0.19 -0.16 -0.28 -0.37 -0.36 -0.25 ...
Run Code Online (Sandbox Code Playgroud)
特别注意列的类型direccion。这可以通过运行来修复
datos$direccion <- as.numeric(datos$direccion)
Run Code Online (Sandbox Code Playgroud)
如果这是一个因素,那么您需要确保不会通过使用丢失编码
datos$direccion <- as.numeric(as.character(datos$direccion))
Run Code Online (Sandbox Code Playgroud)
更好的是回顾管道中生成此数据帧的代码,并将其修复为编码为数字而不是字符串。
| 归档时间: |
|
| 查看次数: |
27826 次 |
| 最近记录: |