如何计算人口与土地覆盖类型百分比之间的皮尔逊相关系数(r)?

时间:2018-12-11 19:19:10

标签: python pandas pearson-correlation rasterio

我的以下代码输出的似乎是每个普查区的词典列表,这基本上就像指定的土地区域。我能够计算出人口和几种不同土地覆盖类型的百分比。现在,我想计算每种土地覆盖类型的人口与百分比之间的皮尔逊相关系数。

我想做的是提取/过滤字典列表,以便我可以比较每种土地覆盖类型的人口。 因此,

的Pearson相关性
  • 人口和发达土地
  • 人口稀少的土地
  • 人口和林地
  • ...

代码如下:

header.key === device

运行此代码后,我将获得以下词典列表,我想知道如何提取/过滤出人口并将其与每个土地覆盖率进行比较,并最终计算出皮尔森r相关性。

header.key === ticketNumber

有什么想法我可以循环浏览一下,然后针对每种土地覆盖类型的百分比计算总人口变量的Pearson r?

谢谢

1 个答案:

答案 0 :(得分:0)

xs = []
y1s = []
y2s = []
y3s = []
y4s = []

for entry in entries:
    xs.append(entry['population'])
    ice = entry['Total Water Ice Cover']
    dev = entry['Total Developed']
    bar = entry['Total Barren Land']
    forest = entry['Total Forest']

    total_land = ice+dev+bar+forest
    y1s.append(ice/total_land)
    y2s.append(dev/total_land)
    y3s.append(bar/total_land)
    y4s.append(forest/total_land)



print(scipy.stats.pearsonr(xs,y1s)," = ICE") 
...

可能还有一些熊猫可以做的技巧,但是为了简化它