Faits : Faits : A. M._ exerce la profession de peintre en bâtiment indépendant, à Y._. Le 6 octobre 1998, il a adressé une demande de rente à l'Office de l'assurance-invalidité du canton de Neuchâtel (ci-après : l'office AI), en raison de douleurs cervicales et brachiales lors de son travail. Selon son médecin traitant, le docteur A._, ces douleurs durent depuis plusieurs années et ont causé, de manière intermittente, plusieurs incapacités de travail de 50 à 100 %; l'assuré le consulte irrégulièrement depuis 1986 et les examens pratiqués ont mis en évidence une triple discopathie cervicale basse, avec arthrose postérieure et uncarthrose étagée (rapports des 5 janvier et 4 novembre 1999). Chargé de réaliser une expertise, le docteur B._, du service de rhumatologie et de médecine physique de l'Hôpital X._, a posé le diagnostic de cervicobrachialgies droites sur arthrose cervicale et attesté d'une incapacité de travail de 25 % dans la profession exercée jusqu'alors par l'assuré (expertise du 25 juillet 2000). Sur cette base, l'office AI a adressé à M._ un projet de prononcé, par lettre du 23 août 2000, dans le sens d'un rejet de sa demande de prestations. Par décision du 8 novembre 2000, il a rejeté la demande de prestations en reprenant mot pour mot les termes de sa lettre du 23 août, en dépit des objections présentées par l'assuré à réception de ce courrier. A. M._ exerce la profession de peintre en bâtiment indépendant, à Y._. Le 6 octobre 1998, il a adressé une demande de rente à l'Office de l'assurance-invalidité du canton de Neuchâtel (ci-après : l'office AI), en raison de douleurs cervicales et brachiales lors de son travail. Selon son médecin traitant, le docteur A._, ces douleurs durent depuis plusieurs années et ont causé, de manière intermittente, plusieurs incapacités de travail de 50 à 100 %; l'assuré le consulte irrégulièrement depuis 1986 et les examens pratiqués ont mis en évidence une triple discopathie cervicale basse, avec arthrose postérieure et uncarthrose étagée (rapports des 5 janvier et 4 novembre 1999). Chargé de réaliser une expertise, le docteur B._, du service de rhumatologie et de médecine physique de l'Hôpital X._, a posé le diagnostic de cervicobrachialgies droites sur arthrose cervicale et attesté d'une incapacité de travail de 25 % dans la profession exercée jusqu'alors par l'assuré (expertise du 25 juillet 2000). Sur cette base, l'office AI a adressé à M._ un projet de prononcé, par lettre du 23 août 2000, dans le sens d'un rejet de sa demande de prestations. Par décision du 8 novembre 2000, il a rejeté la demande de prestations en reprenant mot pour mot les termes de sa lettre du 23 août, en dépit des objections présentées par l'assuré à réception de ce courrier. B. M._ a déféré la cause au Tribunal administratif du canton de Neuchâtel, en produisant un rapport établi le 30 novembre 2000 par le docteur A._, lequel atteste d'une incapacité de travail de 80 % dans la profession de peintre en bâtiment. Son recours a été rejeté par jugement du 27 novembre 2001. B. M._ a déféré la cause au Tribunal administratif du canton de Neuchâtel, en produisant un rapport établi le 30 novembre 2000 par le docteur A._, lequel atteste d'une incapacité de travail de 80 % dans la profession de peintre en bâtiment. Son recours a été rejeté par jugement du 27 novembre 2001. C. L'assuré interjette un recours de droit administratif contre ce jugement, dont il demande l'annulation. Il conclut principalement à l'octroi d'une rente entière d'invalidité, et subsidiairement au renvoi de la cause à l'intimé pour instruction complémentaire et nouvelle décision au sens des considérants, sous suite de frais et dépens. L'intimé conclut au rejet du recours tandis que l'Office fédéral des assurances sociales a renoncé à se déterminer.