我试图用这些数据创建一个多元线性回归模型:
bweight gestwks hyp sex
1 2974 38.5200004577637 0 female
2 3270 NA 0 male
3 2620 38.150001525878899 0 female
4 3751 39.799999237060497 0 male
5 3200 38.889999389648402 1 male
6 3673 40.970001220703097 0 female
为了考虑字符串类型参数“男性”和“女性”,我将它们转换为整数1和0,如下所示:
male = 1*(sex == "male")
因此,创建线性模型,其中婴儿体重是结果变量:
lm2 = lm(bweight ~ gestwks + hyp + male)
但是,当我想看到模型的参数时,我得到了这个结果(这里并不包括整个输出):
Call:
lm(formula = bweight ~ gestwks +
hyp + male)
Coefficients:
(Intercept) gestwks26.950000762939499
864.000 -236.000
gestwks27.329999923706101 gestwks27.9899997711182
7.363 146.469
gestwks28.040000915527301 gestwks30.5200004577637
184.469 760.469
gestwks30.649999618530298 gestwks30.709999084472699
900.000 -141.531
我应该只得到一对参数。我做错了什么?
发布于 2020-03-08 08:15:11
在进行任何分析之前,一定要仔细研究你的变量。注意连续变量的范围和分布以及分类变量的频率。导入数据后执行此操作。
在这种情况下,gestwks
变量实际上不是数字变量。如果您查看了str(my_data)
的输出,其中my_data
是数据框架的名称,那么您就会看到该变量的潜在问题。您可能需要修改命令来导入数据。如果是正确的,则需要使用适当的命令将变量转换为数字变量。阅读警告在as.numeric
.*的帮助页面
数据管理是您分析的关键部分。
仔细查看gestwks
,寻找奇怪的值。如果没有太多的记录,table
可以提供帮助,或者查看第一个和最后几个排序的值。
* as.numeric (levels (f))[f]
或as.numeric (as.character (f))
是推荐的命令。
发布于 2020-03-08 07:29:50
妊娠是一个因素,在你回归之前,你需要用as.numeric
来转换它。
https://stackoverflow.com/questions/60588959
复制