全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 MATLAB等数学软件专版
5346 12
2012-03-26
悬赏 50 个论坛币 已解决
请教一个求极大似然值的问题,已知一变量服从近似正态分布,其均值为:(x(1)+x(5)*x(4))/(1-x(2)-x(3)),方差为:((x(6)/(1-x(7)-x(8)))-(2*((x(9)^2))*x(4)*(1-x(4))))*(1/(1-x(2)^2-x(3)^2)),其极大似然函数为:-(n/2)*log((2*pi)*deta)-((1/(2*deta))*sum((y-mu)'*(y-mu)))。其中约束有:x(2)^2+x(3)^2<1;x(7)^2+x(8)^2<1;x(4)>0,0<x(9)<0.由于存在非线性约束,所以求似然函数的极大值只能用fmincon函数。我尝试编程总是存在问题!请教各位高手吗,应该如何编程!附上自己编的小程序:
function x= example4_2a
load szzs
a = szzs(:);
y =100*(diff(log(a)));
n=length(y);
x0 = [0,0,0,1,1,1,0,0,0.5];
lb=[-inf,-inf,-inf,0,-inf,-inf,-inf,-inf,0];
ub=[inf,inf,inf,inf,inf,inf,inf,inf,1];
x = fmincon(@subfun,x0,[],[],[],[],lb,ub,[],@example4_2a1);
    function f = subfun(x)
        mu =(x(1)+x(5)*x(4))/(1-x(2)-x(3));
        m = sum((y-mu)'*(y-mu));
        deta =((x(6)/(1-x(7)-x(8)))-(2*((x(9)^2))*x(4)*(1-x(4))))*(1/(1-x(2)^2-x(3)^2));
        f = (n/2)*log((2*pi)*deta)+((1/(2*deta))*m);
    end
end
数据(szzs)是:3243.76000000000
3282.17900000000
3254.21500000000
3192.77600000000
3195.99700000000
3212.75000000000
3273.96600000000
3172.65800000000
3215.55000000000
3224.15200000000
3237.09800000000
3246.87400000000
3151.85000000000
3158.86300000000
3128.58800000000
3094.41100000000
3019.39400000000
2986.60700000000
2994.14300000000
2989.29200000000
2941.36000000000
2934.71300000000
3003.83500000000
2995.30800000000
2939.40200000000
2935.17400000000
2948.84200000000
2982.50000000000
2985.49900000000
3018.13300000000
3003.39800000000
2982.57500000000
3022.17700000000
3060.61800000000
3051.94300000000
3087.84200000000
3073.10800000000
3097.00500000000
3023.37300000000
3031.06500000000
3053.23200000000
3069.14100000000
3048.92700000000
3051.28200000000
3013.41200000000
2976.93900000000
2992.84100000000
3050.47900000000
3046.08900000000
3067.75000000000
3074.57600000000
3053.12500000000
3056.80800000000
3019.17600000000
3059.71500000000
3123.79800000000
3128.46800000000
3109.10500000000
3147.41600000000
3157.95700000000
3158.68100000000
3148.22200000000
3118.70900000000
3145.34700000000
3129.26300000000
3161.25100000000
3166.18300000000
3164.96600000000
3130.30200000000
2980.29700000000
2979.53300000000
3033.27800000000
2999.48400000000
2983.53700000000
2969.50300000000
2907.92800000000
2900.33100000000
2868.43200000000
2870.61100000000
2835.27700000000
2857.15100000000
2739.70200000000
2688.38300000000
2698.75700000000
2647.57400000000
2655.71400000000
2710.50700000000
2696.62900000000
2559.93100000000
2594.78300000000
2587.80700000000
2555.94000000000
2583.52200000000
2673.42300000000
2622.63000000000
2625.79300000000
2655.91800000000
2655.76700000000
2592.14700000000
2568.28300000000
2571.42300000000
2552.65600000000
2553.59300000000
2511.72900000000
2513.94700000000
2583.87000000000
2562.58000000000
2569.94200000000
2560.24500000000
2513.22200000000
2586.21000000000
2588.69800000000
2569.87200000000
2566.74500000000
2552.81700000000
2535.27800000000
2427.05300000000
2398.37000000000
2373.79200000000
2382.90100000000
2363.94700000000
2409.42400000000
2421.11700000000
2415.15000000000
2470.92300000000
2490.71800000000
2450.28600000000
2470.44000000000
2424.30400000000
2424.27100000000
2475.42100000000
2528.73000000000
2535.39400000000
2562.40600000000
2572.02800000000
2588.68300000000
2575.36800000000
2633.66300000000
2648.11600000000
2637.50300000000
2672.51600000000
2627.00200000000
2638.52200000000
2620.75700000000
2658.39200000000
2672.53300000000
2595.27400000000
2607.49700000000
2575.47500000000
2606.70000000000
2661.70800000000
2671.89300000000
2666.30100000000
2687.97900000000
2642.30700000000
2639.36600000000
2650.30700000000
2596.58000000000
2603.48100000000
2610.74200000000
2652.66400000000
2638.79800000000
2622.88200000000
2655.77600000000
2655.39400000000
2696.25000000000
2698.36300000000
2695.29100000000
2656.35200000000
2663.20900000000
2688.32000000000
2688.52200000000
2652.50300000000
2602.46500000000
2598.68900000000
2588.71300000000
2591.55000000000
2627.96700000000
2611.35400000000
2610.67800000000
2655.65800000000
2738.74400000000
2806.94200000000
2841.40700000000
2861.36100000000
2879.63600000000
2971.16000000000
2955.22700000000
3001.85300000000
3003.95100000000
2983.53300000000
2975.04300000000
3051.41900000000
3041.54300000000
2997.04800000000
2992.57900000000
2978.83500000000
3054.02100000000
3045.43400000000
3030.98800000000
3086.93900000000
3129.49700000000
3159.51200000000
3135
3115.35600000000
3147.74400000000
2985.43500000000
3014.41300000000
2894.53800000000
2838.85700000000
2865.45200000000
2888.56600000000
2884.37100000000
2828.28200000000
2859.93600000000
2898.26100000000
2871.69800000000
2866.35600000000
2820.18100000000
2823.44900000000
2843.60700000000
2842.43100000000
2857.17800000000
2875.86100000000
2848.54600000000
2810.94900000000
2841.04000000000
2922.95400000000
2927.07700000000
2911.41400000000
2898.13800000000
2893.74000000000
2852.91600000000
2904.11500000000
2877.90000000000
2855.22000000000
2835.15700000000
2781.40200000000
2732.99000000000
2751.52700000000
2759.57500000000
2808.07700000000
2852.64800000000
2838.59300000000
2824.19700000000
2838.80100000000
2791.80900000000
2804.04700000000
2821.30500000000
2827.71300000000
2791.34400000000
2706.66000000000
2708.97900000000
2758.09700000000
2677.65200000000
2715.29400000000
2695.72000000000
2677.43200000000
2708.81400000000
2749.15000000000
2752.75000000000
2790.69400000000
2798.96000000000
2774.06500000000
2818.16300000000
2827.32800000000
2899.13400000000
2899.23700000000
2923.89600000000
2926.96400000000
2899.79200000000
2932.24600000000
2855.51600000000
2862.63400000000
2878.60300000000
2878.56500000000
2905.05300000000
2918.92000000000
2913.80800000000
2902.97800000000
2942.30600000000
2996.21100000000
2999.94200000000
3002.15400000000
2957.14300000000
2933.79600000000
2937.62700000000
2896.25600000000
2930.80400000000
2897.29800000000
2906.88600000000
2909.13700000000
2919.14200000000
2948.47700000000
2946.70600000000
2977.81400000000
2984.00500000000
2958.07700000000
2955.77100000000
2928.11100000000
2967.41000000000
3001.36000000000
3007.90900000000
3030.02100000000
3022.74600000000
3021.36900000000
3050.39800000000
3042.63500000000
3050.52600000000
3057.32900000000
2999.04100000000
3007.03700000000
3026.66800000000
3010.51700000000
2964.95100000000
2938.98100000000
2925.40800000000
2887.04400000000
2911.51100000000
2932.18800000000
2866.01700000000
2872.40400000000
2863.88600000000
2872.46000000000
2890.63400000000
2883.42000000000
2844.08300000000
2871.03100000000
2849.06700000000
2852.77300000000
2872.77100000000
2859.57400000000
2858.45900000000
2774.56900000000
2767.05600000000
2741.74100000000
2736.52700000000
2709.94700000000
2706.36100000000
2743.47200000000
2743.57200000000
2705.18100000000
2728.02000000000
2744.30000000000
2750.28800000000
2703.34500000000
2705.14300000000
2700.37900000000
2730.04000000000
2705.43100000000
2664.28300000000
2642.81800000000
2621.25300000000
2646.48300000000
2649.32100000000
2688.24900000000
2746.21100000000
2758.23000000000
2759.20200000000
2728.48300000000
2762.07600000000
2759.36200000000
2812.81800000000
2816.35500000000
2810.47900000000
2794.26700000000
2797.77400000000
2802.69200000000
2754.58200000000
2795.47600000000
2810.44400000000
2820.16900000000
2816.68800000000
2796.98300000000
2794.20500000000
2765.89400000000
2770.79000000000
2688.74600000000
2703.02600000000
2723.49200000000
2708.77700000000
2701.72900000000
2703.78300000000
2679.25900000000
2678.48500000000
2684.03900000000
2626.42300000000
2526.81600000000
2526.07000000000
2549.17600000000
2581.50800000000
2593.17300000000
2626.77000000000
2608.16600000000
2601.26100000000
2559.47200000000
2534.35800000000
2515.86300000000
2554.01900000000
2541.09100000000
2615.26100000000
2612.18800000000
2576.41300000000
2566.59500000000
2567.34000000000
2556.04200000000
2528.28000000000
2478.73900000000
2470.52400000000
2516.09000000000
2498.94300000000
2497.75300000000
2471.30500000000
2484.82700000000
2479.05500000000
2482.34300000000
2437.79500000000
2447.75500000000
2512.96300000000
2443.05700000000
2433.15900000000
2393.18300000000
2415.05400000000
2392.06200000000
2365.34300000000
2359.22000000000
2344.78700000000
2348.51600000000
2420
2438.79000000000
2431.37500000000
2440.40200000000
2383.48500000000
2377.51200000000
2331.36600000000
2317.27500000000
2370.33300000000
2409.67200000000
2427.48000000000
2435.61400000000
2473.41000000000
2468.25000000000
2470.01900000000
2504.10800000000
2508.09000000000
2528.29400000000
2509.79900000000
2503.83600000000
2524.91900000000
2479.53600000000
2481.08400000000
2528.71400000000
2529.76100000000
2466.95900000000
2463.04600000000
2416.56200000000
2415.13000000000
2412.62500000000
2395.06500000000


最佳答案

epoh 查看完整内容

这个程序,只是让你的数据能运行 你的模型,还存在问题 就让你自行慢慢修改. %%%in matlab command Window load szzs.txt a = szzs(:); y =100*(diff(log(a))); n=length(y); x0 = [0,0,0,1,1,1,0,0,0.5]; lb=[-inf,-inf,-inf,0,-inf,-inf,-inf,-inf,0]; ub=; [x,fval] = fmincon(@(x)subfun(x,y,n),x0,[],[],[],[],lb,ub,@nonlcon) %%%%subfun.m function f = subfun(x,y,n) mu ...
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
2012-3-26 15:23:19
fdw001 发表于 2012-3-28 22:11
我知道了,是要添加一个线性约束:x(7)+x(8)
这个程序,只是让你的数据能运行
你的模型,还存在问题
就让你自行慢慢修改.

%%%in matlab command Window
load szzs.txt
a = szzs(:);
y =100*(diff(log(a)));
n=length(y);
x0 = [0,0,0,1,1,1,0,0,0.5];
lb=[-inf,-inf,-inf,0,-inf,-inf,-inf,-inf,0];
ub=[inf,inf,inf,inf,inf,inf,inf,inf,1];
                     
[x,fval] = fmincon(@(x)subfun(x,y,n),x0,[],[],[],[],lb,ub,@nonlcon)


%%%%subfun.m
function f = subfun(x,y,n)
    mu =(x(1)+x(5)*x(4))/(1-x(2)-x(3));
    m = sum((y-mu)'*(y-mu));
    deta =((x(6)/(1-x(7)-x(8)))-(2*((x(9)^2))*x(4)*(1-x(4))))*(1/(1-x(2)^2-x(3)^2));
    f = -(n/2)*log((2*pi)*deta)+((1/(2*deta))*m);
   

%nonlinear inequalities c(x)
%%%%%%%nonlcon.m
function [c,ceq]=nonlcon(x)
c(1)=x(2)^2+x(3)^2-1;
c(2)=x(7)^2+x(8)^2-1;
ceq=[];
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-27 16:18:04
程序要能运行不难
但variance equation不需要linear inequalities A*x =< b ??
如果约束条件没设好
结果会很离谱
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-27 21:27:29
epoh 发表于 2012-3-27 16:18
程序要能运行不难
但variance equation不需要linear inequalities A*x =< b ??
如果约束条件没设好
不需要线性约束,因为只是用来求极大似然估计的!
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-27 21:28:19
fdw001 发表于 2012-3-27 21:27
不需要线性约束,因为只是用来求极大似然估计的!
所有的约束条件都在上面了,没有其他的约束
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

2012-3-27 21:37:00
fdw001 发表于 2012-3-27 21:28
所有的约束条件都在上面了,没有其他的约束
variance equation不需要
alpha + beta < 1  ??
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群