计算相关性,高度/中等/轻微/不相关

本文介绍了一种使用Python进行数据相关性分析的方法,通过加载数据文件并应用Pearson相关系数来评估变量间的相关性,将结果分为高度、中度、低度相关及不相关四类。
import sys
import numpy as np
from scipy.stats.stats import pearsonr   

X = np.loadtxt(open(sys.argv[1],"r"),delimiter="\t")  
XT=X.T


highlist=[]
midlist=[]
lowlist=[]
nonlist=[]

highdict={}
middict={}
lowdict={}
nondict={}

constlist=[]
constc=0
#print(XT.shape)
for i in range(1,XT.shape[0]):
    if np.max(XT[i])==np.min(XT[i]):
        print 'constan para:',i
        constc+=1
        constlist.append(i)
    else:
        tmpres = pearsonr(XT[0],XT[i])[0]    
        print i,tmpres
        if abs(tmpres)>0.8:
            highlist.append(i)
            highdict[i]=tmpres
        elif abs(tmpres)>0.4:
            midlist.append(i)
            middict[i]=tmpres
            #print i,attrlist[i],tmpres
        elif abs(tmpres)>0.3:
            lowlist.append(i)            
            lowdict[i]=tmpres
        else:
            nonlist.append(i)           
            nondict[i]=tmpres

 

以下是根据您的要求编写的 Google Earth Engine 代码: ```javascript // 选择研究区,以山西省为研究区 var region = ee.FeatureCollection("users/your_username/your_feature_collection") .filter(ee.Filter.eq('province', '山西省')); // 定义起始时间和终止时间 var startDate = ee.Date('2000-01-01'); var endDate = ee.Date('2020-12-31'); // 加载NDVI影像 var ndviCollection = ee.ImageCollection('MODIS/006/MOD13Q1') .select('NDVI') .filterBounds(region) .filterDate(startDate, endDate); // 加载降水影像 var precipitationCollection = ee.ImageCollection('NASA/GPM_L3/IMERG_V06') .select('precipitationCal') .filterBounds(region) .filterDate(startDate, endDate); // 加载气温影像 var temperatureCollection = ee.ImageCollection('MODIS/006/MYD11A2') .select('LST_Day_1km') .filterBounds(region) .filterDate(startDate, endDate); // 加载夜间灯光数据影像 var nightLights = ee.ImageCollection("NOAA/DMSP-OLS/NIGHTTIME_LIGHTS") .select("avg_vis") .filterBounds(region) .filterDate(startDate, endDate); // pearsonsCorrelation计算相关性系数 var correlation = ndviCollection .addBands(precipitationCollection) .addBands(temperatureCollection) .addBands(nightLights) .reduce(ee.Reducer.pearsonsCorrelation()) .clip(region); // 在这里,对堆栈进行采样 var sample = correlation.sample({ region: region, scale: 1000, numPixels: 1000 }); // 正确调用reducer var stats = sample.reduceColumns({ selectors: ['NDVI', 'precipitationCal'], reducer: ee.Reducer.mean() }); // 然后选择两个属性以查看相关性 var ndviMean = stats.get('mean_NDVI'); var precipitationMean = stats.get('mean_precipitationCal'); print('Mean NDVI:', ndviMean); print('Mean Precipitation:', precipitationMean); // 导出函数 Export.table.toDrive({ collection: sample, description: 'correlation_sample', fileFormat: 'CSV' }); ``` 请确保将代码中的`your_username`替换为您的用户名,并根据您的需求进行其他适当的更改。此代码将加载山西省内的NDVI、降水、气温和夜间灯光数据影像,并计算它们之间的相关性系数。然后,对相关性结果进行采样,并计算NDVI和降水的平均值。最后,将采样结果导出为CSV文件。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值