Я новичок здесь, поэтому извините за любые ошибки.
Итак, у меня есть следующая проблема: я моделирую регрессионный набор данных logisti c с одной независимой переменной (X) и Ответная переменная Y. Затем я создаю две проектные матрицы: одну, содержащую X, и другую, содержащую X и X, т.е. дважды одну и ту же переменную. Затем я подгоняю две модели, используя две разные матрицы дизайна. Очевидно, что оценки коэффициентов должны быть «идентичными», то есть intercept_1 = intercept_2 и coef_1 = sum (coef_2). Но это не так. Также тест отношения правдоподобия должен возвращать значение p = 1, но это также не так. Почему это происходит?
Мой код:
import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import log_loss
from scipy.stats import chi2
N = 100
X = np.random.randn(N)
XX = np.array([X, X]).T
probs = np.exp(X)/(1+np.exp(X))
Y = np.random.binomial(1, probs, N)
myLogReg = LogisticRegression(solver = 'newton-cg', max_iter=1000, fit_intercept=True, random_state=1)
myLogReg.fit(X.reshape(-1, 1), Y)
y_prob = myLogReg.predict_proba(X.reshape(-1, 1))
currentMinusTwoLogLik = 2*len(Y)*log_loss(Y, y_prob)
print(myLogReg.intercept_)
print(myLogReg.coef_)
print("")
myLogRegUpdateCandidate = LogisticRegression(solver = 'newton-cg', max_iter=1000, fit_intercept=True, random_state=1)
myLogRegUpdateCandidate.fit(XX, Y)
y_probCandidate = myLogRegUpdateCandidate.predict_proba(XX)
candidateMinusTwoLogLik = 2*len(Y)*log_loss(Y, y_probCandidate)
print(myLogRegUpdateCandidate.intercept_)
print(myLogRegUpdateCandidate.coef_)
print("")
print(chi2.sf(currentMinusTwoLogLik-candidateMinusTwoLogLik, 1))