我是靠谱客的博主 高贵蜜蜂,最近开发中收集的这篇文章主要介绍Python RHC随机分群抽样,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

def RHC(U,X,n):   # 输入列表
    '''
    U是序号
    X是规模测度
    n是要抽的样本量
    '''
    import numpy as np
    import pandas as pd
    import random

    X = np.array(X)
    N = len(X)  # 计算总体数量
    Can = pd.DataFrame(np.vstack((U,X))).T # 合并成数据框
    
    M = [] # 每个群中样本个数
    for i in range(n):
        if i <= n - N%n - 1:
            M.append(N//n)
        else:
            M.append(N//n + 1)
    
    # 打乱原有顺序
    random.shuffle(U)
    
    Group = []
    Result = []
    for i in range(n):
        x = Can.iloc[U[0:M[i]],:].values # 选中分群
        Group.append(x[:,0])
        pk = x[:,1]/np.sum(x[:,1])
        np.random.seed()
        Result.append(int(x[np.random.choice(M[i],1,p = pk),0])) # 按概率抽样
        U[0:M[i]] = []

    print('抽取结果:',Result)
    return(Group,Result)
# RHC随机分群
N = 30 # 总体数量
n = 6 # 抽取样本单元个数
U = list(range(N))  # 乡的序号
X = [42,65,52,40,75,65,45,50,43,54,49,53,32,22,37,51,30,39,47,41,43,45,121,32,443,54,54,65,67,76]
RHC(U,X,n)

 结果:

抽取结果: [1, 5, 20, 29, 24, 7]
Out[467]: 
([array([ 1,  9, 25, 22, 21]),
  array([ 5, 16, 15, 10,  3]),
  array([20,  4,  8,  0, 28]),
  array([19, 23, 27, 11, 29]),
  array([13, 24, 12,  6, 18]),
  array([14,  2, 26,  7, 17])],
 [1, 5, 20, 29, 24, 7])

最后

以上就是高贵蜜蜂为你收集整理的Python RHC随机分群抽样的全部内容,希望文章能够帮你解决Python RHC随机分群抽样所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(44)

评论列表共有 0 条评论

立即
投稿
返回
顶部