function [I, dI] = miFromCounts_naive(czx)
    if nargin == 1
        applyCorrections = false;
    end
    cx = sum(czx)';
    cz = sum(czx')';
    N = sum(czx(:));
    if any(size(czx) == 1)
        I = 0;
    else
        I = N*(entropy(cz) + entropy(cx) - entropy(czx));
    end
    
    % Determine variance using Bill's ghetto method
    if nargout == 2
        nz = size(czx,1);
        nx = size(czx,2);
        for n=1:100
            czx_half = floor(.5*czx + sqrt(.5*czx).*randn(nz,nx));
            cx_half = sum(czx_half)';
            cz_half = sum(czx_half')';
            if any(size(czx_half) == 1)
                I_half(n) = 0;
            else
                I_half(n) = entropy(cz_half) + entropy(cx_half) - entropy(czx_half);
            end
        end
        dI = N*std(I_half)/sqrt(2);
    end
end