Hast du es mal mit `loop left` versucht?
    \documentclass{article}
    \usepackage{tikz}
    \usetikzlibrary{shapes}
    \usetikzlibrary{matrix}
    
    \begin{document}
    
    \begin{tikzpicture}[
      Ellipse/.style={ellipse,draw,minimum height=1cm,minimum width=2.75cm},
      ]
    
      \matrix (m) [
      matrix of nodes, 
      nodes={Ellipse},
      row sep=1cm,
      ]
      {
        \node(D){D};  \\
      };
    
      % Loop
      \path[draw] (D.west) edge[red, loop left] node [] {P} (D.west);
    
    \end{tikzpicture}
    \end{document}
![alt text][1]
Man kann die Loops auch beliebig anpassen.  Dabei sollte man lieber `to` statt `edge` verwenden.  Mit `edge` passieren komische Dinge.
    \documentclass{article}
    \usepackage{tikz}
    \usetikzlibrary{shapes}
    \usetikzlibrary{matrix}
    
    \begin{document}
    
    \begin{tikzpicture}[
      Ellipse/.style={ellipse,draw,minimum height=1cm,minimum width=2.75cm},
      ]
    
      \matrix (m) [
      matrix of nodes, 
      nodes={Ellipse},
      row sep=1cm,
      ]
      {
        \node(D){D};  \\
      };
    
      % Loop
      \path[draw=red,->] (D.west) to[left, loop, out=180-45, in=180+45, min distance=10mm] node [] {P} (D.west);
    
    \end{tikzpicture}
    \end{document}
![alt text][2]
  [1]: http://texwelt.de/wissen/upfiles/test_264.pnghttp://texwelt.de/wissen/upfiles/test_264.png
  [2]: http://texwelt.de/wissen/upfiles/test_265.png