使用R进行人口数据的线性回归分析

9 浏览
0 Comments

使用R进行人口数据的线性回归分析

我有一个作业任务,需要我拿一个基于美国人口数据的CSV文件,并对其中的数据进行一些数据分析。我需要找到我所在州的数据,并首先运行线性回归分析来预测人口规模。

我已经学习了R几个星期了,完成了LinkedIn Learning的培训,还参加了Pluralsight的两个不同的R培训。我还尝试搜索如何在R中进行线性回归分析的方法,我发现有很多示例,但这些示例都是针对数据完全按正确方式布局在表格中进行分析的情况。

CSV文件的布局是每个州在一行/行上定义的,所以我使用了filter函数来获取我州的数据并将其放入一个变量中。

在该数据集中,人口数据分布在几列中,其中最重要的数据是从2010年到2018年的每年人口估计数据。

library(tidyverse)

population.data <- read_csv("nst-est2018-alldata.csv")

mn.state.data <- filter(population.data, NAME == "Minnesota")

我在寻求一些帮助来朝着正确的方向前进,我的想法是我需要创建两个数据容器,一个容器包含从2010年到2018年的每年数据,另一个容器包含这些年份的人口数据。然后使用xyplot函数来处理这两个容器?如果您在这方面有一些经验,请帮助我思考一下,我不是要求任何人替我完成作业,只是想得到一些帮助来思考一下。

0
0 Comments

线性回归分析人口数据与R的问题出现的原因是数据格式错误,数据以列的形式存在,而不是以行的形式存在。解决方法是将数据转换为正确的格式,即将数据从宽格式转换为长格式。可以使用reshape2或data.table包中的melt函数来实现这一转换。下面是一个示例代码:

require(data.table)
value_columns <- paste(2010:2018, "Population Estimates")
population.data_long <- melt(population.data, id.vars = "NAME", 
                             measure.vars = value_columns, 
                             variable.name = 'Year (Population Estimate)', 
                             value.name = 'Population Estimate')
population.data_long$year <- as.integer(substr(population.data_long$`Year (Population Estimate)`, 1, 4))

注意,这里忽略了其他列的处理,你需要根据实际情况将它们包含在melt函数中。转换完成后,就可以按照标准的线性回归分析示例进行后续操作了。感谢你的帮助,我很抱歉之前没有提供数据,我一整天都在工作,直到现在才有机会回答你的问题。你提供的信息对我来说是一个很好的起点,我运行了你建议的命令,返回了大量数据,超过了StackOverflow评论的限制。我会把你给我的信息作为参考,继续这个项目的工作。

0