【问题标题】:Why is this the output for my linear model and how can I fix it?为什么这是我的线性模型的输出,我该如何解决?
【发布时间】:2019-11-11 04:24:06
【问题描述】:

我正在尝试使用 R 设置多变量线性规划模型,但该模型不断在输出中创建新变量。

基本上,我试图找出空气质量与人口、一天中的时间、天气读数等不同因素之间的相关性。对于这个例子,我在几个月的时间内查看了多个不同的传感器位置。我有关于实际 AQI、天气数据的数据,并假设传感器周围区域的人口不会随时间变化(这可能是我的问题)。因此,人口在不同传感器之间有所不同,但在几个月内保持不变。然后我将每个传感器数据组合成一个数据框来进行线性规划。我的模型的代码如下:

model = lm(AQI ~ Time.of.Day + Temp + Humidity + Pressure + pop + ind + rd_dist, data = Krakdata)

输出如下图所示。我不知道为什么它不只是将人口作为输出。相反,它将每个总体读数作为另一个因素输出。谢谢!

线性模型输出:

Krakdata 示例。请注意,在下一个传感器出现之前,人口不会改变:

【问题讨论】:

  • pop 是一个因子类型变量,如果您想将pop 用作数字,那么您可以使用Krakdata$pop <- as.numeric(as.character(Krakdata$pop)) 更改它,但您应该先问自己您想如何建模@987654329 @ 作为数字或因子。还尝试使用evalbquote 构建更强大的公式调用。
  • 请不要发布代码/数据/错误的图像:它不能被复制或搜索 (SEO),它会破坏屏幕阅读器,并且它可能不适合某些移动设备。参考:meta.stackoverflow.com/a/285557/3358272(和xkcd.com/2116)。请直接包含代码或数据(例如,dput(head(x))data.frame(...))。

标签: r


【解决方案1】:

pop 是一个分类变量。您需要将其转换为整数,否则每个值将被视为单独的类别,因此是单独的变量。

【讨论】:

    【解决方案2】:

    pop 是一个分类变量,因此 R 将其视为此类变量。 R 将 pop 变量转换为虚拟变量,因此是输出。如果该变量本质上/在您的分析中应该是数字,则必须将其转换为数字。 至于如何转换:

    Krakdata$pop <- as.numeric(as.character(Krakdata$pop))
    

    至于pop如何被解读为因子而它类似于数字,您需要查看您之前的代码或数据本身。

    【讨论】:

      猜你喜欢
      • 2020-09-14
      • 2021-07-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 2020-02-01
      • 1970-01-01
      • 2018-01-28
      • 1970-01-01
      相关资源
      最近更新 更多