Стандартизация результатов между экспериментальными группами - PullRequest
0 голосов
/ 15 апреля 2019

У меня есть данные о пяти экспериментах, которые немного различаются, и я хотел бы найти способ стандартизации результатов между экспериментами для разработки «стандартного результата». Это будет значение, на которое я могу умножить каждый результат, чтобы сделать их сопоставимыми , Я решил, что есть люди в более чем одной экспериментальной группе (если предположить, что участие в более чем одной группе не влияет на результаты).

Я предполагаю, что результаты отдельных лиц в более чем одном эксперименте отличаются только из-за небольших различий между экспериментами и, таким образом, путем вычисления коэффициента пересчета для каждого эксперимента, который делает среднее для отдельных результатов в более чем одном эксперименте одинаковыми это может перевести результаты в стандартный результат.

Проблема, с которой я сталкиваюсь, заключается в том, что в конце процесса большинство моих коэффициентов преобразования меньше 1. Однако я ожидал получить примерно четное число значений больше 1 и меньше 1, так как я как бы усреднение результатов.

Моя процедура и код MSQL приведены ниже:

  1. Получите данные по экспериментам и по отдельным лицам и исключите все данные по отдельным лицам за 1 эксперимент.
    SELECT ExperimentID, 
       IndividualID, 
    INTO Z1_IndivByExperiment
    FROM Results
    GROUP BY ExperimentID, 
         IndividualID

    SELECT IndividualID, 
       COUNT(ExperimentID) AS ExperimentCount
    INTO Z2_MultiExperIndiv
    FROM Z1_IndivByExperiment
    GROUP BY IndividualID 
    HAVING COUNT(ExperimentID) > 1
    ORDER BY ExperimentCount DESC
  1. Создать две таблицы:
    i) Обобщение результатов по отдельным лицам (индивидуум может иметь несколько результатов на эксперимент) и эксперимент.
    ii) Обобщение результатов по отдельным лицам
    SELECT ExperimentID,
       IndividualID, 
       SUM(Results.Result) AS Result_sum, 
       SUM(Results.ResultsCount) AS ResultCount_sum
    INTO Z3_MultiExperIndiv_Results
    FROM Results INNER JOIN
         Z2_MultiExperIndiv ON Results.IndividualID = 
    Z2_MultiExperIndiv.IndividualID
    GROUP BY ExperimentID,
         IndividualID

    SELECT 'Standard' AS Experiment
       IndividualID, 
       SUM(Result_sum) AS ResultIndiv_sum, 
       SUM(ResultCount_sum) AS ResultCountIndiv_sum
    into Z4_MultiExperIndiv_Stand
    FROM Z3_MultiExperIndiv_Results 
    GROUP BY IndividualID
  1. Свяжите две таблицы, созданные на шаге 2, с помощью отдельных результатов суммирования из таблицы 1 и таблицы 2 путем эксперимента. Я надеюсь, что это дает два набора результатов для людей в рассматриваемом эксперименте и результаты для людей, которые были частью рассматриваемого эксперимента из других экспериментов.
    SELECT Z4_MultiExperIndiv_Stand.ExperimentID AS ExperimentID1, 
       Z3_MultiExperIndiv_Results.ExperimentID AS ExperimentID2, 
           SUM(Z4_MultiExperIndiv_Stand.ResultIndiv_sum - 
    Z3_MultiExperIndiv_Results.Result_sum) AS Results1, 
       SUM(Z4_MultiExperIndiv_Stand.ResultCountIndiv_sum - 
    Z3_MultiExperIndiv_Results.ResultCount_sum) AS ResultCount1, 
           SUM(Z3_MultiExperIndiv_Results.Result_sum) AS Results 2, 
       SUM(Z3_MultiExperIndiv_Results.ResultCount_sum) AS ResultCount2
    into Z5_StandardConversion_data
    FROM Z3_MultiExperIndiv_Results INNER JOIN
         Z4_MultiExperIndiv_Stand ON Z3_MultiExperIndiv_Results.IndividualID = 
    Z4_MultiExperIndiv_Stand.IndividualID
    GROUP BY Z4_MultiExperIndiv_Stand.IndividualId,
         Z3_MultiExperIndiv_Results.IndividualId
  1. Затем я делю результаты для каждого набора результатов на количество результатов и делю одно на другое, чтобы получить преобразование в стандартное число для каждого эксперимента.
    SELECT ExperimentID1, 
       ExperimentID2, 
       Results1, 
       ResultCount1, 
       Results2, 
       ResultCount2, 
       Results1 / ResultCount1 AS Result1_avg, 
       Results2 / ResultCount2 AS Result2_avg, 
    (ResultCount2 * Results1) / (ResultCount1 * Results2) AS Conversion
    FROM Z5_StandardConversion_data

Пример входных данных:

enter image description here

Пример вывода:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...