"Проблема в том, что каждая переменная соответствует ответу на опрос, и не каждый участник опроса ответил на каждый вопрос. Таким образом, я хочу получить некоторую оценку того, как ответ на вопрос 2, скажем, влияет на вероятность ответов на вопрос 8 , например. "
Это проблема с отсутствующими данными. Я думаю, что сбивает с толку людей то, что вы продолжаете называть ваши образцы различной длины. Я думаю, вы могли бы визуализировать их так:
образец 1:
question number: [1,2,3,4,5]
response : [1,0,1,1,0]
образец 2:
question number: [2,4,5]
response : [1,1,0]
когда образец 2 должен быть похож на это:
question number: [ 1,2, 3,4,5]
response : [NaN,1,NaN,1,0]
Важно номер вопроса, а не количество ответов. Без соответствия вопрос-вопрос невозможно вычислить что-либо, подобное ковариационной матрице.
Так или иначе, эта numpy.ma.cov
функция, о которой ddodev упомянул , вычисляет ковариацию, используя тот факт, что суммируемые элементы, каждый зависит только от двух значений.
Так что он вычисляет те, которые он может. Затем, когда дело доходит до деления на n, оно делится на количество значений, которые были вычислены (для этого конкретного элемента ковариационной матрицы), а не на общее количество выборок.