R中的多元线性回归模型
我试图用以下数据创建一个多元线性回归模型:R中的多元线性回归模型,r,linear-regression,R,Linear Regression,我试图用以下数据创建一个多元线性回归模型: bweight gestwks hyp sex 1 2974 38.5200004577637 0 female 2 3270 NA 0 male 3 2620 38.150001525878899 0 female 4 3751 39.7999992370604
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)
但是,当我想查看模型的参数时,我得到了以下信息(这里不包括全部输出):
我应该只得到一对参数。我做错了什么?gestwks是一个因素,在回归之前,您需要将其转换为.numeric。在进行任何分析之前,始终仔细研究您的变量。注意连续变量的范围和分布,以及分类变量的频率。导入数据后执行此操作 在这种情况下,
gestwks
变量实际上不是数字。如果您查看了str(my_data)
的输出,其中my_data
是数据帧的名称,那么您就会看到该变量的潜在问题。您可能需要修改命令以导入数据。如果正确,则需要使用适当的命令将变量转换为数字变量。将帮助页面中的警告阅读为.numeric
*
数据管理是分析的关键部分
仔细查看gestwks
以查看外观奇怪的值<如果没有太多的记录,或者查看第一个和最后几个排序值,则代码>表会有所帮助
*
as.numeric(levels(f))[f]
或as.numeric(as.character(f))
是推荐的命令。可能将gestwks
转换为numeric.@jay.sf你的意思是什么?我建议这样读:你可以检查如何创建或导入数据。由于某些原因,gestwks
存储为因子,而不是数字!这就是为什么您会得到每个唯一值的估计值gestwks
。如果你想改进你的问题,这里有一些关于和如何给出答案的信息。MRE将使其他人更容易找到并测试您问题的答案。这样你可以帮助别人来帮助你!上面评论中的jay.sf链接应该可以解释一些问题。但与其将值重新计算为数字,修复导入可能更安全。为了获得更多的帮助和支持,如果您在问题的编辑中添加了一个最小的可复制示例,那就太好了。您不能仅使用as.numeric
将因子对象转换为数值对象。因此,这些命令应该将我的``gestwks``变量转换为数值向量。因此,如果我检查str(my_data)的输出是什么,那么gestwks应该是“num”类型?因为现在它是“chr”型的…哦,好吧,没关系,我得到了我刚才问的。谢谢你的回答!你是怎么得到这些数据的?显示R命令以导入它。这可能是“chr”的原因。如果您对导入感到满意,那么可以使用这两个命令之一将其转换为“数值”。
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