【问题标题】:population and sample representation analysis总体和样本代表性分析
【发布时间】:2021-10-19 21:44:24
【问题描述】:

我有一个人口数据,其中包含多个分类数据和多个连续数据。我有来自这个人群的 4 个样本。该示例已经在我的组织中历史创建,因此不知道它是如何完成的。我的工作是找出最能代表总体的样本。我用python工作。

我在某处读到 Pearson 的卡方检验比较分类变量和 Kolmogorov-Smirnov 检验的数值变量。顺便提一下,我的变量类型是 python 中的 float 和 object。

有什么方法可以检查哪个样本是使用 python 的样本的最佳代表。有什么方法可以让我对所有变量使用一次并给我一些统计意义..

【问题讨论】:

  • 请按照堆栈溢出指南提出问题。您应该发布您编写的代码示例以展示您尝试过的内容,并发布数据样本以供社区复制您的用例。
  • 这个问题的答案首先是合乎逻辑的,因为我不知道应该实施什么方法。我正在寻找在遇到此问题时应考虑哪种方法,然后我可以找到如何使用代码解决它。希望有意义

标签: python python-3.x data-science


【解决方案1】:

不确定完成方式有多好,但我已经按照连续变量的 t 检验和分类变量的卡方检验:

代码如下: batch1..batch4 是我想比较的可用样本,final_data 是这里的实际人口。 **

- t 测试循环中的连续变量

column = ["col1", "col2", "col3","col4"]
    for x in column:
        print("batch1 "+x+" "+str(stats.ttest_1samp(batch1[x], final_data[x].mean())))
        print("batch2 "+x+" "+str(stats.ttest_1samp(batch2[x], final_data[x].mean())))
        print("batch3 "+x+" "+str(stats.ttest_1samp(batch3[x], final_data[x].mean())))
        print("batch4 "+x+" "+str(stats.ttest_1samp(batch4[x], final_data[x].mean())))

分类变量的卡方

我先做了一个函数

def pearsonChiSqGof(myData,field,exp=None):
    myFreq=myData[field].value_counts()
    df=len(myFreq)-1
    if exp==None:
        minE=sum(myFreq)/len(myFreq)
        chiVal,pval=chisquare(myFreq)
    else:
        minE=min(exp)
        chiVal,pval=chisquare(myFreq,exp)
        
    warning=None
    if minE<5:
        warning='minimum expected counl less than 5,chi-square test result not reliable'
    return chiVal,pval,df,minE,warning
    
            

然后在所有列上运行一个循环

fieldList=[column list]

for x in fieldList:
    print("batch1 "+x+" "+str(pearsonChiSqGof(batch1,x)))
    print("batch2 "+x+" "+str(pearsonChiSqGof(batch2,x)))
    print("batch3 "+x+" "+str(pearsonChiSqGof(batch3,x)))
    print("batch4 "+x+" "+str(pearsonChiSqGof(batch4,x)))

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-05
    • 2021-12-30
    相关资源
    最近更新 更多