【问题标题】:Multiple linear regression model in RR中的多元线性回归模型
【发布时间】:2020-03-08 15:21:01
【问题描述】:

我正在尝试使用这些数据创建一个多元线性回归模型:

    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

我应该只得到一对参数。我做错了什么?

【问题讨论】:

  • 可能会将gestwks 转换为数字。
  • @jay.sf 你是什么意思?
  • 您可以检查您是如何创建或导入数据的。出于某种原因,gestwks 被存储为 factor 而 not 被存储为数字!这就是为什么您要估计 每个 唯一值 gestwks。如果您想改进您的问题,这里有一些关于asking a question 的信息以及如何提供minimale reproducible example。 MRE 将使其他人更容易找到和测试您的问题的答案。这样你就可以帮助别人帮助你!
  • 上面评论中发布的链接 jay.sf 应该可以解释一些问题。但是,与其将值重铸为数字,不如修复导入可能更安全。如需更多帮助和支持,如果您在问题的编辑中添加了一个最小的可重现示例,那就太好了

标签: r linear-regression


【解决方案1】:

在进行任何分析之前,请务必仔细研究您的变量。注意连续变量的范围和分布以及分类变量的频率。导入数据后执行此操作。

在这种情况下,gestwks 变量实际上不是数字。如果您查看了str(my_data) 的输出,其中my_data 是您的数据框的名称,那么您就会看到该变量的潜在问题。您可能需要修改命令以导入数据。如果正确,则需要使用适当的命令将变量转换为数字。阅读as.numeric的帮助页面中的警告。*

数据管理是分析的关键部分。

仔细查看gestwks 的奇怪值。如果记录不多,table 可以提供帮助,或者查看第一个和最后几个排序值。

* as.numeric (levels (f))[f] 或 as.numeric (as.character (f)) 是推荐的命令。

【讨论】:

  • 所以这些命令应该将我的 ``` gestwks ``` 变量转换为数字向量。所以如果我检查 str(my_data) 的输出是什么,那么 gestwks 应该是“num”类型的?因为现在它的类型是“chr”...
  • 哦,好吧,没关系,我得到了我刚刚问的。感谢您的回答!
  • 您是如何获得数据的?显示你的 R 命令来导入它。这可能是“chr”的原因。如果您对导入感到满意,那么可以,使用这两个命令之一将其转换为“数字”。
【解决方案2】:

gestwks 是一个因素,您需要在回归之前使用as.numeric 对其进行转换。

【讨论】:

  • 您不能只使用as.numeric 将因子对象转换为数值对象。
猜你喜欢
  • 2014-05-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-04-28
  • 2020-10-10
  • 2021-12-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多